COMPILATION LISTING OF SEGMENT xforum_list_meetings_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 02/16/88 1414.3 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(85-01-10,Davids), approve(86-02-04,MCR7350), 12* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 13* Changed the argument processing to call the appropriate 14* xforum_user_profile$set entry with the correct argument. Also for 15* all arguments except force (fc) and no_force (nfc) to output a 16* warning indicating that the argument is now obsolete. The new 17* internal procedure arg_warning does this. Also removed the 18* pointer to the args structure from the calling sequence of the 19* xforum_process_args_ entry and replaced it with just a pointer to 20* the xforum command arg_list. Also removed the xforum_args include 21* file. 22* 23* 85-01-18 Davids: Corrected English in arg_warning message. 24* 2) change(87-04-03,LJAdams), approve(87-04-22,MCR7684), 25* audit(87-04-27,Blair), install(87-08-06,MR12.1-1065): 26* Changed meeting list rebuild msg. 27* END HISTORY COMMENTS */ 28 29 30 xforum_list_meetings_: procedure () options (variable); 31 32 /* 33* BEGIN DESCRIPTION 34* 35* function: 36* This routine checks the arguments that xforum was called with and builds 37* the xforum_meeting_list structure. 38* 39* xforum_list_meetings_: This entry should never be called. 40* 41* xforum_process_args_: The segment that the xforum_meeting_list structure 42* is based on a temp segment created via a call to get_temp_segment_. 43* The name of the "caller" used in the call is xforum_meeting_list so that 44* the segment which holds the meeting list can be identified in the 45* listing produced by the list_temp_segments command. The internal static 46* pointer static_xforum_meeting_list_ptr is used to hold a pointer to the 47* segment from one xforum invocation to another. force_mode is set by 48* the user via the force or no_force control args. force indicates that 49* the user wants to rebuild the meeting list even though one already 50* exists. If the user indicates that he wants to reuse an existing meeting 51* list the meeting_list_ok procedure is called to be sure that the 52* meeting list is still valid. There are two things that can go wrong 53* with a meeting list. First the users forum search rules can change. This 54* is what meeting_list_ok checks for. The second is that a new meeting can 55* be added to an existing directory, and existing meeting could be deleted 56* or an acl can change. This is NOT checked for. There does not appear to 57* be any way to do that without recording the contents of each directory. 58* If the meeting list is to be built each directory in the forum search 59* paths (the list of directories is obtained via a call to 60* search_paths_$get) is scaned via the internal proc scan_dir. Once all the 61* directories have been scaned and the list is completed it is sorted via 62* the internal proc sort_output. The spy segment is built in the same 63* manner as the meeting_list segment. Once built it is loaded with some 64* header info, i.e. name, date-time, arguments xforum was called with, 65* number of eligible, attended, and changed meetings. The spy segment 66* must be built before the meeting list segment since it is necessary to 67* record the users answer if the meeting list needs to be rebuilt. 68* 69* description: 70* process_args: This routine loops though the arguments that xforum was 71* called with. It also accumulates a string with all the arguments in 72* it for easy output into the spy structure. If an argument is found that 73* is not supported a message to that effect is output and the process put 74* to sleep for 4 seconds so that the user has time to read it. An invalid 75* argument will not abort the xforum invocation - this is made clear in the 76* message. 77* 78* scan_dir: This routine gets a list of all the branches matching the 79* star names **.*.control and **.*.forum for a given directory. 80* For each branch found check_forum is called to determine if it is a 81* forum meeting. 82* 83* check_forum: The first thing done is a call to match_select_name to be 84* sure that the meeting name does not yet appear in the meeting list. If it 85* does the process stops right there for the given meeting. Next 86* forum_$forum_info is called to determine if the given name is a forum 87* meeting. If a non-zero error code is returned it is assumed that it is 88* not a forum meeting. If a zero error code is returned it is assumed that 89* it is a meeting. The uid of the meeting is compared with the uid's of 90* all the meetings already in the meeting list. If the uid does not yet 91* appear in the meeting list then the meeting name and the info returned by 92* the call are added to the xforum_meeting_list. 93* 94* match_select_name: This procedure makes sure that each meeting in the 95* meeting list has a unique name. 96* 97* sort_output: This does a simple shell sort over long name on the meeting 98* list. This is done so that the meetings when listed in a dynamic menu 99* come out sorted. 100* 101* meeting_list_ok: This compares the current number of forum search paths 102* with the number when the meeting list was created. If they are different 103* it warns the user via command_query_$yes_no and asks the user if he 104* wants to rebuild the meeting list. Provided the number of paths are the 105* same it will then check each path. If the current search paths are the 106* same but in a different order this routine will assume that they are 107* different and again a query will be asked. The question asked in both 108* cases is the same. If the user indicates that he wants the meeting list 109* rebuilt a message to that effect will be output. 110* If the user indicates that he does not want the meeting list rebuilt 111* then the return value is the same as if no differences in the search 112* paths were found. The answer given by the user is recorded in the spy 113* structure. Each query has its own unique identification in the spy str. 114* 115* collect_spy_data: This is the same as every other spy_data. See 116* xforum_main_options. 117* 118* clean_up: releases allocated temp segns and frees up allocated storage. 119* 120* known bugs: 121* 122* notes: 123* 124* history: 125* 83-??-?? Deryk Barker: Written. 126* 127* 84-03-27 Davids: Modified scan_dir procedure so that after looking for 128* all version 1 forums (suffix = control) it will look for version 2 129* forums (suffix = forum). Also modifed check_forum procedure to take 130* as an argument the suffix of the forum, i.e. control or forum. Also 131* modified check_forum to set the new element forum_version in the 132* xforum_meeting_list structure. 133* 134* 84-03-28 Davids: Modified to set the forums (i).changed flag and 135* to increment the changed count only if the meeting has been changed 136* and the user is a participant (used to not check participation). 137* 138* 84-05-03 Davids: Changed the length of my_long_name and my_short_name 139* from 24 characters to 32 characters. Version 2 forum names can be 26 140* characters long (forum suffix) - and a little extra incase version 3 uses 141* a shorter suffix yet. 142* 143* 84-05-23 Davids: Changed sort of meetings in the xforum_meeting_list 144* structure to be by long_name instead of short_name, since menus are 145* displayed by long name. 146* 147* 84-06-04 Davids: Added code to create a spy segment in the pdir and to 148* record the user_name, date_time, arguments that xforum was invoked with 149* and the number of eligible, attending, and changed meetings. 150* 151* 84-06-07 Davids: Modified the get_select_name internal proc to take an 152* argument which is the suffix of the meeting, i.e. control or forum, 153* instead of just assuming control. Modified the call to get_select_name 154* to call with the argument of control and then to call again with the 155* argument of forum. This allows the user to specify either version 1 or 156* version 2 forum meeting in the xforum command line. 157* 158* 84-06-13 Davids: Modified so that the spy segment is created and inited 159* with 0's and blanks before process arguments is called. The actual 160* initialization of the user name, date, and number of meetings will take 161* place in the xforum module after the call to xforum_process_args_. 162* spy.args is set at the EGRESS label. This was changed from doing 163* everything right before the EGRESS label because there are conditions 164* where the initialization code was being skiped. 165* 166* 84-06-13 Davids: Moved the spy setting stuff to after the EGRESS label to 167* be sure that it is always set up correctly. It was right before the label 168* and was not being set up correctly in some cases. 169* 170* 84-06-14 Davids: Modified the star name to look for version 2 forum 171* meetings in the scan_dir procedure from **.forum to **.*.forum. The old 172* star name was matching on the name "forum" which is not correct. 173* 174* 84-07-26 Davids: Modified so that the meeting list segement is created in 175* the pdir with a name of xforum_meeting_list instead of just being a temp 176* segment. Xforum termination will not delete this segment so it will be 177* reused the next time the user invokes xforum. Meetings will not be 178* checked for changes if the segment already exists. Also removed all the 179* control arguments except multics_mode (mm) and menus. Added the control 180* arg force which will cause the code to re-initialize the meeting list. 181* This is needed because the user may have added a new search path or 182* meeting to an existing search path. Removed the now unused internal 183* procs: get_select_name, get_user_name, and get_mlist. 184* 185* 84-08-13 Davids: Added a short name of fc to force. Added the nim control 186* arg. 187* 188* 84-09-18 Davids: Removed code which allowed this to be used as a command. 189* The command allowed the user to build a meeting list before invoking 190* xforum proper. However it is no longer documented and not intended to be 191* part of xforum. Also removed a lot of unnecessary variable declarations 192* and assignments to variables that were never used - slopy previous 193* modifications where code was removed but initialization of variables 194* used in that removed code were not removed. 195* 196* 84-09-25 Davids: Modified so that the segments which hold the 197* xforum_meeting_list and spy structures use temporary segments instead 198* of a segment in the pdir with a known name. These temp segments are not 199* released when xforum exits. Pointers to these segments are kept in 200* internal static so that they can be referenced in succeediing invocations. 201* Also added the control arguments no_menus, no_multics_mode, nmm, 202* no_force, nfc, and im. Added the internal proc meeting_list_ok which is 203* called if the force_mode is not in effect, i.e. an existing meeting_list 204* is to be used. Moved the creation of the spy segment up to right before 205* the creation of the meeting_list segment. Added the collect_spy_data 206* internal proc to record what the user answered to the meeting list update 207* query. 208* 209* 84-10-02 Davids: Added the -escape_sequences, -esc, -no_escape_sequences, 210* -no_escape_sequences control arguments. Also added the output parameter 211* P_spy_ptr to the process_args_ entry point. This is needed because the 212* shift from a fixed name spy segment to a temp segment means that a 213* pointer to the segment has to be returned to xforum. 214* 215* 84-10-17 Davids: Moved the code that set the eligible, attending, 216* and changed elements of the spy structure to after the spot where 217* those values are determined. When the rest of the spy code was moved 218* this code was moved too, and it should have stayed put. 219* 220* 84-11-06 Davids: Auditing Changes 1) add a trailing underscore to the 221* module name; 2) Replace the term extension with the term suffix; 222* 3) Clean up some misspelling and bad wording in the header comments; 223* 4) Increased the length of the arg_list variable from 100 to 256 chars. 224* 5) replaced references to PUNT_FORUM with exit_check_forum. Also replaced 225* other multiple returns in check_forum procedure with goto 226* exit_check_forum. Other changes: 1) removed the xflsm name from the 227* module. This was a hold over from when the module could be used as a 228* command. 2) Cleaned up declarations. 229* END DESCRIPTION 230**/ 231 232 /* PARAMETERS */ 233 234 dcl P_arg_list_ptr ptr; 235 dcl P_caller char (*); 236 dcl P_spy_ptr ptr; 237 dcl P_code fixed bin (35); 238 239 /* EXTERNAL STATIC */ 240 241 /* ENTRIES */ 242 243 dcl com_err_ entry () options (variable); 244 dcl command_query_$yes_no entry () options (variable); 245 dcl cu_$arg_count_rel entry (fixed bin, ptr, fixed bin (35)); 246 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 247 dcl date_time_ entry (fixed bin (71), char (*)); 248 dcl forum_$forum_info entry (char (*), char (*), char (*), fixed bin (71), ptr, fixed bin (35)); 249 dcl get_system_free_area_ entry () returns (ptr); 250 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 251 dcl hcs_$star_dir_list_ entry (char (*), char (*), fixed bin (3), ptr, fixed bin, fixed bin, ptr, ptr, fixed bin (35)); 252 dcl ioa_ entry () options (variable); 253 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 254 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 255 dcl search_paths_$get entry (char (*), bit (36), char (*), ptr, ptr, fixed bin, ptr, fixed bin (35)); 256 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 257 dcl user_info_$whoami entry (char (*), char (*), char (*)); 258 dcl xforum_user_profile$set_menu_always entry (bit (1)) returns (bit (1)); 259 dcl xforum_user_profile$set_multics_mode entry (bit (1)) returns (bit (1)); 260 dcl xforum_user_profile$set_handle_interactive_messages entry (bit (1)) returns (bit (1)); 261 dcl xforum_user_profile$set_use_function_keys entry (bit (1)) returns (bit (1)); 262 263 /* CONDITIONS */ 264 265 dcl cleanup condition; 266 267 /* INTERNAL AUTOMATIC */ 268 269 dcl ME char (32); 270 dcl access_name char (32); 271 dcl access_time fixed bin (71); 272 dcl arg_count fixed bin; 273 dcl arg_idx fixed bin; 274 dcl arg_list char (256) varying; 275 dcl arg_list_ptr ptr; 276 dcl arg_lth fixed bin (21); 277 dcl arg_ptr ptr; 278 dcl code fixed bin (35); 279 dcl dir_idx fixed bin; 280 dcl explicit bit (1) aligned; 281 dcl force_mode bit (1); 282 dcl forum_directory char (168); 283 dcl obj_name_count fixed bin; 284 dcl obj_name_idx fixed bin; 285 dcl select_names_ptr ptr; 286 dcl system_area_ptr ptr; 287 dcl unusedb1 bit (1); 288 dcl 1 fi aligned like forum_info; 289 290 /* INTERNAL STATIC */ 291 292 dcl static_xforum_meeting_list_ptr ptr internal static init (null ()); 293 dcl static_spy_ptr ptr internal static init (null ()); 294 295 /* CONSTANTS */ 296 297 /* BUILTINS */ 298 299 dcl addr builtin; 300 dcl binary builtin; 301 dcl clock builtin; 302 dcl divide builtin; 303 dcl length builtin; 304 dcl null builtin; 305 dcl rtrim builtin; 306 dcl substr builtin; 307 dcl unspec builtin; 308 309 /* BASED */ 310 311 dcl arg character (arg_lth) based (arg_ptr) unal; 312 dcl 1 select_names aligned based (select_names_ptr), 313 2 no_names fixed bin, 314 2 pad bit (36) aligned, 315 2 array (0 refer (select_names.no_names)), 316 3 forum_names char (32) unaligned, 317 3 exclude bit (1) aligned, 318 3 star_name bit (1) aligned, 319 3 matched bit (1) aligned; 320 321 /* INCLUDE FILES */ 322 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 323 324 2 1 /* START OF: forum_info.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* Changed to version 2, speed up call by not calculating remove count. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 declare forum_info_ptr ptr; 2 13 2 14 declare 1 forum_info aligned based (forum_info_ptr), 2 15 2 version fixed bin, /* Must be 1 or 2 */ 2 16 2 forum_uid bit (36), 2 17 2 chairman unaligned, 2 18 3 username char (20), 2 19 3 project char (9), 2 20 3 pad char (3), 2 21 2 attendee_count fixed bin, 2 22 2 removal_count fixed bin, /* always 0 in version 2 */ 2 23 2 transaction_count fixed bin, 2 24 2 deletion_count fixed bin, 2 25 2 last_seen_trans_idx fixed bin, 2 26 2 last_time_changed fixed bin (71), 2 27 2 last_time_attended fixed bin (71), 2 28 2 changes_count fixed bin, 2 29 2 flags unaligned, 2 30 3 eligible bit (1), 2 31 3 mbz1 bit (1), 2 32 3 removed bit (1), 2 33 3 notify bit (1), 2 34 3 attending bit (1), 2 35 3 mbz2 bit (2), 2 36 3 read_only bit (1), 2 37 3 adjourned bit (1), 2 38 3 mbz3 bit (27); 2 39 2 40 declare forum_info_version_1 fixed bin static options (constant) initial (1), 2 41 forum_info_version_2 fixed bin static options (constant) initial (2); 2 42 2 43 /* END OF: forum_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 325 326 3 1 /* BEGIN INCLUDE FILE . . . sl_control_s.incl.pl1 */ 3 2 3 3 declare 1 sl_control_s unaligned based (addr (sl_control)), 3 4 2 af_pathname bit (1), /* "1"b => expand active functions */ 3 5 2 pad1 bit (1), /* Must be zero */ 3 6 2 key_ref_dir bit (1), /* "1"b => expand -referencing_dir keyword */ 3 7 2 key_work_dir bit (1), /* "1"b => expand -working_dir keyword */ 3 8 2 key_proc_dir bit (1), /* "1"b => expand -process_dir keyword */ 3 9 2 key_home_dir bit (1), /* "1"b => expand -home_dir keyword */ 3 10 2 pad2 bit (30); /* Must be zero */ 3 11 3 12 declare sl_control bit (36); 3 13 declare sl_control_default bit (36) internal static options (constant) initial ("101111"b); 3 14 3 15 /* END INCLUDE FILE . . . sl_control_s.incl.pl1 */ 327 328 4 1 /* BEGIN INCLUDE FILE . . . sl_info.incl.pl1 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(87-11-16,Lippard), approve(87-12-21,MCR7822), 4 7* audit(88-02-09,Blair), install(88-02-16,MR12.2-1023): 4 8* Modified to add INITIATED_SEGS type. 4 9* 2) change(87-11-19,Lippard), approve(87-12-21,MCR7822), 4 10* audit(88-02-09,Blair), install(88-02-16,MR12.2-1023): 4 11* Added uid to sl_info structure. 4 12* END HISTORY COMMENTS */ 4 13 4 14 4 15 declare 1 sl_info aligned based (sl_info_p), 4 16 2 version fixed binary, /* Must be 1 */ 4 17 2 num_paths fixed binary, /* Number of search paths */ 4 18 2 change_index_p pointer, /* Pointer to search list's update count */ 4 19 2 change_index fixed binary (71), /* This search list's update count */ 4 20 2 pad1 (6) bit (36), /* Must be zero */ 4 21 2 paths (sl_info_num_paths refer (sl_info.num_paths)), 4 22 3 type fixed binary, /* Type of search path */ 4 23 3 code fixed binary (35), /* Standard status code of search path */ 4 24 3 uid bit (36), /* Unique ID */ 4 25 3 pathname char (168) unaligned; /* Search pathname */ 4 26 4 27 declare sl_info_num_paths fixed binary; 4 28 declare sl_info_p pointer; 4 29 declare sl_info_version_1 fixed binary internal static options (constant) initial (1); 4 30 4 31 /* Keyword Types */ 4 32 4 33 declare ABSOLUTE_PATH fixed binary internal static options (constant) initial (0); 4 34 declare UNEXPANDED_PATH fixed binary internal static options (constant) initial (1); 4 35 declare REFERENCING_DIR fixed binary internal static options (constant) initial (3); 4 36 declare WORKING_DIR fixed binary internal static options (constant) initial (4); 4 37 declare PROCESS_DIR fixed binary internal static options (constant) initial (5); 4 38 declare HOME_DIR fixed binary internal static options (constant) initial (6); 4 39 declare INITIATED_SEGS fixed binary internal static options (constant) initial (7); 4 40 4 41 /* END INCLUDE FILE . . . sl_info.incl.pl1 */ 329 330 5 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 5 2 5 3 /* This include file contains structures for the hcs_$star_, 5 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 5 5* 5 6* Written 23 October 1978 by Monte Davidoff. 5 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 5 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 5 9**/ 5 10 5 11 /* automatic */ 5 12 5 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 5 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 5 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 5 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 5 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 5 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 5 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 5 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 5 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 5 22 5 23 /* based */ 5 24 5 25 /* hcs_$star_ entry structure */ 5 26 5 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 5 28 2 type fixed binary (2) unsigned unaligned, 5 29 /* storage system type */ 5 30 2 nnames fixed binary (16) unsigned unaligned, 5 31 /* number of names of entry that match star_name */ 5 32 2 nindex fixed binary (18) unsigned unaligned; 5 33 /* index of first name in star_names */ 5 34 5 35 /* hcs_$star_ name structure */ 5 36 5 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 5 38 5 39 /* hcs_$star_list_ branch structure */ 5 40 5 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 5 42 2 type fixed binary (2) unsigned unaligned, 5 43 /* storage system type */ 5 44 2 nnames fixed binary (16) unsigned unaligned, 5 45 /* number of names of entry that match star_name */ 5 46 2 nindex fixed binary (18) unsigned unaligned, 5 47 /* index of first name in star_list_names */ 5 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 5 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 5 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 5 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 5 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 5 53 2 pad bit (7) unaligned, 5 54 2 records fixed binary (18) unsigned unaligned; 5 55 /* records used by branch */ 5 56 5 57 /* hcs_$star_dir_list_ branch structure */ 5 58 5 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 5 60 2 type fixed binary (2) unsigned unaligned, 5 61 /* storage system type */ 5 62 2 nnames fixed binary (16) unsigned unaligned, 5 63 /* number of names of entry that match star_name */ 5 64 2 nindex fixed binary (18) unsigned unaligned, 5 65 /* index of first name in star_list_names */ 5 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 5 67 2 pad bit (36) unaligned, 5 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 5 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 5 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 5 71 2 bit_count fixed binary (24) unaligned; 5 72 /* bit count of the branch */ 5 73 5 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 5 75 5 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 5 77 2 type fixed binary (2) unsigned unaligned, 5 78 /* storage system type */ 5 79 2 nnames fixed binary (16) unsigned unaligned, 5 80 /* number of names of entry that match star_name */ 5 81 2 nindex fixed binary (18) unsigned unaligned, 5 82 /* index of first name in star_list_names */ 5 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 5 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 5 85 2 pathname_len fixed binary (18) unsigned unaligned, 5 86 /* length of the pathname of the link */ 5 87 2 pathname_index fixed binary (18) unsigned unaligned; 5 88 /* index of start of pathname in star_list_names */ 5 89 5 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 5 91 5 92 declare star_list_names char (32) based (star_list_names_ptr) 5 93 dimension (star_links (star_branch_count + star_link_count).nindex 5 94 + star_links (star_branch_count + star_link_count).nnames 5 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 5 96 * binary ( 5 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 5 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 5 99 5 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 5 101 5 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 5 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 5 104 5 105 /* internal static */ 5 106 5 107 /* star_select_sw values */ 5 108 5 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 5 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 5 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 5 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 5 113 fixed binary (3) internal static options (constant) initial (5); 5 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 5 115 fixed binary (3) internal static options (constant) initial (7); 5 116 5 117 /* storage system types */ 5 118 5 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 5 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 5 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 5 122 5 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 331 332 6 1 /* START OF: xforum_meeting_list.incl.pl1 * * * * * */ 6 2 6 3 /* 6 4* 84-03-27 Davids: added the forum_version element 6 5* 6 6* 84-05-03 Davids: Changed the length of long_name and short_name from 6 7* 24 characters to 32 characters. Version 2 forum names can be 26 characters 6 8* long (forum suffix) - and a little extra incase version 3 uses a shorter 6 9* suffix yet. 6 10* 6 11* 84-09-24 Davids: Added the date_time, npath, and path elements. 6 12**/ 6 13 6 14 declare 1 xforum_meeting_list aligned 6 15 based (xforum_meeting_list_ptr), 6 16 2 date_time fixed bin (71), 6 17 2 no_selected fixed bin, 6 18 2 no_participant fixed bin, 6 19 2 no_changed fixed bin, 6 20 2 current_selected fixed bin, 6 21 2 current_participant fixed bin, 6 22 2 current_changed fixed bin, 6 23 2 forums (0 refer 6 24 (xforum_meeting_list.no_selected)), 6 25 3 long_name char (32) unaligned, 6 26 3 short_name char (32) unaligned, 6 27 3 directory char (168) unaligned, 6 28 3 forum_version fixed bin, 6 29 3 chairman char (32) unaligned, 6 30 3 uid bit (36) aligned, 6 31 3 flags unaligned, 6 32 4 eligible bit (1), 6 33 4 removed bit (1), 6 34 4 notify bit (1), 6 35 4 participant bit (1), 6 36 4 two_names bit (1), 6 37 4 read_only bit (1), 6 38 4 attended bit (1), 6 39 4 changed bit (1), 6 40 4 been_to bit (1), 6 41 4 mbz bit (27), 6 42 2 npaths fixed bin, 6 43 2 paths (0 refer (xforum_meeting_list.npaths)) 6 44 char (168) varying; 6 45 6 46 /* END OF: xforum_meeting_list.incl.pl1 * * * * * */ 333 334 7 1 /* START OF: xforum_ptr_struct_.incl.pl1 * * * * * */ 7 2 7 3 declare 1 xforum_ptr_struct_ external static, 7 4 2 xforum_meeting_list_ptr ptr, 7 5 2 xforum_meeting_info_ptr ptr, 7 6 2 xforum_trans_array_ptr ptr, 7 7 2 xforum_system_area_ptr ptr; 7 8 7 9 /* END OF: xforum_ptr_struct_.incl.pl1 * * * * * */ 335 336 8 1 /* BEGIN INCLUDE FILE xforum_spy 84-06-19 NSDavids */ 8 2 8 3 8 4 8 5 /****^ HISTORY COMMENTS: 8 6* 1) change(85-01-01,Davids), approve(85-01-01,MCR7350), 8 7* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 8 8* Modified to include personalization and subject selection. 8 9* END HISTORY COMMENTS */ 8 10 8 11 8 12 dcl 01 spy based (spy_ptr), 8 13 02 version char (8), 8 14 02 user_name char (32), 8 15 02 date_time char (32), 8 16 02 args char (80), 8 17 02 eligible fixed bin, 8 18 02 attending fixed bin, 8 19 02 changed fixed bin, 8 20 02 count fixed bin, 8 21 02 choices (0 refer (count)), 8 22 03 at fixed bin, 8 23 03 choice char (10); 8 24 8 25 8 26 dcl spy_ptr ptr; 8 27 dcl SPY_VERSION_1 char (8) init ("spy_0001"); 8 28 8 29 dcl SPY_AT_1 fixed bin init (1) internal static options (constant); 8 30 /* At Executive Forum Main menu */ 8 31 dcl SPY_AT_2 fixed bin init (2) internal static options (constant); 8 32 /* Requesting Help */ 8 33 dcl SPY_AT_3 fixed bin init (3) internal static options (constant); 8 34 /* At General Help menu */ 8 35 dcl SPY_AT_4 fixed bin init (4) internal static options (constant); 8 36 /* At query for a meeting name to goto */ 8 37 dcl SPY_AT_5 fixed bin init (5) internal static options (constant); 8 38 /* At menu of meeting names */ 8 39 dcl SPY_AT_6 fixed bin init (6) internal static options (constant); 8 40 /* At query for a meeting name to resign from */ 8 41 dcl SPY_AT_7 fixed bin init (7) internal static options (constant); 8 42 /* At Attending Meeting menu */ 8 43 dcl SPY_AT_8 fixed bin init (8) internal static options (constant); 8 44 /* At replying to a transaction */ 8 45 dcl SPY_AT_9 fixed bin init (9) internal static options (constant); 8 46 /* At entering a new transaction */ 8 47 dcl SPY_AT_10 fixed bin init (10) internal static options (constant); 8 48 /* At query for a transaction specifier */ 8 49 dcl SPY_AT_11 fixed bin init (11) internal static options (constant); 8 50 /* At query to check for changed meetings */ 8 51 dcl SPY_AT_12 fixed bin init (12) internal static options (constant); 8 52 /* At Getting Started menu */ 8 53 dcl SPY_AT_13 fixed bin init (13) internal static options (constant); 8 54 /* Meeting list update query, change in number of search paths */ 8 55 dcl SPY_AT_14 fixed bin init (14) internal static options (constant); 8 56 /* Meeting list update query, change in search paths listed */ 8 57 dcl SPY_AT_15 fixed bin init (15) internal static options (constant); 8 58 /* Copy Comments file name query */ 8 59 dcl SPY_AT_16 fixed bin init (16) internal static options (constant); 8 60 /* At Personalization menu */ 8 61 dcl SPY_AT_17 fixed bin init (17) internal static options (constant); 8 62 /* Personalizing an item prompt */ 8 63 dcl SPY_AT_18 fixed bin init (18) internal static options (constant); 8 64 /* string search prompt for comment selection */ 8 65 dcl SPY_AT_19 fixed bin init (19) internal static options (constant); 8 66 /* subject selection */ 8 67 8 68 dcl SPY_LOCATION (19) char (20) varying init ( 8 69 "XForum Main menu", 8 70 "Requesting Help", 8 71 "General Help menu", 8 72 "Meeting to goto?", 8 73 "Meeting names menu", 8 74 "Meeting to resign?", 8 75 "Meeting menu", 8 76 "Repling", 8 77 "Talking", 8 78 "Trans. spec?", 8 79 "Check changed mtgs", 8 80 "Getting Started", 8 81 "List update, num", 8 82 "List update, list", 8 83 "Copy to file name", 8 84 "Personalizing menu", 8 85 "Personalizing prompt", 8 86 "String search prompt", 8 87 "Subject selection") internal static options (constant); 8 88 8 89 /* END INCLUDE FILE xforum_spy */ 337 338 339 xforum_process_args_: entry (P_arg_list_ptr, P_caller, P_spy_ptr, P_code); 340 341 P_code = 0; 342 arg_list_ptr = P_arg_list_ptr; 343 ME = P_caller; 344 345 COMMON: 346 explicit, force_mode = "0"b; 347 348 select_names_ptr, sl_info_p, star_list_branch_ptr, 349 star_list_names_ptr = null (); 350 351 on cleanup call clean_up (); 352 353 call get_temp_segment_ (ME, select_names_ptr, code); 354 355 if code ^= 0 356 then do; 357 P_code = code; 358 return; 359 end; 360 361 select_names.no_names = 0; 362 363 call process_args; /* won't return if error */ 364 365 access_name = ""; 366 access_time = clock (); 367 368 system_area_ptr = get_system_free_area_ (); 369 370 call search_paths_$get ("forum", sl_control_default, "", null (), 371 system_area_ptr, sl_info_version_1, sl_info_p, code); 372 373 if code ^= 0 374 then do; 375 P_code = code; 376 call com_err_ (code, ME, "Getting ""forum"" search list."); 377 return; 378 end; 379 380 if static_spy_ptr = null () 381 then call get_temp_segment_ ("xforum_spy", static_spy_ptr, code); 382 if code ^= 0 383 then do; 384 call com_err_ (code, "xforum", "Could not make spy segment"); 385 P_code = code; 386 goto EGRESS; 387 end; 388 spy_ptr = static_spy_ptr; 389 P_spy_ptr = static_spy_ptr; 390 391 spy.version = SPY_VERSION_1; 392 call user_info_$whoami (spy.user_name, "", ""); 393 call date_time_ (clock (), spy.date_time); 394 spy.args = arg_list; 395 spy.count = 0; 396 397 if static_xforum_meeting_list_ptr = null () 398 then do; 399 call get_temp_segment_ ("xforum_meeting_list", static_xforum_meeting_list_ptr, code); 400 force_mode = "1"b; /* no need to check meeting list - we just created it */ 401 end; 402 if code ^= 0 403 then do; 404 P_code = code; 405 call com_err_ (code, ME, "creating xforum meeting list segment"); 406 goto EGRESS; 407 end; 408 xforum_meeting_list_ptr = static_xforum_meeting_list_ptr; 409 410 if ^force_mode 411 then do; 412 if meeting_list_ok (xforum_meeting_list_ptr, sl_info_p) 413 then goto EGRESS; 414 end; 415 416 no_selected, no_participant, no_changed, current_selected, 417 current_participant, current_changed = 0; 418 /* start with a clean slate */ 419 420 do dir_idx = 1 to sl_info_p -> sl_info.num_paths; 421 422 if sl_info.paths (dir_idx).code = 0 then do; 423 forum_directory = sl_info.paths (dir_idx).pathname; 424 call scan_dir (); 425 end; 426 end; 427 428 spy.eligible = no_selected; 429 spy.attending = no_participant; 430 spy.changed = no_changed; 431 432 call sort_output (); 433 434 xforum_meeting_list.npaths = sl_info_p -> sl_info.num_paths; 435 do dir_idx = 1 to sl_info_p -> sl_info.num_paths; 436 xforum_meeting_list.paths (dir_idx) = sl_info.paths (dir_idx).pathname; 437 end; 438 439 xforum_meeting_list.date_time = clock (); 440 441 EGRESS: 442 call clean_up (); 443 444 return; 445 446 /* * * * * * * * * * * * * * * * * * */ 447 /* */ 448 /* This procedure check the arguments and their */ 449 /* consistency */ 450 /* */ 451 /* * * * * * * * * * * * * * * * * * */ 452 453 process_args: 454 proc; 455 456 call cu_$arg_count_rel (arg_count, arg_list_ptr, code); 457 if code ^= 0 458 then do; 459 P_code = code; 460 call com_err_ (code, ME); 461 goto EGRESS; 462 end; 463 464 arg_list = ""; 465 do arg_idx = 1 to arg_count; 466 467 call cu_$arg_ptr_rel (arg_idx, arg_ptr, arg_lth, (0), 468 arg_list_ptr); 469 470 arg_list = arg_list || arg || " "; 471 472 if arg = "-menus" 473 then do; 474 call arg_warning (arg); 475 unusedb1 = xforum_user_profile$set_menu_always ("1"b); 476 end; 477 else 478 if arg = "-no_menus" 479 then do; 480 call arg_warning (arg); 481 unusedb1 = xforum_user_profile$set_menu_always ("0"b); 482 end; 483 else 484 if (arg = "-multics_mode" | arg = "-mm") 485 then do; 486 call arg_warning (arg); 487 unusedb1 = xforum_user_profile$set_multics_mode ("1"b); 488 end; 489 else 490 if (arg = "-no_multics_mode" | arg = "-nmm") 491 then do; 492 call arg_warning (arg); 493 unusedb1 = xforum_user_profile$set_multics_mode ("0"b); 494 end; 495 else 496 if (arg = "-nim" | arg = "-no_interactive_messages") 497 then do; 498 call arg_warning (arg); 499 unusedb1 = xforum_user_profile$set_handle_interactive_messages ("0"b); 500 end; 501 else 502 if (arg = "-im" | arg = "-interactive_messages") 503 then do; 504 call arg_warning (arg); 505 unusedb1 = xforum_user_profile$set_handle_interactive_messages ("1"b); 506 end; 507 else 508 if (arg = "-esc" | arg = "-escape_sequences") 509 then do; 510 call arg_warning (arg); 511 unusedb1 = xforum_user_profile$set_use_function_keys ("0"b); 512 end; 513 else 514 if (arg = "-nesc" | arg = "-no_escape_sequences") 515 then do; 516 call arg_warning (arg); 517 unusedb1 = xforum_user_profile$set_use_function_keys ("1"b); 518 end; 519 else if (arg = "-force" | arg = "-fc") 520 then force_mode = "1"b; 521 else if (arg = "-no_force" | arg = "-nfc") 522 then force_mode = "0"b; 523 else do; 524 call com_err_ (0, ME, "^a is not a supported argument, continuing setup.", arg); 525 call timer_manager_$sleep (4, "11"b); 526 end; 527 end; 528 529 end process_args; 530 531 arg_warning: proc (aw_arg); 532 533 /* PARAMETERS */ 534 535 dcl aw_arg char (*); 536 537 538 call ioa_ ("The control argument ""^a"" is now obsolete.", aw_arg); 539 call ioa_ (" It will continue to be supported in the MR12 release."); 540 call ioa_ (" The Personalize Executive Forum menu can be used to set this option."); 541 call ioa_ ("Continuing setup.^/"); 542 543 call timer_manager_$sleep (4, "11"b); 544 545 return; 546 547 end arg_warning; 548 549 scan_dir: procedure (); 550 551 declare object_idx fixed bin; 552 553 star_select_sw = star_ALL_ENTRIES; 554 555 call hcs_$star_dir_list_ (forum_directory, "**.*.control", 556 star_select_sw, system_area_ptr, star_branch_count, 557 star_link_count, star_list_branch_ptr, star_list_names_ptr, 558 code); 559 if code = 0 then 560 do object_idx = 1 to star_branch_count + star_link_count; 561 obj_name_idx = star_dir_list_branch.nindex (object_idx); 562 obj_name_count = star_dir_list_branch.nnames (object_idx); 563 call check_forum (".control"); 564 end; 565 566 /* Version 2 forums are directories with names of .forum */ 567 568 call hcs_$star_dir_list_ (forum_directory, "**.*.forum", 569 star_select_sw, system_area_ptr, star_branch_count, 570 star_link_count, star_list_branch_ptr, star_list_names_ptr, 571 code); 572 if code = 0 then 573 do object_idx = 1 to star_branch_count + star_link_count; 574 obj_name_idx = star_dir_list_branch.nindex (object_idx); 575 obj_name_count = star_dir_list_branch.nnames (object_idx); 576 call check_forum (".forum"); 577 end; 578 579 return; 580 581 end scan_dir; 582 583 check_forum: procedure (ck_suffix); 584 585 dcl ck_suffix char (*); 586 587 declare my_long_name char (32) varying, 588 my_short_name char (32) varying, 589 forum_idx fixed bin; 590 591 explicit = "0"b; 592 if select_names.no_names > 0 then 593 if ^match_select_name () then 594 goto exit_check_forum; 595 596 my_long_name = 597 substr (star_list_names (obj_name_idx), 1, 598 length (rtrim (star_list_names (obj_name_idx))) 599 - length (ck_suffix)); 600 601 if obj_name_count < 2 then 602 my_short_name = ""; 603 else my_short_name = 604 substr (star_list_names (obj_name_idx + 1), 1, 605 length (rtrim (star_list_names (obj_name_idx + 1))) 606 - length (ck_suffix)); 607 608 fi.version = forum_info_version_1; 609 call forum_$forum_info (forum_directory, 610 star_list_names (obj_name_idx), access_name, access_time, 611 addr (fi), code); 612 if code ^= 0 613 then goto exit_check_forum; 614 615 do forum_idx = 1 to no_selected; 616 if fi.forum_uid = forums (forum_idx).uid then 617 goto exit_check_forum; 618 end; 619 620 ADD_FORUM: 621 no_selected = no_selected + 1; 622 623 forums (no_selected).long_name = my_long_name; 624 forums (no_selected).directory = forum_directory; 625 if ck_suffix = ".forum" 626 then forums (no_selected).forum_version = 2; 627 else forums (no_selected).forum_version = 1; 628 forums (no_selected).uid = fi.forum_uid; 629 unspec (forums (no_selected).flags) = ""b; 630 /* all flags off */ 631 forums (no_selected).eligible = fi.eligible; 632 forums (no_selected).removed = fi.removed; 633 forums (no_selected).notify = fi.notify; 634 forums (no_selected).read_only = fi.read_only; 635 forums (no_selected).attended = (fi.last_time_attended ^= 0); 636 forums (no_selected).participant = 637 forums (no_selected).attended & ^fi.removed; 638 if forums (no_selected).participant then 639 no_participant = no_participant + 1; 640 641 if my_short_name = "" then do; 642 forums (no_selected).short_name = my_long_name; 643 forums (no_selected).two_names = "0"b; 644 end; 645 else do; 646 forums (no_selected).short_name = my_short_name; 647 forums (no_selected).two_names = "1"b; 648 end; 649 650 forums (no_selected).chairman = 651 rtrim (fi.chairman.username) || "." || fi.chairman.project; 652 653 654 if (fi.changes_count > 0) & forums (no_selected).participant 655 then do; 656 no_changed = no_changed + 1; 657 forums (no_selected).changed = "1"b; 658 end; 659 660 661 exit_check_forum: 662 return; 663 664 end check_forum; 665 666 match_select_name: 667 procedure () returns (bit (1) aligned); 668 669 declare accepting bit (1) aligned, 670 match bit (1) aligned, 671 name_idx fixed bin, 672 star_idx fixed bin; 673 674 accepting = exclude (1); 675 676 do name_idx = 1 to select_names.no_names; 677 678 if accepting = select_names (name_idx).exclude then do; 679 match = "0"b; 680 do star_idx = obj_name_idx 681 to obj_name_idx + obj_name_count - 1 while (^match); 682 683 if star_name (name_idx) then do; 684 call match_star_name_ ( 685 star_list_names (star_idx), 686 forum_names (name_idx), code); 687 if code = 0 then 688 match = "1"b; 689 end; 690 else if forum_names (name_idx) 691 = star_list_names (star_idx) then 692 explicit, match = "1"b; 693 matched (name_idx) = matched (name_idx) | match; 694 end; 695 696 if match then 697 accepting = ^exclude (name_idx); 698 end; 699 end; 700 701 return (accepting); 702 703 end match_select_name; 704 705 /* The following routine is a simple shell sort by long_name. */ 706 707 sort_output: 708 procedure (); 709 710 dcl (i, k, l) fixed bin; 711 dcl 1 t like xforum_meeting_list.forums; 712 713 k, l = no_selected; 714 do while (k <= l); 715 l = -1; 716 do i = 2 to k; 717 l = i - 1; 718 if forums (l).long_name > forums (i).long_name then do; 719 t = forums (l); 720 forums (l) = forums (i); 721 forums (i) = t; 722 k = l; 723 end; 724 end; 725 end; 726 727 return; 728 729 end sort_output; 730 731 meeting_list_ok: proc (mlo_xforum_meeting_list_ptr, mlo_sl_info_p) returns (bit (1)); 732 733 /* PARAMETERS */ 734 735 dcl mlo_xforum_meeting_list_ptr ptr; 736 dcl mlo_sl_info_p ptr; 737 738 /* AUTOMATIC */ 739 740 dcl mlo_ans_yes bit (1); 741 dcl mlo_i fixed bin; 742 dcl mlo_meeting_list_ok bit (1); 743 dcl mlo_same bit (1); 744 dcl mlo_search_paths_str_ptr ptr; 745 746 /* BASED */ 747 748 dcl 01 mlo_search_paths_str based (mlo_search_paths_str_ptr), 749 02 npaths fixed bin, 750 02 paths (npaths) char (168) varying; 751 752 mlo_meeting_list_ok = "1"b; 753 754 xforum_meeting_list_ptr = mlo_xforum_meeting_list_ptr; 755 sl_info_p = mlo_sl_info_p; 756 757 mlo_search_paths_str_ptr = addr (xforum_meeting_list.npaths); 758 if mlo_search_paths_str.npaths ^= sl_info.num_paths 759 then do; 760 call command_query_$yes_no (mlo_ans_yes, 0, "", 761 "Your Forum search paths are the list of directories which are seached for^/" || 762 "forum meetings. The forum meetings found are saved in a meeting list.^/" || 763 "This list of directories has been changed since the meeting list was^/" || 764 "created. If you do not update your meeting list it is possible that^/" || 765 "meetings which you could attend will not be listed.^/^/" || 766 "Your forum search paths have changed.^/" || 767 " Do you want to update your meeting list to reflect those changes? ", 768 "Your forum search paths have changed.^/" || 769 " Do you want to update your meeting list to reflect those changes? "); 770 if mlo_ans_yes 771 then do; 772 mlo_meeting_list_ok = "0"b; 773 call collect_spy_data (SPY_AT_13, "yes"); 774 end; 775 else call collect_spy_data (SPY_AT_13, "no"); 776 goto exit_meeting_list_ok; 777 end; 778 779 mlo_same = "1"b; 780 do mlo_i = 1 to mlo_search_paths_str.npaths while (mlo_same); 781 if mlo_search_paths_str.paths (mlo_i) ^= sl_info.paths (mlo_i).pathname 782 then mlo_same = "0"b; 783 end; 784 785 if ^mlo_same 786 then do; 787 call command_query_$yes_no (mlo_ans_yes, 0, "", 788 "Your Forum search paths are the list of directories which are seached for^/" || 789 "forum meetings. The forum meetings found are saved in a meeting list.^/" || 790 "This list of directories has been changed since the meeting list was^/" || 791 "created. If you do not update your meeting list it is possible that^/" || 792 "meetings which you could attend will not be listed.^/^/" || 793 "Your forum search paths have changed.^/" || 794 " Do you want to update your meeting list to reflect those changes? ", 795 "Your forum search paths have changed.^/" || 796 " Do you want to update your meeting list to reflect those changes? "); 797 if mlo_ans_yes 798 then do; 799 mlo_meeting_list_ok = "0"b; 800 call collect_spy_data (SPY_AT_14, "yes"); 801 end; 802 else call collect_spy_data (SPY_AT_14, "no"); 803 goto exit_meeting_list_ok; 804 end; 805 806 exit_meeting_list_ok: 807 808 if ^mlo_meeting_list_ok 809 then call ioa_ ("^/Your meeting list is being rebuilt. Please wait for menu to be displayed.^/"); 810 811 return (mlo_meeting_list_ok); 812 813 end meeting_list_ok; 814 815 collect_spy_data: proc (csd_where, csd_response); 816 817 /* PARAMETERS */ 818 819 dcl csd_where fixed bin; /* (input) */ 820 dcl csd_response char (*); /* (input) */ 821 822 spy.count = spy.count + 1; 823 spy.choices (spy.count).at = csd_where; 824 spy.choices (spy.count).choice = csd_response; 825 826 return; 827 828 end collect_spy_data; 829 830 clean_up: 831 procedure (); 832 833 if select_names_ptr ^= null () then 834 call release_temp_segment_ (ME, select_names_ptr, (0)); 835 836 if star_list_branch_ptr ^= null () then do; 837 if star_list_names_ptr ^= null () then 838 free star_list_names; 839 free star_dir_list_branch; 840 end; 841 842 if sl_info_p ^= null () then 843 free sl_info; 844 845 return; 846 847 end clean_up; 848 849 end xforum_list_meetings_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/16/88 1411.9 xforum_list_meetings_.pl1 >spec>install>MR12.2-1023>xforum_list_meetings_.pl1 323 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 325 2 08/16/86 1538.0 forum_info.incl.pl1 >ldd>include>forum_info.incl.pl1 327 3 01/09/79 1617.9 sl_control_s.incl.pl1 >ldd>include>sl_control_s.incl.pl1 329 4 02/16/88 1407.4 sl_info.incl.pl1 >spec>install>MR12.2-1023>sl_info.incl.pl1 331 5 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.incl.pl1 333 6 12/03/84 1241.5 xforum_meeting_list.incl.pl1 >ldd>include>xforum_meeting_list.incl.pl1 335 7 12/03/84 1241.6 xforum_ptr_struct_.incl.pl1 >ldd>include>xforum_ptr_struct_.incl.pl1 337 8 04/25/86 0859.6 xforum_spy.incl.pl1 >ldd>include>xforum_spy.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. ME 000106 automatic char(32) unaligned dcl 269 set ref 343* 353* 376* 405* 460* 524* 833* P_arg_list_ptr parameter pointer dcl 234 ref 339 342 P_caller parameter char unaligned dcl 235 ref 339 343 P_code parameter fixed bin(35,0) dcl 237 set ref 339 341* 357* 375* 385* 404* 459* P_spy_ptr parameter pointer dcl 236 set ref 339 389* SPY_AT_13 000001 constant fixed bin(17,0) initial dcl 8-53 set ref 773* 775* SPY_AT_14 000000 constant fixed bin(17,0) initial dcl 8-55 set ref 800* 802* SPY_VERSION_1 000374 automatic char(8) initial unaligned dcl 8-27 set ref 391 8-27* accepting 000470 automatic bit(1) dcl 669 set ref 674* 678 696* 701 access_name 000116 automatic char(32) unaligned dcl 270 set ref 365* 609* access_time 000126 automatic fixed bin(71,0) dcl 271 set ref 366* 609* addr builtin function dcl 299 ref 609 609 757 arg based char unaligned dcl 311 set ref 470 472 474* 477 480* 483 483 486* 489 489 492* 495 495 498* 501 501 504* 507 507 510* 513 513 516* 519 519 521 521 524* arg_count 000130 automatic fixed bin(17,0) dcl 272 set ref 456* 465 arg_idx 000131 automatic fixed bin(17,0) dcl 273 set ref 465* 467* arg_list 000132 automatic varying char(256) dcl 274 set ref 394 464* 470* 470 arg_list_ptr 000234 automatic pointer dcl 275 set ref 342* 456* 467* arg_lth 000236 automatic fixed bin(21,0) dcl 276 set ref 467* 470 472 474 474 477 480 480 483 483 486 486 489 489 492 492 495 495 498 498 501 501 504 504 507 507 510 510 513 513 516 516 519 519 521 521 524 524 arg_ptr 000240 automatic pointer dcl 277 set ref 467* 470 472 474 477 480 483 483 486 489 489 492 495 495 498 501 501 504 507 507 510 513 513 516 519 519 521 521 524 args 22 based char(80) level 2 packed unaligned dcl 8-12 set ref 394* array 2 based structure array level 2 dcl 312 at 52 based fixed bin(17,0) array level 3 dcl 8-12 set ref 823* attended 114(06) based bit(1) array level 4 packed unaligned dcl 6-14 set ref 635* 636 attending 47 based fixed bin(17,0) level 2 dcl 8-12 set ref 429* aw_arg parameter char unaligned dcl 535 set ref 531 538* binary builtin function dcl 300 ref 837 chairman 2 000330 automatic structure level 2 in structure "fi" packed unaligned dcl 288 in procedure "xforum_list_meetings_" chairman 103 based char(32) array level 3 in structure "xforum_meeting_list" packed unaligned dcl 6-14 in procedure "xforum_list_meetings_" set ref 650* changed 114(07) based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 6-14 in procedure "xforum_list_meetings_" set ref 657* changed 50 based fixed bin(17,0) level 2 in structure "spy" dcl 8-12 in procedure "xforum_list_meetings_" set ref 430* changes_count 24 000330 automatic fixed bin(17,0) level 2 dcl 288 set ref 654 choice 53 based char(10) array level 3 packed unaligned dcl 8-12 set ref 824* choices 52 based structure array level 2 unaligned dcl 8-12 ck_suffix parameter char unaligned dcl 585 ref 583 596 603 625 cleanup 000100 stack reference condition dcl 265 ref 351 clock builtin function dcl 301 ref 366 393 393 439 code 000242 automatic fixed bin(35,0) dcl 278 in procedure "xforum_list_meetings_" set ref 353* 355 357 370* 373 375 376* 380* 382 384* 385 399* 402 404 405* 456* 457 459 460* 555* 559 568* 572 609* 612 684* 687 code 15 based fixed bin(35,0) array level 3 in structure "sl_info" dcl 4-15 in procedure "xforum_list_meetings_" ref 422 com_err_ 000014 constant entry external dcl 243 ref 376 384 405 460 524 command_query_$yes_no 000016 constant entry external dcl 244 ref 760 787 count 51 based fixed bin(17,0) level 2 dcl 8-12 set ref 395* 822* 822 823 824 csd_response parameter char unaligned dcl 820 ref 815 824 csd_where parameter fixed bin(17,0) dcl 819 ref 815 823 cu_$arg_count_rel 000020 constant entry external dcl 245 ref 456 cu_$arg_ptr_rel 000022 constant entry external dcl 246 ref 467 current_changed 7 based fixed bin(17,0) level 2 dcl 6-14 set ref 416* current_participant 6 based fixed bin(17,0) level 2 dcl 6-14 set ref 416* current_selected 5 based fixed bin(17,0) level 2 dcl 6-14 set ref 416* date_time based fixed bin(71,0) level 2 in structure "xforum_meeting_list" dcl 6-14 in procedure "xforum_list_meetings_" set ref 439* date_time 12 based char(32) level 2 in structure "spy" packed unaligned dcl 8-12 in procedure "xforum_list_meetings_" set ref 393* date_time_ 000024 constant entry external dcl 247 ref 393 dir_idx 000243 automatic fixed bin(17,0) dcl 279 set ref 420* 422 423* 435* 436 436* directory 30 based char(168) array level 3 packed unaligned dcl 6-14 set ref 624* divide builtin function dcl 302 ref 837 eligible 25 000330 automatic bit(1) level 3 in structure "fi" packed unaligned dcl 288 in procedure "xforum_list_meetings_" set ref 631 eligible 46 based fixed bin(17,0) level 2 in structure "spy" dcl 8-12 in procedure "xforum_list_meetings_" set ref 428* eligible 114 based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 6-14 in procedure "xforum_list_meetings_" set ref 631* exclude 12 based bit(1) array level 3 dcl 312 ref 674 678 696 explicit 000244 automatic bit(1) dcl 280 set ref 345* 591* 690* fi 000330 automatic structure level 1 dcl 288 set ref 609 609 flags 114 based structure array level 3 in structure "xforum_meeting_list" packed unaligned dcl 6-14 in procedure "xforum_list_meetings_" set ref 629* flags 25 000330 automatic structure level 2 in structure "fi" packed unaligned dcl 288 in procedure "xforum_list_meetings_" force_mode 000245 automatic bit(1) unaligned dcl 281 set ref 345* 400* 410 519* 521* forum_$forum_info 000026 constant entry external dcl 248 ref 609 forum_directory 000246 automatic char(168) unaligned dcl 282 set ref 423* 555* 568* 609* 624 forum_idx 000460 automatic fixed bin(17,0) dcl 587 set ref 615* 616* forum_info based structure level 1 dcl 2-14 forum_info_version_1 constant fixed bin(17,0) initial dcl 2-40 ref 608 forum_names 2 based char(32) array level 3 packed unaligned dcl 312 set ref 684* 690 forum_uid 1 000330 automatic bit(36) level 2 dcl 288 set ref 616 628 forum_version 102 based fixed bin(17,0) array level 3 dcl 6-14 set ref 625* 627* forums 10 based structure array level 2 dcl 6-14 set ref 719 720* 720 721* get_system_free_area_ 000030 constant entry external dcl 249 ref 368 get_temp_segment_ 000032 constant entry external dcl 250 ref 353 380 399 hcs_$star_dir_list_ 000034 constant entry external dcl 251 ref 555 568 i 000504 automatic fixed bin(17,0) dcl 710 set ref 716* 717 718 720 721 721 721 721 721 721 721 721 721 721 721 721 721 721 721 721 721* ioa_ 000036 constant entry external dcl 252 ref 538 539 540 541 806 k 000505 automatic fixed bin(17,0) dcl 710 set ref 713* 714 716 722* l 000506 automatic fixed bin(17,0) dcl 710 set ref 713* 714 715* 717* 718 719 719 719 719 719 719 719 719 719 719 719 719 719 719 719 719 719 720 722 last_time_attended 22 000330 automatic fixed bin(71,0) level 2 dcl 288 set ref 635 length builtin function dcl 303 ref 596 596 603 603 long_name 10 based char(32) array level 3 packed unaligned dcl 6-14 set ref 623* 718 718 match 000471 automatic bit(1) dcl 669 set ref 679* 680 687* 690* 693 696 match_star_name_ 000040 constant entry external dcl 253 ref 684 matched 14 based bit(1) array level 3 dcl 312 set ref 693* 693 mlo_ans_yes 000624 automatic bit(1) unaligned dcl 740 set ref 760* 770 787* 797 mlo_i 000625 automatic fixed bin(17,0) dcl 741 set ref 780* 781 781* mlo_meeting_list_ok 000626 automatic bit(1) unaligned dcl 742 set ref 752* 772* 799* 806 811 mlo_same 000627 automatic bit(1) unaligned dcl 743 set ref 779* 780 781* 785 mlo_search_paths_str based structure level 1 unaligned dcl 748 mlo_search_paths_str_ptr 000630 automatic pointer dcl 744 set ref 757* 758 780 781 mlo_sl_info_p parameter pointer dcl 736 ref 731 755 mlo_xforum_meeting_list_ptr parameter pointer dcl 735 ref 731 754 my_long_name 000436 automatic varying char(32) dcl 587 set ref 596* 623 642 my_short_name 000447 automatic varying char(32) dcl 587 set ref 601* 603* 641 646 name_idx 000472 automatic fixed bin(17,0) dcl 669 set ref 676* 678 683 684 690 693 693 696* nindex 0(18) based fixed bin(18,0) array level 2 in structure "star_dir_list_branch" packed unsigned unaligned dcl 5-59 in procedure "xforum_list_meetings_" ref 561 574 nindex 0(18) based fixed bin(18,0) array level 2 in structure "star_links" packed unsigned unaligned dcl 5-76 in procedure "xforum_list_meetings_" ref 837 nnames 0(02) based fixed bin(16,0) array level 2 in structure "star_dir_list_branch" packed unsigned unaligned dcl 5-59 in procedure "xforum_list_meetings_" ref 562 575 nnames 0(02) based fixed bin(16,0) array level 2 in structure "star_links" packed unsigned unaligned dcl 5-76 in procedure "xforum_list_meetings_" ref 837 no_changed 4 based fixed bin(17,0) level 2 dcl 6-14 set ref 416* 430 656* 656 no_names based fixed bin(17,0) level 2 dcl 312 set ref 361* 592 676 no_participant 3 based fixed bin(17,0) level 2 dcl 6-14 set ref 416* 429 638* 638 no_selected 2 based fixed bin(17,0) level 2 dcl 6-14 set ref 416* 428 434 436 615 620* 620 623 624 625 627 628 629 631 632 633 634 635 636 636 638 642 643 646 647 650 654 657 713 757 notify 114(02) based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 6-14 in procedure "xforum_list_meetings_" set ref 633* notify 25(03) 000330 automatic bit(1) level 3 in structure "fi" packed unaligned dcl 288 in procedure "xforum_list_meetings_" set ref 633 npaths based fixed bin(17,0) level 2 in structure "xforum_meeting_list" dcl 6-14 in procedure "xforum_list_meetings_" set ref 434* 757 npaths based fixed bin(17,0) level 2 in structure "mlo_search_paths_str" dcl 748 in procedure "meeting_list_ok" ref 758 780 null builtin function dcl 304 ref 348 370 370 380 397 833 836 837 842 num_paths 1 based fixed bin(17,0) level 2 dcl 4-15 ref 420 434 435 758 842 obj_name_count 000320 automatic fixed bin(17,0) dcl 283 set ref 562* 575* 601 680 obj_name_idx 000321 automatic fixed bin(17,0) dcl 284 set ref 561* 574* 596 596 603 603 609 680 680 object_idx 000424 automatic fixed bin(17,0) dcl 551 set ref 559* 561 562* 572* 574 575* participant 114(03) based bit(1) array level 4 packed unaligned dcl 6-14 set ref 636* 638 654 pathname 17 based char(168) array level 3 packed unaligned dcl 4-15 ref 423 436 781 pathname_len 3 based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 5-76 ref 837 paths 14 based structure array level 2 in structure "sl_info" dcl 4-15 in procedure "xforum_list_meetings_" paths based varying char(168) array level 2 in structure "xforum_meeting_list" dcl 6-14 in procedure "xforum_list_meetings_" set ref 436* paths 1 based varying char(168) array level 2 in structure "mlo_search_paths_str" dcl 748 in procedure "meeting_list_ok" ref 781 project 7 000330 automatic char(9) level 3 packed unaligned dcl 288 set ref 650 read_only 114(05) based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 6-14 in procedure "xforum_list_meetings_" set ref 634* read_only 25(07) 000330 automatic bit(1) level 3 in structure "fi" packed unaligned dcl 288 in procedure "xforum_list_meetings_" set ref 634 release_temp_segment_ 000042 constant entry external dcl 254 ref 833 removed 25(02) 000330 automatic bit(1) level 3 in structure "fi" packed unaligned dcl 288 in procedure "xforum_list_meetings_" set ref 632 636 removed 114(01) based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 6-14 in procedure "xforum_list_meetings_" set ref 632* rtrim builtin function dcl 305 ref 596 603 650 search_paths_$get 000044 constant entry external dcl 255 ref 370 select_names based structure level 1 dcl 312 select_names_ptr 000322 automatic pointer dcl 285 set ref 348* 353* 361 592 674 676 678 683 684 690 693 693 696 833 833* short_name 20 based char(32) array level 3 packed unaligned dcl 6-14 set ref 642* 646* sl_control_default 000002 constant bit(36) initial unaligned dcl 3-13 set ref 370* sl_info based structure level 1 dcl 4-15 ref 842 sl_info_p 000356 automatic pointer dcl 4-28 set ref 348* 370* 412* 420 422 423 434 435 436 755* 758 781 842 842 sl_info_version_1 000052 constant fixed bin(17,0) initial dcl 4-29 set ref 370* spy based structure level 1 unaligned dcl 8-12 spy_ptr 000372 automatic pointer dcl 8-26 set ref 388* 391 392 393 394 395 428 429 430 822 822 823 823 824 824 star_ALL_ENTRIES constant fixed bin(2,0) initial dcl 5-111 ref 553 star_LINK constant fixed bin(2,0) initial unsigned dcl 5-119 ref 837 star_LINKS_ONLY_WITH_LINK_PATHS constant fixed bin(3,0) initial dcl 5-112 ref 837 star_branch_count 000360 automatic fixed bin(17,0) dcl 5-13 set ref 555* 559 568* 572 837 837 837 837 839 star_dir_list_branch based structure array level 1 dcl 5-59 ref 839 star_idx 000473 automatic fixed bin(17,0) dcl 669 set ref 680* 684 690* star_link_count 000364 automatic fixed bin(17,0) dcl 5-17 set ref 555* 559 568* 572 837 837 837 837 839 star_links based structure array level 1 dcl 5-76 star_list_branch_ptr 000362 automatic pointer dcl 5-16 set ref 348* 555* 561 562 568* 574 575 836 837 837 837 837 839 star_list_names based char(32) array unaligned dcl 5-92 set ref 596 596 603 603 609* 684* 690 837 star_list_names_ptr 000366 automatic pointer dcl 5-20 set ref 348* 555* 568* 596 596 603 603 609 684 690 837 837 star_name 13 based bit(1) array level 3 dcl 312 ref 683 star_select_sw 000370 automatic fixed bin(3,0) dcl 5-21 set ref 553* 555* 568* 837 static_spy_ptr 000012 internal static pointer initial dcl 293 set ref 380 380* 388 389 static_xforum_meeting_list_ptr 000010 internal static pointer initial dcl 292 set ref 397 399* 408 substr builtin function dcl 306 ref 596 603 system_area_ptr 000324 automatic pointer dcl 286 set ref 368* 370* 555* 568* t 000507 automatic structure level 1 unaligned dcl 711 set ref 719* 721 timer_manager_$sleep 000046 constant entry external dcl 256 ref 525 543 two_names 114(04) based bit(1) array level 4 packed unaligned dcl 6-14 set ref 643* 647* type based fixed bin(2,0) array level 2 packed unsigned unaligned dcl 5-76 ref 837 uid 113 based bit(36) array level 3 dcl 6-14 set ref 616 628* unspec builtin function dcl 307 set ref 629* unusedb1 000326 automatic bit(1) unaligned dcl 287 set ref 475* 481* 487* 493* 499* 505* 511* 517* user_info_$whoami 000050 constant entry external dcl 257 ref 392 user_name 2 based char(32) level 2 packed unaligned dcl 8-12 set ref 392* username 2 000330 automatic char(20) level 3 packed unaligned dcl 288 set ref 650 version based char(8) level 2 in structure "spy" packed unaligned dcl 8-12 in procedure "xforum_list_meetings_" set ref 391* version 000330 automatic fixed bin(17,0) level 2 in structure "fi" dcl 288 in procedure "xforum_list_meetings_" set ref 608* xforum_meeting_list based structure level 1 dcl 6-14 xforum_meeting_list_ptr 000062 external static pointer level 2 dcl 7-3 set ref 408* 412* 416 416 416 416 416 416 428 429 430 434 436 439 615 616 620 620 623 623 624 624 625 625 627 627 628 628 629 629 631 631 632 632 633 633 634 634 635 635 636 636 636 636 638 638 638 638 642 642 643 643 646 646 647 647 650 650 654 654 656 656 657 657 713 718 718 719 720 720 721 754* 757 xforum_ptr_struct_ 000062 external static structure level 1 unaligned dcl 7-3 xforum_user_profile$set_handle_interactive_messages 000056 constant entry external dcl 260 ref 499 505 xforum_user_profile$set_menu_always 000052 constant entry external dcl 258 ref 475 481 xforum_user_profile$set_multics_mode 000054 constant entry external dcl 259 ref 487 493 xforum_user_profile$set_use_function_keys 000060 constant entry external dcl 261 ref 511 517 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSOLUTE_PATH internal static fixed bin(17,0) initial dcl 4-33 A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 HOME_DIR internal static fixed bin(17,0) initial dcl 4-38 INITIATED_SEGS internal static fixed bin(17,0) initial dcl 4-39 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 PROCESS_DIR internal static fixed bin(17,0) initial dcl 4-37 REFERENCING_DIR internal static fixed bin(17,0) initial dcl 4-35 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS internal static bit(3) initial unaligned dcl 1-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SPY_AT_1 internal static fixed bin(17,0) initial dcl 8-29 SPY_AT_10 internal static fixed bin(17,0) initial dcl 8-47 SPY_AT_11 internal static fixed bin(17,0) initial dcl 8-49 SPY_AT_12 internal static fixed bin(17,0) initial dcl 8-51 SPY_AT_15 internal static fixed bin(17,0) initial dcl 8-57 SPY_AT_16 internal static fixed bin(17,0) initial dcl 8-59 SPY_AT_17 internal static fixed bin(17,0) initial dcl 8-61 SPY_AT_18 internal static fixed bin(17,0) initial dcl 8-63 SPY_AT_19 internal static fixed bin(17,0) initial dcl 8-65 SPY_AT_2 internal static fixed bin(17,0) initial dcl 8-31 SPY_AT_3 internal static fixed bin(17,0) initial dcl 8-33 SPY_AT_4 internal static fixed bin(17,0) initial dcl 8-35 SPY_AT_5 internal static fixed bin(17,0) initial dcl 8-37 SPY_AT_6 internal static fixed bin(17,0) initial dcl 8-39 SPY_AT_7 internal static fixed bin(17,0) initial dcl 8-41 SPY_AT_8 internal static fixed bin(17,0) initial dcl 8-43 SPY_AT_9 internal static fixed bin(17,0) initial dcl 8-45 SPY_LOCATION internal static varying char(20) initial array dcl 8-68 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 UNEXPANDED_PATH internal static fixed bin(17,0) initial dcl 4-34 WORKING_DIR internal static fixed bin(17,0) initial dcl 4-36 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 forum_info_ptr automatic pointer dcl 2-12 forum_info_version_2 internal static fixed bin(17,0) initial dcl 2-40 sl_control automatic bit(36) unaligned dcl 3-12 sl_control_s based structure level 1 packed unaligned dcl 3-3 sl_info_num_paths automatic fixed bin(17,0) dcl 4-27 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 5-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 5-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 5-121 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 5-109 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 5-120 star_entries based structure array level 1 dcl 5-27 star_entry_count automatic fixed bin(17,0) dcl 5-14 star_entry_ptr automatic pointer dcl 5-15 star_link_pathname based char unaligned dcl 5-102 star_linkx automatic fixed bin(17,0) dcl 5-18 star_list_branch based structure array level 1 dcl 5-41 star_names based char(32) array unaligned dcl 5-37 star_names_ptr automatic pointer dcl 5-19 NAMES DECLARED BY EXPLICIT CONTEXT. ADD_FORUM 002772 constant label dcl 620 COMMON 000625 constant label dcl 345 EGRESS 001422 constant label dcl 441 ref 386 406 412 461 arg_warning 002224 constant entry internal dcl 531 ref 474 480 486 492 498 504 510 516 check_forum 002562 constant entry internal dcl 583 ref 563 576 clean_up 004212 constant entry internal dcl 830 ref 351 441 collect_spy_data 004157 constant entry internal dcl 815 ref 773 775 800 802 exit_check_forum 003216 constant label dcl 661 ref 592 612 616 exit_meeting_list_ok 004133 constant label dcl 806 ref 776 803 match_select_name 003217 constant entry internal dcl 666 ref 592 meeting_list_ok 003640 constant entry internal dcl 731 ref 412 process_args 001427 constant entry internal dcl 453 ref 363 scan_dir 002341 constant entry internal dcl 549 ref 424 sort_output 003363 constant entry internal dcl 707 ref 432 xforum_list_meetings_ 000563 constant entry external dcl 30 xforum_process_args_ 000577 constant entry external dcl 339 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4760 5044 4434 4770 Length 5470 4434 64 407 323 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_list_meetings_ 868 external procedure is an external procedure. on unit on line 351 64 on unit process_args internal procedure shares stack frame of external procedure xforum_list_meetings_. arg_warning internal procedure shares stack frame of external procedure xforum_list_meetings_. scan_dir internal procedure shares stack frame of external procedure xforum_list_meetings_. check_forum internal procedure shares stack frame of external procedure xforum_list_meetings_. match_select_name internal procedure shares stack frame of external procedure xforum_list_meetings_. sort_output internal procedure shares stack frame of external procedure xforum_list_meetings_. meeting_list_ok internal procedure shares stack frame of external procedure xforum_list_meetings_. collect_spy_data internal procedure shares stack frame of external procedure xforum_list_meetings_. clean_up 81 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 static_xforum_meeting_list_ptr xforum_list_meetings_ 000012 static_spy_ptr xforum_list_meetings_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xforum_list_meetings_ 000106 ME xforum_list_meetings_ 000116 access_name xforum_list_meetings_ 000126 access_time xforum_list_meetings_ 000130 arg_count xforum_list_meetings_ 000131 arg_idx xforum_list_meetings_ 000132 arg_list xforum_list_meetings_ 000234 arg_list_ptr xforum_list_meetings_ 000236 arg_lth xforum_list_meetings_ 000240 arg_ptr xforum_list_meetings_ 000242 code xforum_list_meetings_ 000243 dir_idx xforum_list_meetings_ 000244 explicit xforum_list_meetings_ 000245 force_mode xforum_list_meetings_ 000246 forum_directory xforum_list_meetings_ 000320 obj_name_count xforum_list_meetings_ 000321 obj_name_idx xforum_list_meetings_ 000322 select_names_ptr xforum_list_meetings_ 000324 system_area_ptr xforum_list_meetings_ 000326 unusedb1 xforum_list_meetings_ 000330 fi xforum_list_meetings_ 000356 sl_info_p xforum_list_meetings_ 000360 star_branch_count xforum_list_meetings_ 000362 star_list_branch_ptr xforum_list_meetings_ 000364 star_link_count xforum_list_meetings_ 000366 star_list_names_ptr xforum_list_meetings_ 000370 star_select_sw xforum_list_meetings_ 000372 spy_ptr xforum_list_meetings_ 000374 SPY_VERSION_1 xforum_list_meetings_ 000424 object_idx scan_dir 000436 my_long_name check_forum 000447 my_short_name check_forum 000460 forum_idx check_forum 000470 accepting match_select_name 000471 match match_select_name 000472 name_idx match_select_name 000473 star_idx match_select_name 000504 i sort_output 000505 k sort_output 000506 l sort_output 000507 t sort_output 000624 mlo_ans_yes meeting_list_ok 000625 mlo_i meeting_list_ok 000626 mlo_meeting_list_ok meeting_list_ok 000627 mlo_same meeting_list_ok 000630 mlo_search_paths_str_ptr meeting_list_ok THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as r_ge_a alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op shorten_stack ext_entry ext_entry_desc int_entry op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ command_query_$yes_no cu_$arg_count_rel cu_$arg_ptr_rel date_time_ forum_$forum_info get_system_free_area_ get_temp_segment_ hcs_$star_dir_list_ ioa_ match_star_name_ release_temp_segment_ search_paths_$get timer_manager_$sleep user_info_$whoami xforum_user_profile$set_handle_interactive_messages xforum_user_profile$set_menu_always xforum_user_profile$set_multics_mode xforum_user_profile$set_use_function_keys THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. xforum_ptr_struct_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 8 27 000556 30 000562 339 000571 341 000613 342 000615 343 000620 345 000625 348 000627 351 000634 353 000656 355 000677 357 000701 358 000703 361 000704 363 000705 365 000706 366 000711 368 000713 370 000722 373 000771 375 000773 376 000775 377 001021 380 001022 382 001053 384 001055 385 001103 386 001106 388 001107 389 001112 391 001114 392 001120 393 001137 394 001157 395 001164 397 001165 399 001172 400 001220 402 001222 404 001224 405 001226 406 001252 408 001253 410 001256 412 001260 416 001275 420 001306 422 001317 423 001324 424 001331 426 001332 428 001334 429 001342 430 001344 432 001346 434 001347 435 001360 436 001367 437 001414 439 001416 441 001422 444 001426 453 001427 456 001430 457 001443 459 001445 460 001447 461 001464 464 001465 465 001466 467 001475 470 001515 472 001552 474 001560 475 001572 476 001605 477 001606 480 001612 481 001624 482 001637 483 001640 486 001650 487 001662 488 001675 489 001676 492 001706 493 001720 494 001733 495 001734 498 001744 499 001756 500 001771 501 001772 504 002002 505 002014 506 002027 507 002030 510 002040 511 002052 512 002065 513 002066 516 002076 517 002110 518 002123 519 002124 521 002137 524 002151 525 002204 527 002221 529 002223 531 002224 538 002235 539 002257 540 002273 541 002307 543 002323 545 002340 549 002341 553 002342 555 002344 559 002417 561 002431 562 002440 563 002444 564 002451 568 002453 572 002525 574 002537 575 002546 576 002552 577 002557 579 002561 583 002562 591 002573 592 002574 596 002603 601 002640 603 002645 608 002700 609 002702 612 002745 615 002747 616 002761 618 002770 620 002772 623 002776 624 003005 625 003011 627 003025 628 003030 629 003034 631 003035 632 003041 633 003046 634 003053 635 003060 636 003067 638 003104 641 003110 642 003115 643 003124 644 003126 646 003127 647 003136 650 003140 654 003203 656 003211 657 003212 661 003216 666 003217 674 003221 676 003224 678 003233 679 003240 680 003241 683 003255 684 003262 687 003313 689 003317 690 003320 693 003336 694 003343 696 003345 699 003355 701 003357 707 003363 713 003364 714 003372 715 003375 716 003377 717 003407 718 003411 719 003433 720 003532 721 003540 722 003632 724 003634 725 003636 727 003637 731 003640 752 003642 754 003644 755 003650 757 003653 758 003661 760 003664 770 003750 772 003754 773 003755 774 003762 775 003763 776 003770 779 003771 780 003773 781 004003 783 004021 785 004023 787 004025 797 004112 799 004116 800 004117 801 004124 802 004125 803 004132 806 004133 811 004151 815 004157 822 004170 823 004172 824 004200 826 004210 830 004211 833 004217 836 004245 837 004252 839 004316 842 004324 845 004337 ----------------------------------------------------------- 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