COMPILATION LISTING OF SEGMENT forum_list_users Compiled by: Multics PL/I Compiler, Release 33d, of April 24, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 92-04-27_1036.56_Mon_mdt Options: optimize map 1 /****^ *************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1986 * 4* * * 5* * Copyright (c) 1982 by Massachusetts Institute of Technology * 6* * * 7* *************************************************************** */ 8 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-07-29,Pattin), approve(86-07-29,MCR7354), 14* audit(86-08-07,Margolin), install(86-08-16,MR12.0-1128): 15* Added -no_notify, -sort last_seen. Use date_time_$format 16* Fixed -eligible for v1 meetings. 17* END HISTORY COMMENTS */ 18 19 20 flsu: 21 forum_list_users: 22 proc (); 23 24 /* forum_list_users: prints out information on participants in a CONTINUUM forum 25* This is accessible both as a command/active_function and as a subsystem 26* request. As an active function it returns a string of usernames 27* Jay Pattin 6/21/81 updates from code by M. Auerbach 28* Jay Pattin 8/21/81 for ssu_ 29* Jay Pattin 1/16/82 added -seen, -unseen, changes for new continuum_ 30* Jay Pattin 01/21/82 renamed forum_list_users, added -total 31* Jay Pattin 02/16/82 added -eligible 32* Jay Pattin 02/28/82 added standalone_invocation 33* Jay Pattin 05/05/82 added -read_only, -no_read_only 34* Jay Pattin 10/2/82 added -sort 35* Jay Pattin 7/1/83 added -asc, -dsc, -after, -before, -names_only, -part, -npart, */ 36 37 declare (P_ssu_ptr, P_passport_info_ptr) 38 ptr parameter; 39 40 declare (all_switch, person_switch, project_switch, attending_switch, temp_forum, brief_switch, active_function, command, 41 no_notify, notify_switch, header_switch, total_switch, unseen_switch, eligible_switch, read_only, no_read_only, 42 forum_opened, ascending, descending, names_only, part, no_part) 43 bit (1) aligned init ("0"b); 44 45 declare me char (32), 46 (after_time, before_time) fixed bin (71), 47 forum_dir char (168), 48 trans_time char (250) varying, 49 trans_pic pic "zz9999", 50 attendee_name char (256) varying, 51 project_name char (256) varying, 52 forum_name char (32), 53 full_forum_name char (32), 54 name_len fixed bin, 55 temp_idx fixed bin, 56 code fixed bin (35); 57 58 declare (acl_count, seen_idx, no_selected, messlen, i, forum_idx, argument_idx, arg_count, arg_len, ret_len, count, 59 sort, delete_type) 60 fixed bin; 61 declare (acl_ptr, based_area_ptr, arg_ptr, ret_ptr, ssu_ptr) 62 ptr; 63 64 declare argument char (arg_len) based (arg_ptr), 65 ret_arg char (ret_len) varying based (ret_ptr); 66 67 declare (addr, after, before, char, index, length, ltrim, maxlength, mod, null, rtrim, substr, unspec) 68 builtin, 69 cleanup condition; 70 71 declare 1 acl (acl_count) aligned based (acl_ptr), 72 2 access_name char (32), 73 2 modes bit (36), 74 2 xmodes bit (36), 75 2 status_code fixed bin (35); 76 77 declare (SORT_BY_NAME init (1), 78 SORT_BY_TIME init (2), 79 SORT_BY_SEEN init (3), 80 ONLY_NONDELETED init (0), 81 INCLUDE_DELETED init (1), 82 ONLY_DELETED init (2)) 83 fixed bin static options (constant); 84 85 declare (error_table_$badopt, 86 error_table_$bad_conversion, 87 error_table_$inconsistent, 88 error_table_$noarg, 89 forum_et_$no_forum, 90 forum_et_$old_format) fixed bin (35) external; 91 92 declare (ioa_, ioa_$nnl, ioa_$rsnnl) entry options (variable), 93 (com_err_, active_fnc_err_) entry options (variable), 94 com_err_$suppress_name entry options (variable), 95 active_fnc_err_$af_suppress_name 96 entry options (variable), 97 convert_date_to_binary_ entry (char (*), fixed bin (71), fixed bin (35)), 98 date_time_$format entry (char (*), fixed bin (71 ), char (*), char (*)) returns (char(250) varying), 99 get_system_free_area_ entry returns (ptr), 100 forum_requests_$find_forum entry (char (*), char (*), char (*), fixed bin, fixed bin (35)), 101 forum_trans_specs_$parse_specs 102 entry (ptr, fixed bin, bit (36) aligned, entry, fixed bin, char (*), char (*), ptr), 103 forum_trans_util_$clear_cache entry (ptr), 104 forum_$close_forum entry (fixed bin, fixed bin (35)), 105 forum_$get_transaction_map_idx 106 entry (fixed bin, char (*), bit (*) aligned, fixed bin (35)), 107 forum_$list_forum_acl entry (char (*), char (*), ptr, ptr, ptr, fixed bin, fixed bin (35)), 108 forum_$list_v1_forum_acl entry (char (*), char (*), ptr, ptr, fixed bin, fixed bin (35)), 109 forum_$list_users entry (char (*), char (*), ptr, ptr, fixed bin (35)), 110 forum_$open_forum entry (char (*), char (*), fixed bin, fixed bin (35)), 111 cu_$arg_list_ptr entry returns (ptr), 112 cu_$af_return_arg entry (fixed bin, ptr, fixed bin) returns (fixed bin (35)), 113 sort_items_$char entry (ptr, fixed bin (24)), 114 sort_items_indirect_$char entry (ptr, ptr, fixed bin), 115 sort_items_indirect_$fixed_bin 116 entry (ptr, ptr), 117 sort_items_indirect_$general entry (ptr, ptr, entry), 118 ssu_$abort_line entry options (variable), 119 ssu_$standalone_invocation entry (ptr, char (*), char (*), ptr, entry, fixed bin (35)), 120 ssu_$return_arg entry (ptr, fixed bin, bit (1) aligned, ptr, fixed bin), 121 ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin), 122 ssu_$print_message entry options (variable), 123 ssu_$destroy_invocation entry (ptr); 124 1 1 /* BEGIN INCLUDE FILE: forum_user_list.incl.pl1 */ 1 2 1 3 declare user_list_no_attendees fixed bin, 1 4 user_list_ptr ptr; 1 5 1 6 declare 1 user_list aligned based (user_list_ptr), 1 7 2 version fixed bin, 1 8 2 chairman aligned, 1 9 3 person_id char (22) unaligned, 1 10 3 project_id char (9) unaligned, 1 11 2 transaction_count fixed bin, 1 12 2 no_attendees fixed bin, 1 13 2 attendees (user_list_no_attendees refer (user_list.no_attendees)), 1 14 3 person_id char (22) unaligned, 1 15 3 project_id char (11) unaligned, 1 16 3 attending bit (1) unaligned, 1 17 3 mbz1 bit (2) unaligned, /* version 1 compatibility */ 1 18 3 notify bit (1) unaligned, 1 19 3 removed bit (1) unaligned, 1 20 3 read_only bit (1) unaligned, 1 21 3 deleted bit (1) unaligned, 1 22 3 unused_flags bit (2) unaligned, 1 23 3 last_time_attended fixed bin (71), 1 24 3 highest_trans_seen fixed bin; 1 25 1 26 declare user_list_version_2 fixed bin static init (2) options (constant); 1 27 1 28 /* END INCLUDE FILE: forum_user_list.incl.pl1 */ 125 126 2 1 /* START OF: forum_passport.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-07-30,Pattin), approve(86-07-30,MCR7354), 2 7* audit(86-08-03,Margolin), install(86-08-16,MR12.0-1128): 2 8* Added trailer_format. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 declare passport_info_ptr ptr; 2 13 2 14 declare 1 passport aligned based (passport_info_ptr), 2 15 2 version fixed bin, /* 2 */ 2 16 2 forum_idx fixed bin, /* current forum */ 2 17 2 forum_dir char (168) unal, /* where forum lives */ 2 18 2 forum_name char (32) unal, /* Current forum I'm at */ 2 19 2 forum_name_len fixed bin, /* length of forum_name without suffix */ 2 20 2 flags unal, 2 21 3 brief_sw bit (1) unal, /* specified at invocation */ 2 22 3 talk_fill bit (1) unal, /* God knows */ 2 23 3 print_fill bit (1) unal, /* God doesn't know */ 2 24 3 read_only bit (1) unal, 2 25 3 print_message bit (1) unal, /* Print chairman message on talk/reply */ 2 26 3 auto_write bit (1) unal, 2 27 3 mbz bit (30) unal, /* Future expansion */ 2 28 2 current_trans fixed bin, /* current transaction number */ 2 29 2 input_fill_width fixed bin, /* line length used for input filling */ 2 30 2 output_fill_width fixed bin, /* line length used for output filling */ 2 31 2 public_channel fixed bin (71), /* My transaction wakeup channel. */ 2 32 2 area_ptr ptr, /* used for random temporary storage */ 2 33 2 first_trans_ptr ptr, /* ptrs to linked list of transactions copied to */ 2 34 2 last_trans_ptr ptr, /* user ring */ 2 35 2 unprocessed_trans_ptr ptr, /* If this isn't null, we got one pending. */ 2 36 2 unprocessed_reply_trans fixed bin, /* If nonzero, unprocessed trans is a reply. */ 2 37 2 unprocessed_forum_dir char (168), /* Directory containing meeting unproc is for. */ 2 38 2 unprocessed_forum_name char (32), /* Name of meeting unproc is for */ 2 39 2 unprocessed_name_len fixed bin, /* length (w/o suffix) of Name of meeting unproc is for */ 2 40 2 ssu_ptr ptr, /* Department of Redundancy Department. */ 2 41 2 next_passport_ptr ptr, /* list of all invocations */ 2 42 2 trailer_format fixed bin; 2 43 2 44 declare passport_version_2 fixed bin static options (constant) initial (2); 2 45 2 46 declare forum_area area based (passport.area_ptr), 2 47 no_suffix_name char (passport.forum_name_len) based (addr (passport.forum_name)); 2 48 2 49 declare forum_data_$version_string character (8) external, 2 50 forum_data_$central_directory 2 51 character (168) unaligned external, 2 52 forum_data_$info_directory character (168) unaligned external; 2 53 2 54 declare (TFMT_none init (0), 2 55 TFMT_number init (1), 2 56 TFMT_more init (2), 2 57 TFMT_reference init (3)) 2 58 fixed bin static options (constant); 2 59 2 60 /* END OF: forum_passport.incl.pl1 * * * * * * * * * * * * * * * * */ 127 128 3 1 /* ... BEGIN INCLUDE FILE forum_trans_list.incl.pl1 ... */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(86-07-30,Pattin), approve(86-07-30,MCR7354), 3 7* audit(86-08-07,Margolin), install(86-08-16,MR12.0-1128): 3 8* Added deleted switch. 3 9* 2) change(91-09-05,Huen), approve(91-09-05,MCR8249), 3 10* audit(92-01-08,Zimmerman), install(92-04-27,MR12.5-1014): 3 11* phx20579: Added parse_flags.default_to_unproc & CREATE_UNPROC 3 12* END HISTORY COMMENTS */ 3 13 3 14 3 15 dcl forum_trans_list_ptr ptr; 3 16 dcl alloc_trans_list_size fixed bin; 3 17 3 18 dcl 1 forum_trans_list aligned based (forum_trans_list_ptr), 3 19 2 max_size fixed bin, 3 20 2 size fixed bin, 3 21 2 max_personid_len fixed bin, 3 22 2 list (alloc_trans_list_size refer (forum_trans_list.max_size)), 3 23 3 trans_num fixed bin (17), /* must be aligned */ 3 24 3 nref fixed bin (17) unaligned, 3 25 3 pref fixed bin (17) unaligned, 3 26 3 flags unaligned, 3 27 4 deleted bit (1) unaligned, 3 28 4 pad bit (35) unaligned; 3 29 3 30 dcl parse_flags_word bit (36) aligned; 3 31 3 32 dcl 1 parse_flags aligned based (addr (parse_flags_word)), 3 33 2 non_null bit (1) unal, /* on if trans_spec cannot be empty */ 3 34 2 only_one bit (1) unal, /* on if only one transaction may be specified */ 3 35 2 allow_deleted bit (1) unal, /* on if deleted transactions may be specified */ 3 36 2 must_be_deleted bit (1) unal, /* on if must be deleted */ 3 37 2 disallow_unproc bit (1) unal, /* on if unprocessed transaction not valid */ 3 38 2 disallow_meeting bit (1) unal, /* on if -meeting not allowed */ 3 39 2 disallow_reverse bit (1) unal, /* on if -reverse not allowed */ 3 40 2 disallow_idl bit (1) unal, /* on if -include_deleted not allowed */ 3 41 2 dont_read bit (1) unal, /* on if regexps, -sj, -text, userids, time not allowed */ 3 42 2 disallow_initial bit (1) unal, /* on if -initial not allowed */ 3 43 2 default_to_all bit (1) unal, /* on if defaults to all rather than current */ 3 44 2 default_to_unproc bit (1) unal, /* on if defaults to unproc, not current */ 3 45 2 disallow_cmsg bit (1) unal, /* no chairman_message */ 3 46 2 disallow_by_chain bit (1) unal, /* no -by_chain */ 3 47 2 allow_inhibit_error bit (1) unal, /* don't complain if none selected and -ihe given */ 3 48 2 call_on_non_ctl_arg bit (1) unal, /* call request on bad arguments even if not ctl args */ 3 49 2 default_to_none bit (1) unal, /* allow no transactions to be selected */ 3 50 2 create_unproc bit (1) unal, /* allow unproc even if there isn't one */ 3 51 2 padding bit (18) unal; 3 52 3 53 dcl ANY bit (36) aligned init (""b); 3 54 dcl (NON_NULL init ("100000000000000000"b), 3 55 ONLY_ONE init ("010000000000000000"b), 3 56 ALLOW_DELETED init ("001000000000000000"b), 3 57 MUST_BE_DELETED init ("001100000000000000"b), 3 58 DISALLOW_UNPROC init ("000010000000000000"b), 3 59 DISALLOW_MTG init ("000001000000000000"b), 3 60 DISALLOW_REV init ("000000100000000000"b), 3 61 DISALLOW_IDL init ("000000010000000000"b), 3 62 DONT_READ init ("000000001000000000"b), 3 63 DISALLOW_INITIAL init ("000000000100000000"b), 3 64 DEFAULT_TO_ALL init ("000000000010000000"b), 3 65 DEFAULT_TO_UNPROC init ("000000000001000000"b), 3 66 DISALLOW_CMSG init ("000000000000100000"b), 3 67 DISALLOW_BYCHAIN init ("000000000000010000"b), 3 68 ALLOW_IHE init ("000000000000001000"b), 3 69 CALL_ON_BAD_ARGS init ("000000000000000100"b), 3 70 DEFAULT_TO_NONE init ("000000000000000010"b), 3 71 CREATE_UNPROC init ("000000000000000001"b) 3 72 ) bit (18) aligned internal static options (constant); 3 73 3 74 /* ... END INCLUDE FILE forum_trans_list.incl.pl1 ... */ 129 130 4 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 4 2* 4 3* Values for the "access mode" argument so often used in hardcore 4 4* James R. Davis 26 Jan 81 MCR 4844 4 5* Added constants for SM access 4/28/82 Jay Pattin 4 6* Added text strings 03/19/85 Chris Jones 4 7**/ 4 8 4 9 4 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 4 11 dcl ( 4 12 N_ACCESS init ("000"b), 4 13 R_ACCESS init ("100"b), 4 14 E_ACCESS init ("010"b), 4 15 W_ACCESS init ("001"b), 4 16 RE_ACCESS init ("110"b), 4 17 REW_ACCESS init ("111"b), 4 18 RW_ACCESS init ("101"b), 4 19 S_ACCESS init ("100"b), 4 20 M_ACCESS init ("010"b), 4 21 A_ACCESS init ("001"b), 4 22 SA_ACCESS init ("101"b), 4 23 SM_ACCESS init ("110"b), 4 24 SMA_ACCESS init ("111"b) 4 25 ) bit (3) internal static options (constant); 4 26 4 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 4 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 4 29 4 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 4 31 static options (constant); 4 32 4 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 4 34 static options (constant); 4 35 4 36 dcl ( 4 37 N_ACCESS_BIN init (00000b), 4 38 R_ACCESS_BIN init (01000b), 4 39 E_ACCESS_BIN init (00100b), 4 40 W_ACCESS_BIN init (00010b), 4 41 RW_ACCESS_BIN init (01010b), 4 42 RE_ACCESS_BIN init (01100b), 4 43 REW_ACCESS_BIN init (01110b), 4 44 S_ACCESS_BIN init (01000b), 4 45 M_ACCESS_BIN init (00010b), 4 46 A_ACCESS_BIN init (00001b), 4 47 SA_ACCESS_BIN init (01001b), 4 48 SM_ACCESS_BIN init (01010b), 4 49 SMA_ACCESS_BIN init (01011b) 4 50 ) fixed bin (5) internal static options (constant); 4 51 4 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 131 132 133 command = "1"b; 134 forum_idx = 0; 135 me = "forum_list_users"; 136 137 call ssu_$standalone_invocation (ssu_ptr, me, "1", cu_$arg_list_ptr (), punt, code); 138 if code ^= 0 then do; /* UGH */ 139 if cu_$af_return_arg ((0), null (), (0)) = 0 then 140 call active_fnc_err_ (code, me, "Unable to create subsystem invocation."); 141 else call com_err_ (code, me, "Unable to create subsystem invocation."); 142 return; 143 end; 144 passport_info_ptr = null (); 145 goto common; 146 147 148 list_users_request: /* Entry for use as a forum request */ 149 entry (P_ssu_ptr, P_passport_info_ptr); 150 151 ssu_ptr = P_ssu_ptr; 152 passport_info_ptr = P_passport_info_ptr; 153 154 me = "list_users"; 155 forum_idx = passport.forum_idx; 156 forum_dir = passport.forum_dir; 157 forum_name = no_suffix_name; 158 full_forum_name = passport.forum_name; 159 160 common: 161 header_switch = "1"b; 162 forum_trans_list_ptr, user_list_ptr = null (); 163 based_area_ptr = get_system_free_area_ (); 164 on cleanup call cleanup_handler; 165 seen_idx, temp_idx = 0; 166 167 call ssu_$return_arg (ssu_ptr, arg_count, active_function, ret_ptr, ret_len); 168 if active_function then ret_arg = ""; 169 170 if command & arg_count = 0 then go to USAGE; 171 172 argument_idx = 0; 173 if arg_count > 0 then do; 174 call get_arg (); 175 if substr (argument, 1, 1) ^= "-" then call get_forum (argument); 176 else argument_idx = 0; 177 end; 178 179 sort = SORT_BY_NAME; 180 delete_type = ONLY_NONDELETED; 181 attendee_name, project_name = ""; 182 count, after_time, before_time = 0; 183 184 do while (argument_idx < arg_count); 185 call get_arg (); 186 if index (argument, "-") = 1 then do; 187 if argument = "-user" then argument_idx = collect_ids (attendee_name, "1"b); 188 else if argument = "-after" | argument = "-af" then call get_date (after_time); 189 else if argument = "-before" | argument = "-be" then call get_date (before_time); 190 else if argument = "-at" | argument = "-attending" then attending_switch = "1"b; 191 else if argument = "-all" | argument = "-a" then all_switch = "1"b; 192 else if argument = "-brief" | argument = "-bf" then brief_switch = "1"b; 193 else if argument = "-long" | argument = "-lg" then brief_switch = "0"b; 194 else if argument = "-include_deleted" | argument = "-idl" then delete_type = INCLUDE_DELETED; 195 else if argument = "-only_deleted" | argument = "-odl" then delete_type = ONLY_DELETED; 196 else if argument = "-only_non_deleted" | argument = "-ondl" then delete_type = ONLY_NONDELETED; 197 else if argument = "-meeting" | argument = "-mtg" then do; 198 if temp_forum then 199 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, "Only one meeting name may be specified."); 200 call get_arg (); 201 call get_forum (argument); 202 end; 203 else if argument = "-participating" | argument = "-part" then part = "1"b; 204 else if argument = "-no_participating" | argument = "-npart" then no_part = "1"b; 205 else if argument = "-project" | argument = "-pj" then argument_idx = collect_ids (project_name, "0"b); 206 else if argument = "-read_only" | argument = "-ro" then read_only = "1"b; 207 else if argument = "-no_read_only" | argument = "-nro" then no_read_only = "1"b; 208 else if argument = "-seen" then argument_idx, seen_idx = argument_idx + 1; 209 else if argument = "-unseen" then do; 210 argument_idx, seen_idx = argument_idx + 1; 211 unseen_switch = "1"b; 212 end; 213 else if argument = "-notify" | argument = "-nt" then notify_switch = "1"b; 214 else if argument = "-no_notify" | argument = "-nnt" then no_notify = "1"b; 215 else if active_function then goto BADOPT; 216 else if argument = "-ascending" | argument = "-asc" then do; 217 ascending = "1"b; 218 descending = "0"b; 219 end; 220 else if argument = "-descending" | argument = "-dsc" then do; 221 ascending = "0"b; 222 descending = "1"b; 223 end; 224 else if argument = "-eligible" | argument = "-elig" then eligible_switch = "1"b; 225 else if argument = "-header" | argument = "-he" then header_switch = "1"b; 226 else if argument = "-no_header" | argument = "-nhe" then header_switch = "0"b; 227 else if argument = "-names_only" then names_only = "1"b; 228 else if argument = "-sort" then do; 229 call get_arg (); 230 if argument = "name" then sort = SORT_BY_NAME; 231 else if argument = "date_time_attended" | argument = "dta" then sort = SORT_BY_TIME; 232 else if argument = "last_seen" | argument = "ls" then sort = SORT_BY_SEEN; 233 else call ssu_$abort_line (ssu_ptr, 0, "Unknown sort type: ""^a"".", argument); 234 end; 235 else if argument = "-total" | argument = "-tt" then total_switch = "1"b; 236 else 237 BADOPT: call ssu_$abort_line (ssu_ptr, error_table_$badopt, "^a", argument); 238 end; 239 else if temp_forum then 240 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, "Only one meeting may be specified. ^a", argument); 241 else call get_forum (argument); 242 end; 243 244 if forum_idx = 0 & ^temp_forum then 245 if command then call ssu_$abort_line (ssu_ptr, error_table_$noarg, "No meeting_name was given."); 246 else call ssu_$abort_line (ssu_ptr, forum_et_$no_forum); 247 248 if read_only & no_read_only then 249 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, "-read_only and -no_read_only"); 250 251 if notify_switch & no_notify then 252 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, "-notify and -no_notify"); 253 254 if part & no_part then 255 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, "-participating and -no_participating"); 256 257 if after_time ^= 0 & before_time ^= 0 then 258 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, "-before and -after"); 259 260 if person_switch & (all_switch | count > 0 | notify_switch | no_notify | total_switch | attending_switch | read_only | 261 no_read_only | after_time > 0 | before_time > 0 | part | no_part) then 262 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, "The -all, -after, -attending, -before, -notify, -no_notify, -no_participating, -no_read_only, -participating, -read_only, -seen, -total, and -unseen arguments may not be used with -user."); 263 264 if seen_idx > 0 then call get_count (ssu_ptr, forum_dir, full_forum_name); 265 266 if eligible_switch then do; 267 if attending_switch | notify_switch | no_notify | all_switch | count > 0 | person_switch | project_switch | 268 total_switch | read_only | no_read_only | ascending | descending | after_time > 0 | 269 before_time > 0 | part | no_part then 270 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, 271 "No other control arguments may be used with -eligible."); 272 273 call list_the_acl (); 274 end; 275 276 else do; 277 attendee_name = attendee_name || "."; 278 project_name = project_name || "."; 279 280 call forum_$list_users (forum_dir, full_forum_name, based_area_ptr, user_list_ptr, code); 281 if code ^= 0 then call ssu_$abort_line (ssu_ptr, code, "Getting user list."); 282 283 if ^part & ^no_part & delete_type = ONLY_NONDELETED then part = "1"b; 284 if ^ascending & ^descending then ascending = (sort = SORT_BY_NAME); 285 call name_list_ (); 286 end; 287 EXIT: 288 call cleanup_handler (); 289 return; 290 291 USAGE: 292 if active_function then 293 call active_fnc_err_$af_suppress_name (0, me, "Usage: [flsu meeting_name {-control_args}]"); 294 else call com_err_$suppress_name (0, me, "Usage: flsu meeting_name {-control_args}"); 295 return; 296 297 get_arg: 298 proc (); 299 300 argument_idx = argument_idx + 1; 301 if argument_idx > arg_count then 302 call ssu_$abort_line (ssu_ptr, error_table_$noarg, "Following ^a.", argument); 303 call ssu_$arg_ptr (ssu_ptr, argument_idx, arg_ptr, arg_len); 304 305 return; 306 end get_arg; 307 308 get_count: 309 proc (sci_ptr, dir, name); /* avoid #@&%$ name conflicts */ 310 311 declare sci_ptr ptr, 312 (dir, name) char (*), 313 1 pp aligned like passport; 314 315 call forum_$open_forum (dir, name, temp_idx, code); 316 if code ^= 0 then call ssu_$abort_line (sci_ptr, code, "Opening meeting."); 317 forum_opened = "1"b; 318 319 unspec (pp) = ""b; 320 pp.ssu_ptr = sci_ptr; 321 pp.forum_idx = temp_idx; 322 if passport_info_ptr = null () then pp.current_trans = 0; 323 else pp.current_trans = passport.current_trans; 324 pp.area_ptr = based_area_ptr; 325 pp.unprocessed_trans_ptr, pp.first_trans_ptr, pp.last_trans_ptr = null (); 326 327 parse_flags_word = NON_NULL | ONLY_ONE | ALLOW_DELETED | DISALLOW_UNPROC | DISALLOW_MTG | DISALLOW_REV | 328 DISALLOW_IDL | DISALLOW_INITIAL | DISALLOW_CMSG | DISALLOW_BYCHAIN; 329 330 call forum_trans_specs_$parse_specs (addr (pp), seen_idx, parse_flags_word, dummy, (0), (""), (""), 331 forum_trans_list_ptr); 332 count = forum_trans_list.trans_num (1); 333 334 call forum_trans_util_$clear_cache (addr (pp)); /* in case any got read out */ 335 return; 336 337 dummy: proc (P_arg_idx); 338 339 declare P_arg_idx fixed bin; 340 341 P_arg_idx = arg_count + 1; /* we're done now */ 342 343 return; 344 end dummy; 345 346 end get_count; 347 348 get_forum: 349 proc (forum); 350 351 declare forum char (*); 352 353 call forum_requests_$find_forum (forum, forum_dir, full_forum_name, name_len, code); 354 if code ^= 0 then 355 call ssu_$abort_line (ssu_ptr, code, "Finding the ""^a"" meeting.", forum); 356 forum_name = substr (full_forum_name, 1, name_len); 357 temp_forum = "1"b; 358 return; 359 end get_forum; 360 361 362 get_date: 363 proc (time); 364 365 declare time fixed bin (71); 366 367 call get_arg (); 368 call convert_date_to_binary_ (argument, time, code); 369 if code ^= 0 then call ssu_$abort_line (ssu_ptr, code, "^a", argument); 370 371 return; 372 end get_date; 373 374 375 collect_ids: 376 procedure (id_string, person) returns (fixed bin); 377 378 declare (person, found) bit (1) aligned, 379 id_string char (*) varying; 380 381 if argument_idx >= arg_count then 382 NOARG: call ssu_$abort_line (ssu_ptr, error_table_$noarg, "Following ^a.", argument); 383 384 found = "0"b; 385 if person then person_switch = "1"b; 386 else project_switch = "1"b; 387 388 do while (argument_idx < arg_count); 389 call get_arg (); 390 if char (argument, 1) = "-" then do; 391 if ^found then goto NOARG; 392 return (argument_idx - 1); 393 end; 394 found = "1"b; 395 if length (id_string) + arg_len > maxlength (id_string) then 396 call ssu_$abort_line (ssu_ptr, 0, "Too many names."); 397 if index (argument, ".") > 0 | index (argument, "*") > 0 then 398 call ssu_$abort_line (ssu_ptr, 0, "Invalid ^[user^;project^] name ""^a"".", person, argument); 399 id_string = id_string || "." || argument; 400 end; 401 return (argument_idx); 402 end collect_ids; 403 404 list_the_acl: 405 procedure (); 406 407 acl_ptr = null (); 408 on cleanup begin; 409 if acl_ptr ^= null then free acl; 410 end; 411 412 call forum_$list_forum_acl (forum_dir, full_forum_name, based_area_ptr, acl_ptr, 413 null (), acl_count, code); 414 if code ^= 0 then 415 if code = forum_et_$old_format then do; 416 call list_v1_acl (); 417 return; 418 end; 419 else call ssu_$abort_line (ssu_ptr, code, "Listing acl for the ""^a"" meeting.", forum_name); 420 421 if header_switch then call print_name_header (); 422 423 do i = 1 to acl_count; 424 call ioa_ ("^[r^]^[w^]^[c^]^[null^]^-^a", substr (acl.xmodes (i), 1, 1), substr (acl.xmodes (i), 2, 1), 425 substr (acl.xmodes (i), 3, 1), acl.xmodes (i) = ""b, acl.access_name (i)); 426 end; 427 free acl; 428 429 return; 430 end list_the_acl; 431 432 list_v1_acl: 433 procedure (); 434 435 declare public bit (1) aligned, 436 public_ro bit (1) aligned, 437 one_acl_ptr ptr, 438 1 one_acl aligned based (one_acl_ptr), 439 2 access_name char (32), 440 2 modes bit (36), 441 2 xmodes bit (36), 442 2 status_code fixed bin (35); 443 444 call forum_$list_v1_forum_acl (forum_dir, rtrim (forum_name) || ".control", based_area_ptr, acl_ptr, acl_count, code); 445 if code ^= 0 then 446 call ssu_$abort_line (ssu_ptr, code, "Listing acl for the ""^a"" meeting.", forum_name); 447 448 if header_switch then call print_name_header (); 449 450 if acl (acl_count).access_name = "*.*.*" then do; 451 public = (acl (acl_count).modes ^= "0"b); 452 public_ro = (acl (acl_count).modes = "100"b); 453 acl_count = acl_count - 1; /* avoid printing '*' as a project */ 454 end; 455 else public, public_ro = "0"b; 456 457 begin; 458 declare 1 v aligned, 459 2 n fixed bin, 460 2 vector (acl_count) pointer unaligned; 461 462 v.n = acl_count; 463 do i = 1 to acl_count; 464 v.vector (i) = addr (acl (i).access_name); 465 end; 466 call sort_items_$char (addr (v), 44); 467 468 call ioa_ ("The meeting is ^[not ^s^;^[read-only ^]^]public.", ^public, public_ro); 469 470 if acl_count > 0 then do; 471 if public then do; 472 if public_ro then call list_it (RW_ACCESS, "0"b, "0"b); 473 else call list_it (R_ACCESS, "0"b, "1"b); 474 call list_it (N_ACCESS, "0"b, "1"b); 475 end; 476 else call list_it (R_ACCESS, "1"b, "0"b); 477 end; 478 free acl; 479 return; 480 481 list_it: /* Still inside BEGIN block */ 482 procedure (match_acl, at_least, not_switch); 483 484 declare (at_least, not_switch, done) bit (1) aligned, 485 match_acl bit (3); 486 487 done, header_switch = "0"b; 488 count = 0; 489 do i = 1 to acl_count while (^done); 490 one_acl_ptr = v.vector (i); 491 if substr (one_acl.access_name, 1, 2) ^= "*." then done = "1"b; 492 else if one_acl.access_name ^= "*.SysDaemon.*" then do; 493 if (one_acl.modes = match_acl) | (at_least & one_acl.modes > match_acl) then do; 494 if ^header_switch then do; 495 call ioa_ ("^/The following projects are ^[not ^]eligible to ^[write^;participate^]:", 496 not_switch, ^at_least & (match_acl ^= N_ACCESS)); 497 header_switch = "1"b; 498 end; 499 if mod (count, 4) = 0 then call ioa_ (); 500 count = count + 1; 501 call ioa_$nnl ("^[*^; ^]^15a", (at_least & ^(substr (one_acl.modes, 3, 1))), before (after (one_acl.access_name, "."), ".")); 502 end; 503 end; 504 end; 505 506 if header_switch then call ioa_ (); 507 header_switch = "0"b; 508 count = 0; 509 do i = i - 1 to acl_count; 510 one_acl_ptr = v.vector (i); 511 if (one_acl.modes = match_acl) | (at_least & one_acl.modes > match_acl) then do; 512 if ^header_switch then do; 513 call ioa_ ("^/The following users are ^[not ^]eligible to ^[write^;participate^]:", 514 not_switch, ^at_least & (match_acl ^= N_ACCESS)); 515 header_switch = "1"b; 516 end; 517 if mod (count, 4) = 0 then call ioa_ (); 518 count = count + 1; 519 call ioa_$nnl ("^[*^; ^]^15a", 520 (at_least & ((one_acl.modes & W_ACCESS) = "000"b)), 521 before (one_acl.access_name, ".")); 522 end; 523 end; 524 525 if header_switch then call ioa_ (); 526 return; 527 end list_it; 528 529 end; /* BEGIN block */ 530 end list_v1_acl; 531 532 name_list_: 533 proc (); 534 535 declare name_array (user_list.no_attendees) char (78), 536 bit_map bit (user_list.transaction_count) aligned, 537 1 v aligned, 538 2 n fixed bin, 539 2 vector (user_list.no_attendees) ptr unaligned, 540 1 idxs aligned, 541 2 n fixed bin, 542 2 vector (user_list.no_attendees) fixed bin (18); 543 544 no_selected = 0; 545 do i = 1 to user_list.no_attendees; 546 547 if all_switch then goto accept_name; 548 549 if person_switch then 550 if index (attendee_name, "." || rtrim (user_list.attendees (i).person_id) || ".") ^= 0 then 551 goto accept_name; 552 else goto reject_name; 553 554 if project_switch then 555 if index (project_name, "." || rtrim (user_list.attendees (i).project_id) || ".") ^= 0 then 556 goto accept_name; 557 else goto reject_name; 558 559 if part & user_list.attendees (i).removed then goto reject_name; 560 if no_part & ^user_list.attendees (i).removed then goto reject_name; 561 if user_list.attendees (i).deleted & delete_type = ONLY_NONDELETED then goto reject_name; 562 if ^user_list.attendees (i).deleted & delete_type = ONLY_DELETED then goto reject_name; 563 564 if attending_switch & ^user_list.attendees (i).attending then goto reject_name; 565 566 if notify_switch & ^user_list.attendees (i).notify then goto reject_name; 567 if no_notify & user_list.attendees (i).notify then goto reject_name; 568 if read_only & ^user_list.attendees (i).read_only then goto reject_name; 569 if no_read_only & user_list.attendees (i).read_only then goto reject_name; 570 571 if before_time ^= 0 & user_list.attendees (i).last_time_attended > before_time then goto reject_name; 572 573 if user_list.attendees (i).last_time_attended < after_time then goto reject_name; 574 575 accept_name: 576 if count > 0 then do; 577 call forum_$get_transaction_map_idx (temp_idx, user_list.attendees (i).person_id, bit_map, code); 578 if code ^= 0 then 579 if code = forum_et_$old_format then do; 580 if unseen_switch then 581 if user_list.attendees (i).highest_trans_seen >= count then goto reject_name; 582 else; 583 else if user_list.attendees (i).highest_trans_seen < count then goto reject_name; 584 end; 585 else call ssu_$abort_line (ssu_ptr, code, "Getting transaction map."); 586 else if unseen_switch then 587 if substr (bit_map, count, 1) then goto reject_name; 588 else; 589 else if ^substr (bit_map, count, 1) then goto reject_name; 590 end; 591 592 no_selected = no_selected + 1; 593 if active_function then 594 ret_arg = ret_arg || user_list.attendees (i).person_id; 595 else if ^total_switch then do; 596 if ^names_only then 597 if user_list.attendees (i).attending then trans_time = "NOW ATTENDING"; 598 else if user_list.attendees (i).last_time_attended ^= 0 then 599 trans_time = date_time_$format ("date_time", user_list.attendees (i).last_time_attended, 600 "", ""); 601 else trans_time = "NEVER ATTENDED"; 602 603 trans_pic = user_list.attendees (i).highest_trans_seen; 604 call ioa_$rsnnl ("^[^4s^; ^[^[d^;r^]^;^s ^]^[n^; ^]^[o^; ^]^3x^]^a^[.^a^;^s^]^[^43t^[[^a]^; *END*^s^]^52t^a^]", 605 name_array (no_selected), messlen, names_only, (user_list.attendees (i).deleted | 606 user_list.attendees (i).removed), user_list.attendees (i).deleted, 607 (user_list.attendees (i).notify), (user_list.attendees (i).read_only), 608 rtrim (user_list.attendees (i).person_id), (user_list.attendees (i).project_id ^= ""), 609 user_list.attendees (i).project_id, ^names_only, 610 (user_list.attendees (i).highest_trans_seen < user_list.transaction_count), 611 ltrim (trans_pic), trans_time); 612 613 if sort = SORT_BY_NAME then 614 if names_only then v.vector (no_selected) = addr (name_array (no_selected)); 615 else v.vector (no_selected) = addr (substr (name_array (no_selected), 8)); 616 else if sort = SORT_BY_SEEN then 617 v.vector (no_selected) = addr (user_list.attendees (i).highest_trans_seen); 618 else v.vector (no_selected) = addr (user_list.attendees (i).last_time_attended); 619 end; 620 reject_name: 621 end; 622 623 if no_selected = 0 & ^active_function then do; 624 if ^brief_switch then 625 call ssu_$print_message (ssu_ptr, 0, "No participants were selected."); 626 return; 627 end; 628 629 else if ^active_function then do; 630 if header_switch then call print_name_header (); 631 if total_switch then 632 call ioa_ ("Total users ^[selected ^]= ^d.", (attending_switch | notify_switch | person_switch | count > 0), 633 no_selected); 634 else do; 635 idxs.n, v.n = no_selected; 636 do i = 1 to no_selected; 637 idxs.vector (i) = i; 638 end; 639 if sort = SORT_BY_NAME then 640 call sort_items_indirect_$char (addr (v), addr (idxs), 75 - sort); 641 else if sort = SORT_BY_SEEN then 642 call sort_items_indirect_$fixed_bin (addr (v), addr (idxs)); 643 else call sort_items_indirect_$general (addr (v), addr (idxs), compare_fb71); 644 645 if ascending then 646 do i = 1 to no_selected; 647 call ioa_ ("^a", name_array (idxs.vector (i))); 648 end; 649 else do i = no_selected to 1 by -1; 650 call ioa_ ("^a", name_array (idxs.vector (i))); 651 end; 652 end; 653 654 end; 655 return; 656 end name_list_; 657 658 compare_fb71: 659 proc (p1, p2) returns (fixed bin (1)); 660 661 declare (p1, p2) ptr unaligned, 662 fb71 fixed bin (71) based; 663 664 if p1 -> fb71 > p2 -> fb71 then return (1); 665 else if p1 -> fb71 = p2 -> fb71 then return (0); 666 else return (-1); 667 668 end compare_fb71; 669 670 671 print_name_header: 672 proc (); 673 674 call ioa_ ("^[Eligible u^;U^]sers of the ^a>^a meeting.", eligible_switch, forum_dir, forum_name); 675 if names_only | total_switch | eligible_switch then return; 676 677 trans_pic = user_list.transaction_count; 678 call ioa_("Flags Person Last [^a]^52tLast time attended", ltrim (trans_pic)); 679 680 return; 681 end print_name_header; 682 683 cleanup_handler: 684 proc (); 685 686 if forum_opened then call forum_$close_forum (temp_idx, (0)); 687 if user_list_ptr ^= null () then free user_list; 688 if forum_trans_list_ptr ^= null () then free forum_trans_list; 689 if command then call ssu_$destroy_invocation (ssu_ptr); 690 691 return; 692 end cleanup_handler; 693 694 punt: 695 proc (); 696 697 goto EXIT; 698 699 end punt; 700 701 end forum_list_users; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/27/92 1034.4 forum_list_users.pl1 >spec>install>MR12.5-1014>forum_list_users.pl1 125 1 10/31/84 1215.4 forum_user_list.incl.pl1 >ldd>incl>forum_user_list.incl.pl1 127 2 08/16/86 1638.0 forum_passport.incl.pl1 >ldd>incl>forum_passport.incl.pl1 129 3 04/27/92 1033.8 forum_trans_list.incl.pl1 >spec>install>MR12.5-1014>forum_trans_list.incl.pl1 131 4 04/11/85 1552.6 access_mode_values.incl.pl1 >ldd>incl>access_mode_values.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ALLOW_DELETED constant bit(18) initial dcl 3-54 ref 327 ANY 000607 automatic bit(36) initial dcl 3-53 set ref 3-53* DISALLOW_BYCHAIN constant bit(18) initial dcl 3-54 ref 327 DISALLOW_CMSG constant bit(18) initial dcl 3-54 ref 327 DISALLOW_IDL constant bit(18) initial dcl 3-54 ref 327 DISALLOW_INITIAL constant bit(18) initial dcl 3-54 ref 327 DISALLOW_MTG constant bit(18) initial dcl 3-54 ref 327 DISALLOW_REV constant bit(18) initial dcl 3-54 ref 327 DISALLOW_UNPROC constant bit(18) initial dcl 3-54 ref 327 INCLUDE_DELETED constant fixed bin(17,0) initial dcl 77 ref 194 NON_NULL constant bit(18) initial dcl 3-54 ref 327 N_ACCESS constant bit(3) initial packed unaligned dcl 4-11 set ref 474* 495 513 ONLY_DELETED constant fixed bin(17,0) initial dcl 77 ref 195 562 ONLY_NONDELETED constant fixed bin(17,0) initial dcl 77 ref 180 196 283 561 ONLY_ONE constant bit(18) initial dcl 3-54 ref 327 P_arg_idx parameter fixed bin(17,0) dcl 339 set ref 337 341* P_passport_info_ptr parameter pointer dcl 37 ref 148 152 P_ssu_ptr parameter pointer dcl 37 ref 148 151 RW_ACCESS constant bit(3) initial packed unaligned dcl 4-11 set ref 472* R_ACCESS constant bit(3) initial packed unaligned dcl 4-11 set ref 473* 476* SORT_BY_NAME constant fixed bin(17,0) initial dcl 77 ref 179 230 284 613 639 SORT_BY_SEEN constant fixed bin(17,0) initial dcl 77 ref 232 616 641 SORT_BY_TIME constant fixed bin(17,0) initial dcl 77 ref 231 W_ACCESS constant bit(3) initial packed unaligned dcl 4-11 ref 519 access_name based char(32) array level 2 in structure "acl" dcl 71 in procedure "forum_list_users" set ref 424* 450 464 access_name based char(32) level 2 in structure "one_acl" dcl 435 in procedure "list_v1_acl" ref 491 492 501 501 519 519 acl based structure array level 1 dcl 71 set ref 409 427 478 acl_count 000543 automatic fixed bin(17,0) dcl 58 set ref 409 412* 423 427 444* 450 451 452 453* 453 458 462 463 470 478 489 509 acl_ptr 000560 automatic pointer dcl 61 set ref 407* 409 409 412* 424 424 424 424 424 424 424 424 427 444* 450 451 452 464 478 active_fnc_err_ 000032 constant entry external dcl 92 ref 139 active_fnc_err_$af_suppress_name 000036 constant entry external dcl 92 ref 291 active_function 000106 automatic bit(1) initial dcl 40 set ref 40* 167* 168 215 291 593 623 629 addr builtin function dcl 67 ref 157 330 330 334 334 464 466 466 613 615 616 618 639 639 639 639 641 641 641 641 643 643 643 643 after builtin function dcl 67 ref 501 501 after_time 000136 automatic fixed bin(71,0) dcl 45 set ref 182* 188* 257 260 267 573 all_switch 000100 automatic bit(1) initial dcl 40 set ref 40* 191* 260 267 547 area_ptr 74 000624 automatic pointer level 2 dcl 311 set ref 324* arg_count 000552 automatic fixed bin(17,0) dcl 58 set ref 167* 170 173 184 301 341 381 388 arg_len 000553 automatic fixed bin(17,0) dcl 58 set ref 175 175 175 186 187 188 188 189 189 190 190 191 191 192 192 193 193 194 194 195 195 196 196 197 197 201 201 203 203 204 204 205 205 206 206 207 207 208 209 213 213 214 214 216 216 220 220 224 224 225 225 226 226 227 228 230 231 231 232 232 233 233 235 235 236 236 239 239 241 241 301 301 303* 368 368 369 369 381 381 390 395 397 397 397 397 399 arg_ptr 000564 automatic pointer dcl 61 set ref 175 175 186 187 188 188 189 189 190 190 191 191 192 192 193 193 194 194 195 195 196 196 197 197 201 203 203 204 204 205 205 206 206 207 207 208 209 213 213 214 214 216 216 220 220 224 224 225 225 226 226 227 228 230 231 231 232 232 233 235 235 236 239 241 301 303* 368 369 381 390 397 397 397 399 argument based char packed unaligned dcl 64 set ref 175 175* 186 187 188 188 189 189 190 190 191 191 192 192 193 193 194 194 195 195 196 196 197 197 201* 203 203 204 204 205 205 206 206 207 207 208 209 213 213 214 214 216 216 220 220 224 224 225 225 226 226 227 228 230 231 231 232 232 233* 235 235 236* 239* 241* 301* 368* 369* 381* 390 397 397 397* 399 argument_idx 000551 automatic fixed bin(17,0) dcl 58 set ref 172* 176* 184 187* 205* 208 208* 210 210* 300* 300 301 303* 381 388 392 401 ascending 000121 automatic bit(1) initial dcl 40 set ref 40* 217* 221* 267 284 284* 645 at_least parameter bit(1) dcl 484 ref 481 493 495 501 511 513 519 attendee_name 000316 automatic varying char(256) dcl 45 set ref 181* 187* 277* 277 549 attendees 14 based structure array level 2 dcl 1-6 attending 24(09) based bit(1) array level 3 packed packed unaligned dcl 1-6 ref 564 596 attending_switch 000103 automatic bit(1) initial dcl 40 set ref 40* 190* 260 267 564 631 based_area_ptr 000562 automatic pointer dcl 61 set ref 163* 280* 324 412* 444* before builtin function dcl 67 ref 501 501 519 519 before_time 000140 automatic fixed bin(71,0) dcl 45 set ref 182* 189* 257 260 267 571 571 bit_map 000100 automatic bit dcl 535 set ref 577* 586 589 brief_switch 000105 automatic bit(1) initial dcl 40 set ref 40* 192* 193* 624 char builtin function dcl 67 ref 390 cleanup 000572 stack reference condition dcl 67 ref 164 408 code 000542 automatic fixed bin(35,0) dcl 45 set ref 137* 138 139* 141* 280* 281 281* 315* 316 316* 353* 354 354* 368* 369 369* 412* 414 414 419* 444* 445 445* 577* 578 578 585* com_err_ 000030 constant entry external dcl 92 ref 141 com_err_$suppress_name 000034 constant entry external dcl 92 ref 294 command 000107 automatic bit(1) initial dcl 40 set ref 40* 133* 170 244 689 convert_date_to_binary_ 000040 constant entry external dcl 92 ref 368 count 000555 automatic fixed bin(17,0) dcl 58 set ref 182* 260 267 332* 488* 499 500* 500 508* 517 518* 518 575 580 583 586 589 631 cu_$af_return_arg 000072 constant entry external dcl 92 ref 139 cu_$arg_list_ptr 000070 constant entry external dcl 92 ref 137 137 current_trans 66 based fixed bin(17,0) level 2 in structure "passport" dcl 2-14 in procedure "forum_list_users" ref 323 current_trans 66 000624 automatic fixed bin(17,0) level 2 in structure "pp" dcl 311 in procedure "get_count" set ref 322* 323* date_time_$format 000042 constant entry external dcl 92 ref 598 delete_type 000557 automatic fixed bin(17,0) dcl 58 set ref 180* 194* 195* 196* 283 561 562 deleted 24(15) based bit(1) array level 3 packed packed unaligned dcl 1-6 set ref 561 562 604 604* descending 000122 automatic bit(1) initial dcl 40 set ref 40* 218* 222* 267 284 dir parameter char packed unaligned dcl 311 set ref 308 315* done 000112 automatic bit(1) dcl 484 set ref 487* 489 491* eligible_switch 000115 automatic bit(1) initial dcl 40 set ref 40* 224* 266 674* 675 error_table_$badopt 000010 external static fixed bin(35,0) dcl 85 set ref 236* error_table_$inconsistent 000012 external static fixed bin(35,0) dcl 85 set ref 198* 239* 248* 251* 254* 257* 260* 267* error_table_$noarg 000014 external static fixed bin(35,0) dcl 85 set ref 244* 301* 381* fb71 based fixed bin(71,0) dcl 661 ref 664 664 665 665 first_trans_ptr 76 000624 automatic pointer level 2 dcl 311 set ref 325* forum parameter char packed unaligned dcl 351 set ref 348 353* 354* forum_$close_forum 000054 constant entry external dcl 92 ref 686 forum_$get_transaction_map_idx 000056 constant entry external dcl 92 ref 577 forum_$list_forum_acl 000060 constant entry external dcl 92 ref 412 forum_$list_users 000064 constant entry external dcl 92 ref 280 forum_$list_v1_forum_acl 000062 constant entry external dcl 92 ref 444 forum_$open_forum 000066 constant entry external dcl 92 ref 315 forum_dir 2 based char(168) level 2 in structure "passport" packed packed unaligned dcl 2-14 in procedure "forum_list_users" ref 156 forum_dir 000142 automatic char(168) packed unaligned dcl 45 in procedure "forum_list_users" set ref 156* 264* 280* 353* 412* 444* 674* forum_et_$no_forum 000016 external static fixed bin(35,0) dcl 85 set ref 246* forum_et_$old_format 000020 external static fixed bin(35,0) dcl 85 ref 414 578 forum_idx 1 000624 automatic fixed bin(17,0) level 2 in structure "pp" dcl 311 in procedure "get_count" set ref 321* forum_idx 1 based fixed bin(17,0) level 2 in structure "passport" dcl 2-14 in procedure "forum_list_users" ref 155 forum_idx 000550 automatic fixed bin(17,0) dcl 58 in procedure "forum_list_users" set ref 134* 155* 244 forum_name 000520 automatic char(32) packed unaligned dcl 45 in procedure "forum_list_users" set ref 157* 356* 419* 444 445* 674* forum_name 54 based char(32) level 2 in structure "passport" packed packed unaligned dcl 2-14 in procedure "forum_list_users" set ref 157 158 forum_name_len 64 based fixed bin(17,0) level 2 dcl 2-14 ref 157 forum_opened 000120 automatic bit(1) initial dcl 40 set ref 40* 317* 686 forum_requests_$find_forum 000046 constant entry external dcl 92 ref 353 forum_trans_list based structure level 1 dcl 3-18 ref 688 forum_trans_list_ptr 000604 automatic pointer dcl 3-15 set ref 162* 330* 332 688 688 forum_trans_specs_$parse_specs 000050 constant entry external dcl 92 ref 330 forum_trans_util_$clear_cache 000052 constant entry external dcl 92 ref 334 found 001044 automatic bit(1) dcl 378 set ref 384* 391 394* full_forum_name 000530 automatic char(32) packed unaligned dcl 45 set ref 158* 264* 280* 353* 356 412* get_system_free_area_ 000044 constant entry external dcl 92 ref 163 header_switch 000112 automatic bit(1) initial dcl 40 set ref 40* 160* 225* 226* 421 448 487* 494 497* 506 507* 512 515* 525 630 highest_trans_seen 30 based fixed bin(17,0) array level 3 dcl 1-6 set ref 580 583 603 604 616 i 000547 automatic fixed bin(17,0) dcl 58 set ref 423* 424 424 424 424 424 424 424 424* 463* 464 464* 489* 490* 509* 509* 510* 545* 549 554 559 560 561 562 564 566 567 568 569 571 573 577 580 583 593 596 598 598 603 604 604 604 604 604 604 604 604 604 604 616 618* 636* 637 637* 645* 647* 649* 650* id_string parameter varying char dcl 378 set ref 375 395 395 399* 399 idxs 000100 automatic structure level 1 dcl 535 set ref 639 639 641 641 643 643 index builtin function dcl 67 ref 186 397 397 549 554 ioa_ 000022 constant entry external dcl 92 ref 424 468 495 499 506 513 517 525 631 647 650 674 678 ioa_$nnl 000024 constant entry external dcl 92 ref 501 519 ioa_$rsnnl 000026 constant entry external dcl 92 ref 604 last_time_attended 26 based fixed bin(71,0) array level 3 dcl 1-6 set ref 571 573 598 598* 618 last_trans_ptr 100 000624 automatic pointer level 2 dcl 311 set ref 325* length builtin function dcl 67 ref 395 list 3 based structure array level 2 dcl 3-18 ltrim builtin function dcl 67 ref 604 604 678 678 match_acl parameter bit(3) packed unaligned dcl 484 ref 481 493 493 495 511 511 513 max_size based fixed bin(17,0) level 2 dcl 3-18 ref 688 maxlength builtin function dcl 67 ref 395 me 000126 automatic char(32) packed unaligned dcl 45 set ref 135* 137* 139* 141* 154* 291* 294* messlen 000546 automatic fixed bin(17,0) dcl 58 set ref 604* mod builtin function dcl 67 ref 499 517 modes 10 based bit(36) level 2 in structure "one_acl" dcl 435 in procedure "list_v1_acl" ref 493 493 501 511 511 519 modes 10 based bit(36) array level 2 in structure "acl" dcl 71 in procedure "forum_list_users" ref 451 452 n 000100 automatic fixed bin(17,0) level 2 in structure "idxs" dcl 535 in procedure "name_list_" set ref 635* n 000100 automatic fixed bin(17,0) level 2 in structure "v" dcl 535 in procedure "name_list_" set ref 635* n 000100 automatic fixed bin(17,0) level 2 in structure "v" dcl 458 in begin block on line 457 set ref 462* name parameter char packed unaligned dcl 311 set ref 308 315* name_array 000100 automatic char(78) array packed unaligned dcl 535 set ref 604* 613 615 647* 650* name_len 000540 automatic fixed bin(17,0) dcl 45 set ref 353* 356 names_only 000123 automatic bit(1) initial dcl 40 set ref 40* 227* 596 604* 604 613 675 no_attendees 12 based fixed bin(17,0) level 2 dcl 1-6 ref 535 535 535 545 687 no_notify 000110 automatic bit(1) initial dcl 40 set ref 40* 214* 251 260 267 567 no_part 000125 automatic bit(1) initial dcl 40 set ref 40* 204* 254 260 267 283 560 no_read_only 000117 automatic bit(1) initial dcl 40 set ref 40* 207* 248 260 267 569 no_selected 000545 automatic fixed bin(17,0) dcl 58 set ref 544* 592* 592 604 613 613 615 615 616 618 623 631* 635 636 645 649 no_suffix_name based char packed unaligned dcl 2-46 ref 157 not_switch parameter bit(1) dcl 484 set ref 481 495* 513* notify 24(12) based bit(1) array level 3 packed packed unaligned dcl 1-6 ref 566 567 604 notify_switch 000111 automatic bit(1) initial dcl 40 set ref 40* 213* 251 260 267 566 631 null builtin function dcl 67 ref 139 139 144 162 322 325 407 409 412 412 687 688 one_acl based structure level 1 dcl 435 one_acl_ptr 000120 automatic pointer dcl 435 set ref 490* 491 492 493 493 501 501 501 510* 511 511 519 519 519 p1 parameter pointer packed unaligned dcl 661 ref 658 664 665 p2 parameter pointer packed unaligned dcl 661 ref 658 664 665 parse_flags_word 000606 automatic bit(36) dcl 3-30 set ref 327* 330* part 000124 automatic bit(1) initial dcl 40 set ref 40* 203* 254 260 267 283 283* 559 passport based structure level 1 dcl 2-14 passport_info_ptr 000602 automatic pointer dcl 2-12 set ref 144* 152* 155 156 157 157 158 322 323 person parameter bit(1) dcl 378 set ref 375 385 397* person_id 14 based char(22) array level 3 packed packed unaligned dcl 1-6 set ref 549 577* 593 604 604 person_switch 000101 automatic bit(1) initial dcl 40 set ref 40* 260 267 385* 549 631 pp 000624 automatic structure level 1 dcl 311 set ref 319* 330 330 334 334 project_id 21(18) based char(11) array level 3 packed packed unaligned dcl 1-6 set ref 554 604 604* project_name 000417 automatic varying char(256) dcl 45 set ref 181* 205* 278* 278 554 project_switch 000102 automatic bit(1) initial dcl 40 set ref 40* 267 386* 554 public 000116 automatic bit(1) dcl 435 set ref 451* 455* 468 471 public_ro 000117 automatic bit(1) dcl 435 set ref 452* 455* 468* 472 read_only 000116 automatic bit(1) initial dcl 40 in procedure "forum_list_users" set ref 40* 206* 248 260 267 568 read_only 24(14) based bit(1) array level 3 in structure "user_list" packed packed unaligned dcl 1-6 in procedure "forum_list_users" ref 568 569 604 removed 24(13) based bit(1) array level 3 packed packed unaligned dcl 1-6 ref 559 560 604 ret_arg based varying char dcl 64 set ref 168* 593* 593 ret_len 000554 automatic fixed bin(17,0) dcl 58 set ref 167* 168 593 ret_ptr 000566 automatic pointer dcl 61 set ref 167* 168 593 593 rtrim builtin function dcl 67 ref 444 549 554 604 604 sci_ptr parameter pointer dcl 311 set ref 308 316* 320 seen_idx 000544 automatic fixed bin(17,0) dcl 58 set ref 165* 208* 210* 264 330* sort 000556 automatic fixed bin(17,0) dcl 58 set ref 179* 230* 231* 232* 284 613 616 639 639 641 sort_items_$char 000074 constant entry external dcl 92 ref 466 sort_items_indirect_$char 000076 constant entry external dcl 92 ref 639 sort_items_indirect_$fixed_bin 000100 constant entry external dcl 92 ref 641 sort_items_indirect_$general 000102 constant entry external dcl 92 ref 643 ssu_$abort_line 000104 constant entry external dcl 92 ref 198 233 236 239 244 246 248 251 254 257 260 267 281 301 316 354 369 381 395 397 419 445 585 ssu_$arg_ptr 000112 constant entry external dcl 92 ref 303 ssu_$destroy_invocation 000116 constant entry external dcl 92 ref 689 ssu_$print_message 000114 constant entry external dcl 92 ref 624 ssu_$return_arg 000110 constant entry external dcl 92 ref 167 ssu_$standalone_invocation 000106 constant entry external dcl 92 ref 137 ssu_ptr 170 000624 automatic pointer level 2 in structure "pp" dcl 311 in procedure "get_count" set ref 320* ssu_ptr 000570 automatic pointer dcl 61 in procedure "forum_list_users" set ref 137* 151* 167* 198* 233* 236* 239* 244* 246* 248* 251* 254* 257* 260* 264* 267* 281* 301* 303* 354* 369* 381* 395* 397* 419* 445* 585* 624* 689* substr builtin function dcl 67 ref 175 356 424 424 424 424 424 424 491 501 586 589 615 temp_forum 000104 automatic bit(1) initial dcl 40 set ref 40* 198 239 244 357* temp_idx 000541 automatic fixed bin(17,0) dcl 45 set ref 165* 315* 321 577* 686* time parameter fixed bin(71,0) dcl 365 set ref 362 368* total_switch 000113 automatic bit(1) initial dcl 40 set ref 40* 235* 260 267 595 631 675 trans_num 3 based fixed bin(17,0) array level 3 dcl 3-18 ref 332 trans_pic 000314 automatic picture(6) packed unaligned dcl 45 set ref 603* 604 604 677* 678 678 trans_time 000214 automatic varying char(250) dcl 45 set ref 596* 598* 601* 604* transaction_count 11 based fixed bin(17,0) level 2 dcl 1-6 ref 535 604 677 unprocessed_trans_ptr 102 000624 automatic pointer level 2 dcl 311 set ref 325* unseen_switch 000114 automatic bit(1) initial dcl 40 set ref 40* 211* 580 586 unspec builtin function dcl 67 set ref 319* user_list based structure level 1 dcl 1-6 set ref 687 user_list_ptr 000600 automatic pointer dcl 1-3 set ref 162* 280* 535 535 535 535 545 549 554 559 560 561 562 564 566 567 568 569 571 573 577 580 583 593 596 598 598 603 604 604 604 604 604 604 604 604 604 604 604 616 618 677 687 687 v 000100 automatic structure level 1 dcl 535 in procedure "name_list_" set ref 639 639 641 641 643 643 v 000100 automatic structure level 1 dcl 458 in begin block on line 457 set ref 466 466 vector 1 000100 automatic pointer array level 2 in structure "v" packed packed unaligned dcl 458 in begin block on line 457 set ref 464* 490 510 vector 1 000100 automatic fixed bin(18,0) array level 2 in structure "idxs" dcl 535 in procedure "name_list_" set ref 637* 647 650 vector 1 000100 automatic pointer array level 2 in structure "v" packed packed unaligned dcl 535 in procedure "name_list_" set ref 613* 615* 616* 618* xmodes 11 based bit(36) array level 2 dcl 71 ref 424 424 424 424 424 424 424 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALLOW_IHE internal static bit(18) initial dcl 3-54 A_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 CALL_ON_BAD_ARGS internal static bit(18) initial dcl 3-54 CREATE_UNPROC internal static bit(18) initial dcl 3-54 DEFAULT_TO_ALL internal static bit(18) initial dcl 3-54 DEFAULT_TO_NONE internal static bit(18) initial dcl 3-54 DEFAULT_TO_UNPROC internal static bit(18) initial dcl 3-54 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 4-33 DONT_READ internal static bit(18) initial dcl 3-54 E_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 MUST_BE_DELETED internal static bit(18) initial dcl 3-54 M_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 4-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 4-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 TFMT_more internal static fixed bin(17,0) initial dcl 2-54 TFMT_none internal static fixed bin(17,0) initial dcl 2-54 TFMT_number internal static fixed bin(17,0) initial dcl 2-54 TFMT_reference internal static fixed bin(17,0) initial dcl 2-54 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 alloc_trans_list_size automatic fixed bin(17,0) dcl 3-16 error_table_$bad_conversion external static fixed bin(35,0) dcl 85 forum_area based area(1024) dcl 2-46 forum_data_$central_directory external static char(168) packed unaligned dcl 2-49 forum_data_$info_directory external static char(168) packed unaligned dcl 2-49 forum_data_$version_string external static char(8) packed unaligned dcl 2-49 parse_flags based structure level 1 dcl 3-32 passport_version_2 internal static fixed bin(17,0) initial dcl 2-44 user_list_no_attendees automatic fixed bin(17,0) dcl 1-3 user_list_version_2 internal static fixed bin(17,0) initial dcl 1-26 NAMES DECLARED BY EXPLICIT CONTEXT. BADOPT 002271 constant label dcl 236 ref 215 EXIT 003125 constant label dcl 287 ref 697 NOARG 003743 constant label dcl 381 ref 391 USAGE 003132 constant label dcl 291 ref 170 accept_name 006032 constant label dcl 575 ref 547 549 554 cleanup_handler 007331 constant entry internal dcl 683 ref 164 287 collect_ids 003727 constant entry internal dcl 375 ref 187 205 common 001310 constant label dcl 160 ref 145 compare_fb71 007147 constant entry internal dcl 658 ref 643 643 dummy 003520 constant entry internal dcl 337 ref 330 330 flsu 001062 constant entry external dcl 20 forum_list_users 001052 constant entry external dcl 20 get_arg 003211 constant entry internal dcl 297 ref 174 185 200 229 367 389 get_count 003270 constant entry internal dcl 308 ref 264 get_date 003642 constant entry internal dcl 362 ref 188 189 get_forum 003533 constant entry internal dcl 348 ref 175 201 241 list_it 005035 constant entry internal dcl 481 ref 472 473 474 476 list_the_acl 004226 constant entry internal dcl 404 ref 273 list_users_request 001254 constant entry external dcl 148 list_v1_acl 004501 constant entry internal dcl 432 ref 416 name_list_ 005515 constant entry internal dcl 532 ref 285 print_name_header 007206 constant entry internal dcl 671 ref 421 448 630 punt 007413 constant entry internal dcl 694 ref 137 137 reject_name 006617 constant label dcl 620 ref 552 557 559 560 561 562 564 566 567 568 569 571 573 580 583 586 589 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10274 10414 7525 10304 Length 11020 7525 120 367 546 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME forum_list_users 868 external procedure is an external procedure. on unit on line 164 64 on unit get_arg internal procedure shares stack frame of external procedure forum_list_users. get_count internal procedure shares stack frame of external procedure forum_list_users. dummy 64 internal procedure is assigned to an entry variable. get_forum internal procedure shares stack frame of external procedure forum_list_users. get_date internal procedure shares stack frame of external procedure forum_list_users. collect_ids internal procedure shares stack frame of external procedure forum_list_users. list_the_acl 186 internal procedure enables or reverts conditions. on unit on line 408 64 on unit list_v1_acl internal procedure shares stack frame of internal procedure list_the_acl. begin block on line 457 152 begin block uses auto adjustable storage. list_it internal procedure shares stack frame of begin block on line 457. name_list_ 248 internal procedure uses auto adjustable storage. compare_fb71 70 internal procedure is assigned to an entry variable. print_name_header 98 internal procedure is called by several nonquick procedures. cleanup_handler 72 internal procedure is called by several nonquick procedures. punt 64 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 457 000100 v begin block on line 457 000112 done list_it forum_list_users 000100 all_switch forum_list_users 000101 person_switch forum_list_users 000102 project_switch forum_list_users 000103 attending_switch forum_list_users 000104 temp_forum forum_list_users 000105 brief_switch forum_list_users 000106 active_function forum_list_users 000107 command forum_list_users 000110 no_notify forum_list_users 000111 notify_switch forum_list_users 000112 header_switch forum_list_users 000113 total_switch forum_list_users 000114 unseen_switch forum_list_users 000115 eligible_switch forum_list_users 000116 read_only forum_list_users 000117 no_read_only forum_list_users 000120 forum_opened forum_list_users 000121 ascending forum_list_users 000122 descending forum_list_users 000123 names_only forum_list_users 000124 part forum_list_users 000125 no_part forum_list_users 000126 me forum_list_users 000136 after_time forum_list_users 000140 before_time forum_list_users 000142 forum_dir forum_list_users 000214 trans_time forum_list_users 000314 trans_pic forum_list_users 000316 attendee_name forum_list_users 000417 project_name forum_list_users 000520 forum_name forum_list_users 000530 full_forum_name forum_list_users 000540 name_len forum_list_users 000541 temp_idx forum_list_users 000542 code forum_list_users 000543 acl_count forum_list_users 000544 seen_idx forum_list_users 000545 no_selected forum_list_users 000546 messlen forum_list_users 000547 i forum_list_users 000550 forum_idx forum_list_users 000551 argument_idx forum_list_users 000552 arg_count forum_list_users 000553 arg_len forum_list_users 000554 ret_len forum_list_users 000555 count forum_list_users 000556 sort forum_list_users 000557 delete_type forum_list_users 000560 acl_ptr forum_list_users 000562 based_area_ptr forum_list_users 000564 arg_ptr forum_list_users 000566 ret_ptr forum_list_users 000570 ssu_ptr forum_list_users 000600 user_list_ptr forum_list_users 000602 passport_info_ptr forum_list_users 000604 forum_trans_list_ptr forum_list_users 000606 parse_flags_word forum_list_users 000607 ANY forum_list_users 000624 pp get_count 001044 found collect_ids list_the_acl 000116 public list_v1_acl 000117 public_ro list_v1_acl 000120 one_acl_ptr list_v1_acl name_list_ 000100 bit_map name_list_ 000100 name_array name_list_ 000100 v name_list_ 000100 idxs name_list_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_g_a r_e_as r_ne_as set_stack alloc_char_temp cat_realloc_chars enter_begin_block call_ext_out_desc call_ext_out call_int_this call_int_other return_mac move_label_var make_label_var tra_ext_1 alloc_auto_adj mdfx1 enable_op shorten_stack ext_entry int_entry set_chars_eis index_chars_eis op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ active_fnc_err_$af_suppress_name com_err_ com_err_$suppress_name convert_date_to_binary_ cu_$af_return_arg cu_$arg_list_ptr date_time_$format forum_$close_forum forum_$get_transaction_map_idx forum_$list_forum_acl forum_$list_users forum_$list_v1_forum_acl forum_$open_forum forum_requests_$find_forum forum_trans_specs_$parse_specs forum_trans_util_$clear_cache get_system_free_area_ ioa_ ioa_$nnl ioa_$rsnnl sort_items_$char sort_items_indirect_$char sort_items_indirect_$fixed_bin sort_items_indirect_$general ssu_$abort_line ssu_$arg_ptr ssu_$destroy_invocation ssu_$print_message ssu_$return_arg ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent error_table_$noarg forum_et_$no_forum forum_et_$old_format LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 40 001020 3 53 001046 20 001051 133 001070 134 001072 135 001073 137 001076 138 001146 139 001150 141 001220 142 001244 144 001245 145 001247 148 001250 151 001262 152 001266 154 001271 155 001274 156 001276 157 001301 158 001305 160 001310 162 001312 163 001315 164 001324 165 001346 167 001350 168 001367 170 001373 172 001377 173 001400 174 001402 175 001403 176 001424 179 001425 180 001427 181 001431 182 001433 184 001437 185 001443 186 001444 187 001460 188 001472 189 001505 190 001520 191 001533 192 001546 193 001561 194 001573 195 001606 196 001621 197 001634 198 001644 200 001672 201 001673 202 001706 203 001707 204 001722 205 001735 206 001753 207 001766 208 002001 209 002012 210 002016 211 002022 212 002024 213 002025 214 002040 215 002053 216 002056 217 002066 218 002070 219 002071 220 002072 221 002102 222 002103 223 002105 224 002106 225 002121 226 002134 227 002146 228 002155 229 002161 230 002162 231 002173 232 002206 233 002221 234 002255 235 002256 236 002271 238 002323 239 002324 241 002362 242 002375 244 002376 246 002431 248 002446 251 002476 254 002526 257 002556 260 002606 264 002664 266 002706 267 002711 273 002775 274 003001 277 003002 278 003011 280 003020 281 003050 283 003101 284 003111 285 003121 287 003125 289 003131 291 003132 294 003163 295 003210 297 003211 300 003212 301 003213 303 003252 305 003267 308 003270 315 003306 316 003335 317 003365 319 003367 320 003372 321 003376 322 003400 323 003406 324 003411 325 003413 327 003417 330 003432 332 003502 334 003505 335 003516 337 003517 341 003525 343 003532 348 003533 353 003544 354 003577 356 003633 357 003637 358 003641 362 003642 367 003644 368 003645 369 003672 371 003726 375 003727 381 003740 384 003777 385 004000 386 004007 388 004011 389 004015 390 004016 391 004027 392 004031 394 004036 395 004040 397 004074 399 004161 400 004220 401 004222 404 004225 407 004233 408 004236 409 004252 410 004264 412 004265 414 004327 416 004335 417 004336 419 004337 421 004366 423 004376 424 004410 426 004471 427 004474 429 004500 432 004501 444 004502 445 004565 448 004621 450 004631 451 004643 452 004647 453 004653 454 004655 455 004656 457 004660 458 004663 462 004671 463 004673 464 004705 465 004712 466 004714 468 004731 470 004760 471 004764 472 004767 473 005000 474 005006 475 005014 476 005015 478 005023 479 005031 529 005034 481 005035 487 005037 488 005043 489 005044 490 005057 491 005062 492 005071 493 005075 494 005120 495 005122 497 005154 499 005160 500 005171 501 005174 502 005266 504 005267 506 005273 507 005302 508 005305 509 005306 510 005317 511 005322 512 005345 513 005347 515 005401 517 005405 518 005416 519 005421 522 005476 523 005477 525 005503 526 005512 530 005513 532 005514 535 005522 577 005553 604 005556 544 005560 545 005561 547 005572 549 005574 552 005654 554 005656 557 005731 559 005733 560 005745 561 005751 562 005761 564 005766 566 005773 567 006003 568 006007 569 006017 571 006023 573 006027 575 006032 577 006034 578 006066 580 006074 582 006104 583 006105 584 006113 585 006114 586 006140 588 006150 589 006151 592 006157 593 006161 595 006205 596 006207 598 006227 601 006271 603 006276 604 006313 613 006543 615 006565 616 006577 618 006610 620 006617 623 006621 624 006630 626 006657 629 006660 630 006662 631 006671 635 006731 636 006734 637 006744 638 006745 639 006747 641 006775 643 007015 645 007041 647 007054 648 007101 649 007105 650 007114 651 007141 655 007145 658 007146 664 007154 665 007177 666 007202 671 007205 674 007213 675 007243 677 007254 678 007265 680 007326 683 007330 686 007336 687 007352 688 007365 689 007377 691 007411 694 007412 697 007420 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved