COMPILATION LISTING OF SEGMENT xforum_attend_mtg_utilities Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/06/87 1020.8 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(85-02-21,Davids), approve(86-02-04,MCR7350), 12* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 13* Written by extracting things out of the xforum_ent_attend_mtg_menu 14* and xforum_sub_attend_mtg_menus modules. 15* 16* 85-03-25 Davids: Added calls to timer_manager_$sleep after calls 17* to com_err_ so that the user will have time to read the message. 18* The timer calls were not placed after some calls to com_err_ in 19* copy_to_name because the screen is not cleared after those calls. 20* 21* 85-03-26 Davids: Added the set_up_meeting entry point. 22* 23* 85-03-28 Davids: Added code to set_up_meeting so that the old 24* xforum_meeting_info structure is not zeroed if it already contains 25* information about the meeting. This will happen if the user 26* leaves a meeting and then reenters it without going to another 27* meeting. The forum meeting is still opened, the seen map updated 28* and other meeting statistics are still updated. The current 29* comment information is the oinly thing that is really saved. 30* 2) change(85-04-17,Davids), approve(86-02-04,MCR7350), 31* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 32* Modified the next_unread_comment entry so that it saves the 33* original current comment and flags and so that it has a quit 34* handler that will restore the current comment and flags and get a 35* pointer to the first current comment which is returned. This 36* solves the problem of having a meeting with lots of deleted or 37* expunged comments, asking for the next unread, hitting BREAk and 38* being left with a current comment that has been deleted or 39* expunged. Error list entry #8. 40* 41* 85-05-01 Davids: Modified next_unread_comment so that if the error 42* code returned from xforum_trans_$read is non 0 and neither deleted 43* or reaped it will find the next unread comment. It was just 44* telling the user that the next one would be found but the code to 45* find it was missing so the user would be in a loop. 46* 47* 85-05-20 Davids: Added header comments and cleaned up some dcls. 48* 49* 85-06-20 Davids: Changed calling sequence of xforum_format_$append 50* so that the bit_count parameter which is input/output comes after 51* all the input parameters (i.e. the bit (1) switch). 52* 3) change(87-04-13,LJAdams), approve(87-04-22,MCR7684), 53* audit(87-07-30,Blair), install(87-08-06,MR12.1-1065): 54* Changed to allow command_processor_ escapes. 55* END HISTORY COMMENTS */ 56 57 xforum_attend_mtg_utilities: proc; 58 59 /* 60* BEGIN DESCRIPTION 61* 62* function: 63* This module contains functions that are used by both the 64* xforum_ent_attend_mtg_menu and the xforum_sub_attend_mtg_menu modules. 65* 66* description of entry points: 67* xforum_attend_mtg_utilities: 68* input: 69* output: 70* It is an error to call the main entry point. The xforum_fatal_error 71* condition will be signaled with an "internal programming error" error 72* message. 73* 74* set_up_meeting: 75* input: ptr pointer to meeting_list structure 76* ptr pointer to meeting_info structure 77* fixed bin index of meeting in meeting_list 78* bit (1) aligned "1"b => subject oriented attending menu in use 79* output: fixed bin meeting index used by forum, 0 => meeting not opened 80* char (256) subject of current comment chain 81* char (256) chairs msg. "" => no message or no need to print message 82* This entry calls forum to open a forum meeting and sets up information 83* that xforum needs to know about. The meeting path is obtained from the 84* meeting list. The new meeting name and index are compared to the previously 85* opened name and index. If they are the same it is assumed that it is the 86* same meeting and the old info is reused. This old info includes the current 87* set of selected comments. Both name and index are used because it was felt 88* that either one by itself might not be enough, i.e. two meeting with the 89* same name or a resorted meeting list so that the same index refers to 90* a different meeting. If the call to forum fails it is assumed that the 91* meeting list has been invalidated by someone changing the name or access 92* on the meeting and a message to that effect is output to the user. The 93* participation and changed flags are also turned off (and the counts 94* decremented) for that meeting. Given that the meeting is opened ok. Then 95* if the participant flag is off it is turned on. For a version 2 forum the 96* transaction map is obtained, a pseudo transaction map is obtained for version 1 97* forums by assuming that all comments prior to the last one the user has seen 98* have all been seen. If the previous information is still to be used 99* the current comment information must be checked to be sure that it can 100* still be used. For the case of changing from entry oriented to subject oriented 101* there are sets of current comments that cannot be used, i.e. ranges and sets. 102* For these cases the last current comment is set to the last comment in 103* the range or set. The chairman message is obtained and returned only if the 104* current comment has been set to 1 which means that the user has never atteneded 105* the meeting before. The current comment is also read, if the comment cannot be read 106* the first comment in the meeting is read and the current comment set to that. 107* If that cannot be read a programming error message is output to the user, 108* 109* copy_to_name: 110* input: ptr pointer to the spy structure 111* output: char (32) name of segment 112* ptr pointer to segment 113* fixed bin (24) bit count of segment 114* This entry prompts the user for the name of a segment and returns the 115* name, pointer and bit count of the segment. The user can input 116* either an absolute or relative pathname. Null names are handled by 117* printing an error message and the prompt again. "?" is handled by a 118* call to xforum_help_$display with the parameters of "xforum_prompt" 119* and "file_name" and then reissusing the prompt. "??" is handled by 120* printing an error message and the prompt. The user's response is 121* recorded in the spy segment as either "name" or "pathname". Pathname 122* is used if the user's response has either a > or a < in it. If the 123* segment indicated by the user cannot be initiated an error message is 124* printed and the returned name, ptr and bit count values set to "", 125* null and 0. A quit handler also sets the returned values to "", null, 126* and 0. 127* 128* next_unread_comment: 129* input: ptr pointer to meeting_info structure 130* fixed bin index forum uses to ID meeting 131* fixed bin version of forum meeting 132* output: ptr pointer to next unread comment or null 133* This entry returns a pointer to the forum_user_trans structure of the 134* next unread comment, or a null if there are no more unread comments. 135* It uses the next_unread element in the xforum_meeting_info structure 136* to identify that comment. It then calls xforum_trans_$read to get a 137* pointer to it. If the call to read fails because the comment has been 138* deleted or expunged then the seen map is marked so that it shows its 139* has been seen and the unread_count in xforum_meeting_info is 140* decremented. In addition for version 2 meetings the seen switch for 141* the comment is set. The next unread comment is then located by looping 142* through the seen map - starting with the deleted/expunged comment. 143* This new comment is then read and the cycle repeats itself. If some 144* other error was returned by the read operation. An error message is 145* output and a new unread comment is found. The cycle then repeats. 146* 147* update_status: 148* input: ptr pointer to meeting_info structure 149* fixed bin index of current comment, 0 implies no current comment 150* char (*) subject of current comment, used for subject oriented menu 151* fixed bin version of forum meeting 152* fixed bin index forum uses to ID meeting 153* output: 154* This entry updates the contents of the status window, sets seen flags, 155* and finds the next unread comment. If the index of the current comment is 156* non-zero it will set the forum seen flag or the last_seen_idx depending 157* on forum version. It will also set the xforum comment seen map to record 158* that the comment has been seen and find the next unseen comment based on 159* the xforum seen map. It always makes a call to forum to get the current 160* status of the meeting, including the last transaction in the meeting. If 161* the meeting has had comments added to it since the xforum_seen_map was 162* last updated then the map is extended and the comments marked as unseen. 163* The unread count is updated and if there currently were no unread 164* comments next_unread is set to the first new comment. The xforum status 165* line is then rebuilt using the lastest values of total, and new. The help 166* line changed to show F1, F3, and F4. 167* 168* close_meeting: 169* input: ptr pointer to meeting_info structure 170* ptr pointer to meeting_list structure 171* fixed bin index of meeting in the meeting list 172* fixed bin index forum uses to ID meeting 173* ptr pointer to the attend meeting menu 174* output: 175* This entry closes a meeting and destroys the associated attend meeting 176* menu. The meeting is closed by calls forum_$close. After its closed 177* then if the meeting was flaged as having been changed and there are 178* no new comments the changed flag is turned off and the changed count 179* decremented. 180* 181* enter_trans: 182* input: ptr pointer to meeting_info structure 183* fixed bin index forum uses to ID meeting 184* bit (1) aligned "1"b implies reply mode, "0"b is talk mode 185* ptr pointer to spy structure 186* bit (1) aligned "1"b implies subject oriented meeting attendance, 187* "0"b implies entry order attendance 188* output: 189* This entry sets up and calls the lisp extension for replying to and 190* creating comments. There are two modes, reply mode and talk mode. 191* In reply mode the current comments are written to a specially created 192* file caled xforum_view_seg in the pdir. The segment will eventually 193* be read into the top window of emacs. The segment xforum_trans which 194* is also created in the pdir is used to house the new comment. The 195* emacs extension IS NOT FOUND BY SEARCH RULES. It is found by 196* determining the current referencing dir and creating the absolute 197* path to the extension by using the referencing dir and the name of the 198* extension. Note that the pointers to xforum_trans, xforum_view_seg and 199* the extension are stored in internal static so once the extension is 200* used you cannot use a new one. When the user exits the extension the 201* new comment is in the xforum_trans segment. The first 9 characters of 202* segment must be "Subject: " or an error will be reported. The subject 203* is extracted and placed in its own variable of 500 characters. Embeded 204* new-lines are allowed by terminating the subject with an ESC 205* character. forum_$enter_trans is used to enter the comment and itr 206* returns the comment number so it can be reported to the user. If the 207* new comment number is greater than 1 + the last known comment number 208* i.e. last_trans stored in xforum_meeting_info it means that there are 209* new comments. The transaction number returned is used as a new last 210* and the seen map, unread_count, and next_unread index are all updated. 211* 212* description of internal procedures: 213* collect_spy_data: Similar to all the other collect_spy_data procedures. See the 214* xforum module. Note that this procedure is duplicated so as to save the 215* expense of an external call for a commonly executed, very short program, 216* whose output is used only durning development or special site exposure. 217* 218* error: Similar to all the other error procedures. It records in an internal 219* static structure the details of an error and then signals the 220* xforum_fatal_error condition. 221* 222* known bugs: 223* 224* notes: 225* 85-05-20 Davids: collect_spy_data could be placed in an include file. 226* 227* END DESCRIPTION 228**/ 229 230 /* PARAMETERS */ 231 232 /* EXTERNAL STATIC */ 233 234 dcl forum_error_table_$invalid_trans_idx fixed bin (35) ext static; 235 dcl forum_error_table_$trans_deleted fixed bin (35) ext static; 236 dcl forum_error_table_$trans_reaped fixed bin (35) ext static; 237 238 /* ENTRIES */ 239 240 dcl com_err_$suppress_name entry () options (variable); 241 dcl emacs_ entry (ptr, char (*), char (*), ptr, fixed bin (35)); 242 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 243 dcl get_pdir_ entry () returns (char (168)); 244 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)); 245 dcl hcs_$make_ptr entry (ptr, char (*), char (*), ptr, fixed bin (35)); 246 dcl hcs_$set_bc_seg entry (ptr, fixed bin (24), fixed bin (35)); 247 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 248 dcl initiate_file_$create entry (char (*), char (*), bit (*), ptr, bit (1) aligned, fixed bin (24), fixed bin (35)); 249 dcl xforum_get_str_ entry (char(*) var, ptr, char(*), char(*), char(*) var, fixed bin(35)); 250 dcl ioa_ entry () options (variable); 251 dcl ioa_$rsnnl entry () options (variable); 252 dcl menu_$destroy entry (ptr, fixed bin (35)); 253 dcl signal_ entry () options (variable); 254 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 255 dcl window_$clear_window entry (ptr, fixed bin (35)); 256 dcl xforum_format_$append entry (ptr, ptr, bit (1) aligned, fixed bin (24), fixed bin (35)); 257 dcl xforum_format_$write entry (ptr, ptr, fixed bin (35)); 258 dcl xforum_get_selected_trans$first entry (ptr, ptr, fixed bin (35)); 259 dcl xforum_get_selected_trans$next entry (ptr, ptr, fixed bin (35)); 260 dcl xforum_help_line_$change entry (bit (8) aligned, char (*), char (*), char (*)); 261 dcl xforum_help_line_$pop entry options (variable); 262 dcl xforum_help_line_$push entry (bit (8) aligned, char (*), char (*), char (*)); 263 dcl xforum_status_$redisplay entry (fixed bin (35)); 264 dcl xforum_status_$update_current entry (char (*)); 265 dcl xforum_status_$update_new entry (char (*)); 266 dcl xforum_status_$update_title entry (char (*)); 267 dcl xforum_status_$update_total entry (char (*)); 268 dcl xforum_trans_$first_trans entry (ptr, fixed bin (35)); 269 dcl xforum_trans_$read entry (fixed bin, ptr, fixed bin (35)); 270 dcl xforum_user_profile$get_remove_menu_while_editing entry () returns (bit (1)); 271 dcl xforum_window_mgr$check_window_status entry options (variable); 272 dcl xforum_window_mgr$resynch_windows entry (fixed bin, bit (1)); 273 274 /* CONDITIONS */ 275 276 dcl quit condition; 277 278 /* INTERNAL AUTOMATIC */ 279 280 dcl xforum_meeting_info_ptr ptr; /* pointer to meeting_info structure */ 281 dcl xforum_meeting_list_ptr ptr; /* pointer to meeting_list structure */ 282 283 284 /* INTERNAL STATIC */ 285 286 dcl 01 xamu_xforum_error_info like xforum_error_info internal static; 287 /* used to record error info to be output to the user */ 288 289 /* CONSTANTS */ 290 291 dcl ( 292 xamu_QUERY_USAGE char (69) init ("Press ? and RETURN:help BREAK:Do not copy comments"), 293 xamu_ME char (27) init ("xforum_attend_mtg_utilities"), 294 xamu_OFF bit (1) aligned init ("0"b), 295 xamu_ON bit (1) aligned init ("1"b), 296 xamu_REPLY bit (1) aligned init ("1"b), 297 xamu_SUBJECT bit (1) aligned init ("1"b) 298 ) internal static options (constant); 299 300 /* BUILTINS */ 301 302 dcl ( 303 addr, 304 after, 305 before, 306 divide, 307 index, 308 length, 309 null, 310 rtrim, 311 string, 312 substr, 313 unspec 314 ) builtin; 315 316 /* BASED */ 317 318 319 /* INCLUDE FILES */ 320 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 */ 321 322 2 1 /* START OF: forum_dcls.incl.pl1 * * * * * */ 2 2 2 3 dcl forum_$close_forum entry (fixed bin, fixed bin (35)); 2 4 dcl forum_$enter_trans entry (fixed bin, char (*), fixed bin, char (*), 2 5 bit (1) aligned, fixed bin, 2 6 fixed bin (35)); 2 7 dcl forum_$forum_info entry (char (*), char (*), char (*), 2 8 fixed bin (71), ptr, fixed bin (35)); 2 9 dcl forum_$forum_limits entry (fixed bin, fixed bin, fixed bin, 2 10 fixed bin, fixed bin, fixed bin, 2 11 bit(36) aligned, fixed bin (35)); 2 12 dcl forum_$get_forum_path entry (char (*), char (*), char (*), char (*), 2 13 fixed bin (35)); 2 14 dcl forum_$get_forum_path_idx entry (fixed bin, char (*), char (*), 2 15 fixed bin (35)); 2 16 dcl forum_$get_message entry (fixed bin, char (*), fixed bin (35)); 2 17 dcl forum_$get_transaction_map_idx entry (fixed bin, char (*), bit (*), fixed bin (35)); 2 18 dcl forum_$list_users_idx entry (fixed bin, ptr, ptr, fixed bin (35)); 2 19 dcl forum_$open_forum entry (char(*), char(*), fixed bin, 2 20 fixed bin (35)); 2 21 dcl forum_$read_trans entry (fixed bin, fixed bin, ptr, ptr, 2 22 fixed bin (35)); 2 23 dcl forum_$set_last_seen_idx entry (fixed bin, fixed bin, bit (1) aligned, 2 24 fixed bin (35)); 2 25 dcl forum_$set_seen_switch entry (fixed bin, char (*), fixed bin, 2 26 bit (1) aligned, fixed bin (35)); 2 27 dcl forum_$set_message entry (fixed bin, char (*), fixed bin (35)); 2 28 dcl forum_$set_switch entry (char (*), char (*), char (*), char (*), 2 29 bit (1) aligned, fixed bin (35)); 2 30 dcl forum_$set_switch_idx entry (fixed bin, char (*), char (*), 2 31 bit (1) aligned, fixed bin (35)); 2 32 dcl forum_$trans_ref_info entry (fixed bin, fixed bin, fixed bin, 2 33 fixed bin, fixed bin, bit (1) aligned, 2 34 fixed bin (35)); 2 35 2 36 /* END OF: forum_dcls.incl.pl1 * * * * * */ 323 324 3 1 /* ... BEGIN INCLUDE FILE forum_flags.incl.pl1 ... */ 3 2 3 3 /* Flags returned by forum_$forum_limits 3 4* Jay Pattin 5/5/82 */ 3 5 3 6 dcl forum_flags_word bit (36) aligned; 3 7 3 8 dcl 1 forum_flags aligned based (addr (forum_flags_word)), 3 9 2 chairman bit (1) unaligned, 3 10 2 read_only bit (1) unaligned, 3 11 2 print_cm_message bit (1) unaligned, 3 12 2 print_acl_message bit (1) unaligned, 3 13 2 acl_has_changed bit (1) unaligned, 3 14 2 adjourned bit (1) unaligned, 3 15 2 mbz bit (30) unaligned; 3 16 3 17 /* END INCLUDE FILE forum_flags.incl.pl1 */ 325 326 4 1 /* BEGIN INCLUDE FILE: forum_user_trans.incl.pl1 */ 4 2 4 3 dcl alloc_text_length fixed bin (21); /* length of text area to allocate */ 4 4 dcl alloc_subject_length fixed bin (21); /* length of subject area to allocate */ 4 5 dcl forum_user_trans_ptr ptr; /* pointer to below structure */ 4 6 4 7 dcl 1 forum_user_trans based (forum_user_trans_ptr) aligned, 4 8 2 type fixed bin, /* type of transaction */ 4 9 2 person_id char (22), /* person_id of author of this transaction */ 4 10 2 project_id char (9), /* project_id of author of this transaction */ 4 11 2 time fixed bin (71), /* time transaction was entered */ 4 12 2 trans_no fixed bin, /* number of this transaction */ 4 13 2 next_trans_ptr ptr, /* pointer (in user ring) of next transaction */ 4 14 2 prev_trans_ptr ptr, /* pointer (in user ring) of previous transaction */ 4 15 2 subject_length fixed bin (21), /* length of subject field of transaction */ 4 16 2 text_length fixed bin (21), /* length of text field of transaction */ 4 17 2 unfilled bit (1) aligned, /* set if transaction is NOT stored filled */ 4 18 2 subject char (alloc_subject_length refer (forum_user_trans.subject_length)) unaligned, /* subject of transaction */ 4 19 2 text char (alloc_text_length refer (forum_user_trans.text_length)) unaligned; /* text of transaction */ 4 20 4 21 declare user_trans_type fixed bin static options (constant) initial (1); 4 22 declare message_type fixed bin static options (constant) initial (2); 4 23 4 24 declare (ONLY_UNDELETED init (0), 4 25 INCLUDE_DELETED init (1), 4 26 ONLY_DELETED init (2)) 4 27 fixed bin static options (constant); 4 28 4 29 /* END INCLUDE FILE: forum_user_trans.incl.pl1 */ 327 328 5 1 /* BEGIN INCLUDE FILE xforum_error_info 84-06-19 Davids */ 5 2 5 3 dcl 01 xforum_error_info based, 5 4 02 name char (32), 5 5 02 entry char (32), 5 6 02 doing char (100), 5 7 02 code fixed bin (35), 5 8 02 reason char (512); 5 9 5 10 /* END INCLUDE FILE xforum_error_info */ 329 330 6 1 /* START OF: xforum_meeting_info.incl.pl1 * * * * * */ 6 2 6 3 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(84-05-03,Davids), approve(84-05-03,MCR7350), 6 7* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 6 8* Changed the length of name from 20 characters to 32 characters. 6 9* Version 2 forum names can be 26 characters long (forum suffix) - 6 10* and a little extra incase version 3 uses a shorter suffix yet. 6 11* 6 12* 84-10-03 Davids: added the unread_count, next_unread, and 6 13* seen_map_ptr elements. Also the declaration for the 6 14* seen_map_string and seen_map. 6 15* 6 16* 85-01-24 Davids: added the set_array_ptr to the 6 17* xforum_meeting_info structure and the set_array structure and 6 18* SET_ARRAY_SPEC_LEN variable. 6 19* 2) change(86-02-17,LJAdams), approve(86-02-17,MCR7350), 6 20* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 6 21* Added restref flag. 6 22* END HISTORY COMMENTS */ 6 23 6 24 declare 1 xforum_meeting_info based (xforum_meeting_info_ptr), 6 25 2 name char (32), 6 26 2 lidx fixed bin, 6 27 2 idx fixed bin, 6 28 2 current fixed bin, 6 29 2 last_seen fixed bin, 6 30 2 first_trans fixed bin, 6 31 2 last_trans fixed bin, 6 32 2 new_trans fixed bin, 6 33 2 flags unal, 6 34 3 all bit (1), 6 35 3 allref bit (1), 6 36 3 restref bit (1), 6 37 3 new bit (1), 6 38 3 range bit (1), 6 39 3 set bit (1), 6 40 2 current_ref fixed bin, 6 41 2 low fixed bin, 6 42 2 high fixed bin, 6 43 2 trans_struct_ptr ptr, 6 44 2 next_unread fixed bin, 6 45 2 unread_count fixed bin, 6 46 2 seen_map_ptr ptr, 6 47 2 set_array_ptr ptr; 6 48 6 49 dcl seen_map_string bit (1000000) based; 6 50 dcl seen_map (1000000) bit (1) unaligned based; 6 51 6 52 dcl 01 set_array based (xforum_meeting_info.set_array_ptr), 6 53 02 number fixed bin, 6 54 02 spec char (80) varying, 6 55 02 index (100000); 6 56 6 57 dcl SET_ARRAY_SPEC_LEN fixed bin init (80) internal static options (constant); 6 58 6 59 /* END OF: xforum_meeting_info.incl.pl1 * * * * * */ 331 332 7 1 /* START OF: xforum_meeting_list.incl.pl1 * * * * * */ 7 2 7 3 /* 7 4* 84-03-27 Davids: added the forum_version element 7 5* 7 6* 84-05-03 Davids: Changed the length of long_name and short_name from 7 7* 24 characters to 32 characters. Version 2 forum names can be 26 characters 7 8* long (forum suffix) - and a little extra incase version 3 uses a shorter 7 9* suffix yet. 7 10* 7 11* 84-09-24 Davids: Added the date_time, npath, and path elements. 7 12**/ 7 13 7 14 declare 1 xforum_meeting_list aligned 7 15 based (xforum_meeting_list_ptr), 7 16 2 date_time fixed bin (71), 7 17 2 no_selected fixed bin, 7 18 2 no_participant fixed bin, 7 19 2 no_changed fixed bin, 7 20 2 current_selected fixed bin, 7 21 2 current_participant fixed bin, 7 22 2 current_changed fixed bin, 7 23 2 forums (0 refer 7 24 (xforum_meeting_list.no_selected)), 7 25 3 long_name char (32) unaligned, 7 26 3 short_name char (32) unaligned, 7 27 3 directory char (168) unaligned, 7 28 3 forum_version fixed bin, 7 29 3 chairman char (32) unaligned, 7 30 3 uid bit (36) aligned, 7 31 3 flags unaligned, 7 32 4 eligible bit (1), 7 33 4 removed bit (1), 7 34 4 notify bit (1), 7 35 4 participant bit (1), 7 36 4 two_names bit (1), 7 37 4 read_only bit (1), 7 38 4 attended bit (1), 7 39 4 changed bit (1), 7 40 4 been_to bit (1), 7 41 4 mbz bit (27), 7 42 2 npaths fixed bin, 7 43 2 paths (0 refer (xforum_meeting_list.npaths)) 7 44 char (168) varying; 7 45 7 46 /* END OF: xforum_meeting_list.incl.pl1 * * * * * */ 333 334 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 */ 335 336 9 1 /* START OF: xforum_windows.incl.pl1 * * * * * */ 9 2 9 3 /* structures for windows used by xforum - Deryk Barker January 1984 */ 9 4 9 5 dcl 1 xforum_windows aligned external static, 9 6 2 (status, menu, bottom, orig_user_io, help_line) aligned like xforum_window_info; 9 7 9 8 dcl 1 xforum_window_info, 9 9 2 iocb ptr, 9 10 2 position aligned like window_position_info; 9 11 10 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 10 2 /* format: style3 */ 10 3 10 4 /* Modified 26 January 1982 by William York to add the set_more_handler 10 5* and reset_more_handler control orders. */ 10 6 /* Modified October 1982 by WMY to add set and get_token_characters, 10 7* set and get_more_prompt. */ 10 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 10 9* structure. */ 10 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 10 11* partial screen width windows. */ 10 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 10 13* This should be removed when window_info.incl.pl1 is created. */ 10 14 /* Modified 29 February 1984 by Barmar to add version 1 10 15* get_editor_key_bindings_info. */ 10 16 /* Modified 1 March 1984 by Barmar to add version 1 10 17* set_editor_key_bindings_info. */ 10 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 10 19* line_editor_key_bindings_info, which includes the name, description, and 10 20* info path */ 10 21 10 22 /* structure for the set_window_info and get_window_info 10 23* control orders. */ 10 24 10 25 dcl 1 window_position_info 10 26 based (window_position_info_ptr), 10 27 2 version fixed bin, 10 28 2 origin, 10 29 3 column fixed bin, 10 30 3 line fixed bin, 10 31 2 extent, 10 32 3 width fixed bin, 10 33 3 height fixed bin; 10 34 10 35 dcl (window_position_info_version, window_position_info_version_1) 10 36 fixed bin internal static init (1) options (constant); 10 37 dcl window_position_info_ptr 10 38 pointer; 10 39 10 40 /* structure for the set_window_status and get_window_status 10 41* control orders */ 10 42 10 43 declare window_status_info_ptr 10 44 pointer; 10 45 declare 1 window_status_info 10 46 aligned based (window_status_info_ptr), 10 47 2 version fixed bin, 10 48 2 status_string bit (36) aligned; /* string (window_status) */ 10 49 /* see window_status.incl.pl1 for the contents of this string */ 10 50 10 51 10 52 declare (window_status_version, window_status_version_1) 10 53 fixed bin internal static init (1) options (constant); 10 54 10 55 /* info structure for the set_more_responses and get_more_responses control 10 56* orders */ 10 57 10 58 10 59 dcl 1 more_responses_info 10 60 aligned based (more_responses_info_ptr), 10 61 2 version fixed bin, 10 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 10 63 2 n_noes fixed bin, 10 64 2 yeses char (32) unaligned, 10 65 2 noes char (32) unaligned; 10 66 10 67 dcl (more_responses_info_version_1, more_responses_version) 10 68 fixed bin internal static init (1) options (constant); 10 69 dcl more_responses_info_ptr 10 70 pointer; 10 71 10 72 /* structure for the set_break_table and get_break_table 10 73* control orders */ 10 74 10 75 declare break_table_ptr pointer; 10 76 declare 1 break_table_info aligned based (break_table_ptr), 10 77 2 version fixed bin, 10 78 2 breaks (0:127) bit (1) unaligned; 10 79 10 80 declare (break_table_info_version, break_table_info_version_1) 10 81 fixed bin init (1) internal static options (constant); 10 82 10 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 10 84 2 version fixed bin, 10 85 2 flags unaligned, 10 86 3 old_handler_valid 10 87 bit(1), 10 88 3 pad bit(35), 10 89 2 more_handler entry (pointer, bit(1) aligned), 10 90 2 old_more_handler entry (pointer, bit(1) aligned); 10 91 10 92 declare more_handler_info_ptr pointer; 10 93 10 94 declare (more_handler_info_version, more_handler_info_version_3) 10 95 fixed bin internal static options (constant) init (3); 10 96 10 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 10 98 2 version char(8), 10 99 2 token_character_count 10 100 fixed bin, 10 101 2 token_characters 10 102 char (128) unaligned; 10 103 10 104 declare token_characters_info_ptr pointer; 10 105 10 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 10 107 10 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 10 109 2 version char(8), 10 110 2 more_prompt char(80); 10 111 10 112 declare more_prompt_info_ptr pointer; 10 113 10 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 10 115 10 116 /* Line editor stuff ... */ 10 117 10 118 dcl line_editor_key_binding_info_ptr 10 119 pointer; 10 120 10 121 dcl line_editor_binding_count 10 122 fixed bin; 10 123 dcl line_editor_longest_sequence 10 124 fixed bin; 10 125 /* For each binding, action defines what to do for that sequence. Constants 10 126* are defined in window_editor_values.incl.pl1. Only if action is set to 10 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 10 128 10 129 dcl 1 line_editor_key_binding_info 10 130 aligned based (line_editor_key_binding_info_ptr), 10 131 2 version char(8), 10 132 2 binding_count fixed bin, 10 133 2 longest_sequence fixed bin, 10 134 2 bindings (line_editor_binding_count refer 10 135 (line_editor_key_binding_info.binding_count)), 10 136 3 sequence char(line_editor_longest_sequence refer 10 137 (line_editor_key_binding_info.longest_sequence)) varying, 10 138 3 action fixed bin, 10 139 3 numarg_action fixed binary, 10 140 3 editor_routine entry (pointer, fixed bin(35)), 10 141 3 name char (64) varying unaligned, 10 142 3 description char (256) varying unaligned, 10 143 3 info_path unaligned, 10 144 4 info_dir char (168), 10 145 4 info_entry char (32); 10 146 10 147 10 148 dcl line_editor_key_binding_info_version_3 10 149 char(8) static options (constant) init ("lekbi003"); 10 150 10 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 10 152 2 version char (8), 10 153 2 flags, 10 154 3 entire_state bit (1) unaligned, 10 155 3 mbz bit (35) unaligned, 10 156 2 key_binding_info_ptr ptr, 10 157 2 entire_state_ptr ptr; 10 158 10 159 dcl get_editor_key_bindings_info_ptr ptr; 10 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 10 161 10 162 dcl 1 set_editor_key_bindings_info aligned 10 163 based (set_editor_key_bindings_info_ptr), 10 164 2 version char (8), 10 165 2 flags, 10 166 3 replace bit (1) unaligned, 10 167 3 update bit (1) unaligned, 10 168 3 mbz bit (34) unaligned, 10 169 2 key_binding_info_ptr ptr; 10 170 10 171 dcl set_editor_key_bindings_info_ptr ptr; 10 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 10 173 10 174 /* This should be moved to window_info.incl.pl1 when that include file is 10 175* created. JR 2/1/84 */ 10 176 10 177 dcl 1 window_edit_line_info 10 178 based (window_edit_line_info_ptr), 10 179 2 version char (8), 10 180 2 line_ptr ptr, 10 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 10 182 10 183 dcl window_edit_line_info_version_1 10 184 char (8) static options (constant) init ("wedl0001"); 10 185 10 186 dcl window_edit_line_info_ptr 10 187 ptr; 10 188 10 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 9 12 9 13 9 14 /* END OF: xforum_windows.incl.pl1 * * * * * */ 337 338 11 1 /* BEGIN INCLUDE FILE xforum_prompts.incl.pl1 */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(87-04-13,LJAdams), approve(87-07-24,MCR7684), 11 6* audit(87-07-24,Blair), install(87-08-06,MR12.1-1065): 11 7* Created. 11 8* END HISTORY COMMENTS */ 11 9 11 10 dcl (BREAK_PROMPT char (34) init ("Press BREAK to return to the menu."), 11 11 COMMENTS_PROMPT char (40) init ("Which comment(s) do you wish to select? "), 11 12 COMMENT_PROMPT char (37) init ("Which comment do you wish to select? "), 11 13 FILE_PROMPT char (28) init ("Enter the name of the file: "), 11 14 FIRST_PROMPT char (80) init ("Enter the command and press RETURN (to return to Xforum just press RETURN):"), 11 15 RETURN_PROMPT char (46) init (" Press to continue"), 11 16 TEXT_PROMPT char (31) init ("Enter text to be searched for: ")) 11 17 internal static options (constant); 11 18 11 19 11 20 /* END INCLUDE FILE xforum_prompts.incl.pl1 */ 340 12 1 /* BEGIN INCLUDE FILE xforum_answers.incl.pl1 */ 12 2 12 3 12 4 /****^ HISTORY COMMENTS: 12 5* 1) change(87-04-13,LJAdams), approve(87-04-30,MCR7684), 12 6* audit(87-07-30,Blair), install(87-08-06,MR12.1-1065): 12 7* Created. 12 8* END HISTORY COMMENTS */ 12 9 12 10 dcl 1 answer_array, 12 11 2 N fixed bin, /* Number of acceptable answers; 0 = all */ 12 12 2 max_length fixed bin, /* max length user reply can be */ 12 13 2 answer (10) char (80) varying; 12 14 12 15 12 16 dcl ZERO fixed bin internal static options (constant) init (0), 12 17 ONE fixed bin internal static options (constant) init (1), 12 18 FOUR fixed bin internal static options (constant) init (4); 12 19 12 20 12 21 /* END INCLUDE FILE xforum_answers .incl.pl1 */ 341 342 13 1 /* BEGIN INCLUDE FILE xforum_help_infos.incl.pl1 */ 13 2 13 3 13 4 /****^ HISTORY COMMENTS: 13 5* 1) change(87-04-13,LJAdams), approve(87-07-24,MCR7684), 13 6* audit(87-07-24,Blair), install(87-08-06,MR12.1-1065): 13 7* Created. 13 8* END HISTORY COMMENTS */ 13 9 13 10 dcl (GETTING_STARTED_HELP char (27) init ("xforum_getting_started.info"), 13 11 PROMPT_HELP char (18) init ("xforum_prompt"), 13 12 FUNCTION_KEY_HELP char (25) init ("xforum_function_keys.info"), 13 13 MENU_OPTION_HELP char (23) init ("xforum_menu_option.info")) 13 14 internal static options (constant); 13 15 13 16 13 17 /* END INCLUDE FILE xforum_help_infos.incl.pl1 */ 343 344 345 346 call error (0, "Internal programming error - xforum_attend_mtg_utilities$xforum_attend_mtg_utilities called."); 347 348 set_up_meeting: entry (sum_xforum_meeting_list_ptr, sum_xforum_meeting_info_ptr, sum_midx, sum_subject_oriented, 349 sum_fidx, sum_subject, sum_chairman_msg); 350 351 /* PARAMETERS */ 352 353 dcl sum_xforum_meeting_list_ptr ptr; /* (input) pointer to meeting_list structure */ 354 dcl sum_xforum_meeting_info_ptr ptr; /* (input) pointer to meeting_info structure */ 355 dcl sum_midx fixed bin; /* (input) index of meeting in meeting_list */ 356 dcl sum_subject_oriented bit (1) aligned; /* (input) "1"b => subject oriented attending menu in use */ 357 dcl sum_fidx fixed bin; /* (output) meeting index used by forum, 0 => meeting not opened */ 358 dcl sum_subject char (256); /* (output) subject of current comment chain */ 359 dcl sum_chairman_msg char (256); /* (output) chairs msg. "" => no message or no need to print message */ 360 361 /* INTERNAL AUTOMATIC */ 362 363 dcl sum_code fixed bin (35); /* standard error code */ 364 dcl sum_i fixed bin; /* loop index */ 365 dcl sum_old_info_still_good bit (1) aligned; /* "1"b implies that data in meeting_info structure still valid */ 366 dcl sum_seen_map_ptr ptr; /* pointer to the seen_map string */ 367 dcl sum_set_array_ptr ptr; /* pointer to the set_array structure */ 368 369 xforum_meeting_list_ptr = sum_xforum_meeting_list_ptr; 370 xforum_meeting_info_ptr = sum_xforum_meeting_info_ptr; 371 sum_fidx = 0; 372 sum_subject = ""; 373 sum_chairman_msg = ""; 374 375 376 if xforum_meeting_info.lidx = sum_midx & xforum_meeting_info.name = forums (sum_midx).long_name 377 then sum_old_info_still_good = "1"b; 378 else sum_old_info_still_good = "0"b; 379 380 if ^sum_old_info_still_good 381 then do; 382 sum_seen_map_ptr = xforum_meeting_info.seen_map_ptr; /* zero everything */ 383 sum_set_array_ptr = xforum_meeting_info.set_array_ptr; /* but the seen_map_ptr */ 384 unspec (xforum_meeting_info) = "0"b; /* and the set_array_ptr */ 385 xforum_meeting_info.seen_map_ptr = sum_seen_map_ptr; 386 xforum_meeting_info.set_array_ptr = sum_set_array_ptr; 387 xforum_meeting_info.name = forums (sum_midx).long_name; 388 end; 389 390 if forums (sum_midx).forum_version = 1 then 391 call forum_$open_forum (forums (sum_midx).directory, 392 rtrim (forums (sum_midx).long_name) || ".control", sum_fidx, sum_code); 393 else call forum_$open_forum (forums (sum_midx).directory, 394 rtrim (forums (sum_midx).long_name) || ".forum", sum_fidx, sum_code); 395 if sum_code ^= 0 396 then do; 397 call ioa_ ("The ^a meeting^/has been deleted or renamed since your meeting list was created.", 398 xforum_meeting_list.forums (sum_midx).long_name); 399 call ioa_ ("To update your meeting list exit Executive Forum^/and reinvoke it with the -force control argument."); 400 if xforum_meeting_list.forums (sum_midx).participant 401 then do; 402 xforum_meeting_list.forums (sum_midx).participant = "0"b; 403 no_participant = no_participant - 1; 404 end; 405 if xforum_meeting_list.forums (sum_midx).changed 406 then do; 407 xforum_meeting_list.forums (sum_midx).changed = "0"b; 408 no_changed = no_changed - 1; 409 end; 410 call timer_manager_$sleep (4, "11"b); 411 goto exit_set_up_meeting; 412 end; 413 414 forums (sum_midx).been_to = xamu_ON; /* remember where you've been */ 415 416 call forum_$forum_limits (sum_fidx, ONLY_UNDELETED, 417 xforum_meeting_info.last_seen, xforum_meeting_info.first_trans, 418 xforum_meeting_info.last_trans, xforum_meeting_info.new_trans, 419 forum_flags_word, sum_code); 420 if sum_code ^= 0 then do; 421 call com_err_$suppress_name (sum_code, xamu_ME, 422 "Getting forum_limits for ^a.", xforum_meeting_info.name); 423 goto exit_set_up_meeting; 424 end; 425 426 if ^forums (sum_midx).participant /* keep tables up to date */ 427 then do; 428 forums (sum_midx).participant = xamu_ON; 429 forums (sum_midx).removed = xamu_OFF; 430 no_participant = no_participant + 1; 431 if xforum_meeting_info.last_seen < xforum_meeting_info.last_trans 432 then do; 433 forums (sum_midx).changed = xamu_ON; 434 no_changed = no_changed + 1; 435 end; 436 end; 437 438 if forums (sum_midx).forum_version = 2 439 then do; 440 call forum_$get_transaction_map_idx (sum_fidx, "", xforum_meeting_info.seen_map_ptr -> seen_map_string, sum_code); 441 if sum_code ^= 0 442 then do; 443 call com_err_$suppress_name (sum_code, "", "Could not get seen transaction map."); 444 return; 445 end; 446 xforum_meeting_info.next_unread = -1; 447 xforum_meeting_info.unread_count = 0; 448 do sum_i = 1 to xforum_meeting_info.last_trans; 449 if ^xforum_meeting_info.seen_map_ptr -> seen_map (sum_i) 450 then do; 451 xforum_meeting_info.unread_count = xforum_meeting_info.unread_count + 1; 452 if xforum_meeting_info.next_unread = -1 453 then xforum_meeting_info.next_unread = sum_i; 454 end; 455 end; 456 end; 457 else do; 458 do sum_i = 1 to xforum_meeting_info.last_seen; 459 xforum_meeting_info.seen_map_ptr -> seen_map (sum_i) = "1"b; 460 end; 461 do sum_i = xforum_meeting_info.last_seen + 1 to xforum_meeting_info.last_trans; 462 xforum_meeting_info.seen_map_ptr -> seen_map (sum_i) = "0"b; 463 end; 464 xforum_meeting_info.next_unread = xforum_meeting_info.last_seen + 1; 465 xforum_meeting_info.unread_count = xforum_meeting_info.last_trans - xforum_meeting_info.last_seen; 466 end; 467 468 xforum_meeting_info.lidx = sum_midx; 469 /* note which one we are */ 470 471 xforum_meeting_info.idx = sum_fidx; 472 473 if sum_old_info_still_good 474 then do; 475 if sum_subject_oriented & string (xforum_meeting_info.flags) ^= "0"b 476 then do; 477 if xforum_meeting_info.flags.all | xforum_meeting_info.flags.new 478 then xforum_meeting_info.current = xforum_meeting_info.last_seen; 479 else 480 if xforum_meeting_info.flags.range 481 then xforum_meeting_info.current = xforum_meeting_info.high; 482 else 483 if xforum_meeting_info.flags.set 484 then do; 485 sum_i = xforum_meeting_info.set_array_ptr -> set_array.number; 486 xforum_meeting_info.current = xforum_meeting_info.set_array_ptr -> set_array.index (sum_i); 487 end; 488 else 489 if xforum_meeting_info.flags.allref 490 then xforum_meeting_info.current = xforum_meeting_info.current_ref; 491 unspec (xforum_meeting_info.flags) = "0"b; 492 end; 493 end; 494 else xforum_meeting_info.current = xforum_meeting_info.last_seen; 495 496 if xforum_meeting_info.current = 0 497 then do; 498 xforum_meeting_info.current = 1; 499 500 call forum_$get_message (sum_fidx, sum_chairman_msg, sum_code); 501 if sum_code ^= 0 502 then sum_chairman_msg = ""; 503 end; 504 505 if xforum_meeting_info.current ^= 0 506 then do; 507 call xforum_trans_$read (xforum_meeting_info.current, forum_user_trans_ptr, sum_code); 508 if sum_code ^= 0 509 then do; 510 call xforum_trans_$first_trans (forum_user_trans_ptr, sum_code); 511 xforum_meeting_info.current = forum_user_trans.trans_no; 512 end; 513 514 if sum_code = 0 515 then do; 516 if forum_user_trans.subject_length <= length(sum_subject) 517 then sum_subject = forum_user_trans.subject; 518 else sum_subject = substr (forum_user_trans.subject, 1, length(sum_subject)); 519 free forum_user_trans; 520 end; 521 else do; 522 call ioa_ ("A programming error has occured.^/ The comments in this meeting cannot be read."); 523 call timer_manager_$sleep (4, "11"b); 524 goto exit_set_up_meeting; 525 end; 526 end; 527 528 exit_set_up_meeting: 529 return; 530 531 copy_to_name: entry (ctn_spy_ptr, ctn_name, ctn_seg_ptr, ctn_bc); 532 533 /* PARAMETERS */ 534 535 dcl ctn_spy_ptr ptr; /* (input) pointer to the spy structure */ 536 dcl ctn_name char (32); /* (output) name of segment */ 537 dcl ctn_seg_ptr ptr; /* (output) pointer to segment */ 538 dcl ctn_bc fixed bin (24); /* (output) bit count of segment */ 539 540 /* INTERNAL AUTOMATIC */ 541 542 dcl ctn_code fixed bin (35); /* standard error code */ 543 dcl ctn_dir_name char (168); /* path of the dir containing the requested seg */ 544 dcl ctn_entry_name char (32); /* name of the segment */ 545 dcl ctn_reply char (200); /* buffer for user to enter reply */ 546 /* extra long because we don't know what he will type */ 547 dcl ctn_unused_b1 bit (1) aligned; /* unused output from called entry */ 548 549 dcl reply char (200) var; 550 551 /* EXTERNAL ENTRY */ 552 553 dcl error_table_$long_record 554 fixed bin(35) ext static; 555 556 557 answer_array.N = 0; /* all answers acceptable */ 558 answer_array.max_length = length(ctn_dir_name); /* max length of file name is 168 */ 559 560 spy_ptr = ctn_spy_ptr; 561 ctn_name = ""; 562 ctn_seg_ptr = null (); 563 ctn_bc = 0; 564 565 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 566 567 call xforum_help_line_$push ("0"b, "", "", xamu_QUERY_USAGE); 568 569 on quit 570 begin; 571 call xforum_window_mgr$check_window_status; 572 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 573 call collect_spy_data (SPY_AT_15, "QUIT"); 574 ctn_name = ""; 575 ctn_seg_ptr = null (); 576 ctn_bc = 0; 577 goto exit_copy_to_name; 578 end; 579 580 ctn_code = 1; 581 do while (ctn_code ^= 0); 582 ctn_code = 0; 583 call xforum_get_str_ ((FILE_PROMPT), addr(answer_array), PROMPT_HELP, "file_name", reply, ctn_code); 584 585 if ctn_code = error_table_$long_record 586 then do; 587 call ioa_ ("File name must be less than ^i characters.^/", answer_array.max_length); 588 ctn_code = 1; 589 end; 590 ctn_reply = substr (reply, 1, length(reply)); 591 /* strip off new line char */ 592 593 if rtrim (ctn_reply) = "" 594 then do; 595 call com_err_$suppress_name (0, "", "^/A file name must be entered. To return to the menu press BREAK.^/"); 596 ctn_code = 1; 597 end; 598 else if ctn_reply = "??" 599 then do; 600 call collect_spy_data (SPY_AT_15, "??"); 601 call ioa_ ("A menu of all possible file names cannot be constructed.^/"); 602 ctn_code = 1; 603 end; 604 else do; 605 call expand_pathname_ (ctn_reply, ctn_dir_name, ctn_entry_name, ctn_code); 606 if ctn_code = 0 607 then ctn_name = ctn_entry_name; 608 else do; 609 call collect_spy_data (SPY_AT_15, "invalid"); 610 call com_err_$suppress_name (ctn_code, "", "^a is not a valid file name.", ctn_reply); 611 end; 612 end; 613 end; 614 615 if (index (ctn_reply, ">") > 0) | (index (ctn_reply, "<") > 0) 616 then call collect_spy_data (SPY_AT_15, "pathname"); 617 else call collect_spy_data (SPY_AT_15, "name"); 618 619 call initiate_file_$create (ctn_dir_name, ctn_entry_name, RW_ACCESS, ctn_seg_ptr, ctn_unused_b1, ctn_bc, ctn_code); 620 if ctn_code ^= 0 621 then do; 622 call com_err_$suppress_name (ctn_code, xamu_ME, 623 "Could not find or create the file ^a>^a.", ctn_dir_name, ctn_entry_name); 624 call timer_manager_$sleep (3, "11"b); 625 ctn_name = ""; 626 ctn_seg_ptr = null (); 627 ctn_bc = 0; 628 end; 629 630 exit_copy_to_name: 631 call xforum_help_line_$pop; 632 633 return; 634 635 next_unread_comment: entry (nuc_xforum_meeting_info_ptr, nuc_fidx, nuc_version, nuc_forum_user_trans_ptr); 636 637 /* PARAMETERS */ 638 639 dcl nuc_xforum_meeting_info_ptr ptr; /* (input) pointer to meeting_info structure */ 640 dcl nuc_fidx fixed bin; /* (input) index forum uses to ID meeting */ 641 dcl nuc_version fixed bin; /* (input) version of forum meeting */ 642 dcl nuc_forum_user_trans_ptr ptr; /* (output) pointer to next unread comment or null */ 643 644 /* INTERNAL AUTOMATIC */ 645 646 dcl nuc_code fixed bin (35); /* standard error code */ 647 dcl nuc_found bit (1); /* "1" imples that an unread comment was found */ 648 dcl nuc_i fixed bin; /* loop index */ 649 dcl nuc_old_current fixed bin; /* IDs the current comment before the search begins */ 650 dcl nuc_old_flags bit (6) unaligned; /* IDs the current comment before the search begins */ 651 652 xforum_meeting_info_ptr = nuc_xforum_meeting_info_ptr; 653 nuc_forum_user_trans_ptr = null (); 654 nuc_found = "0"b; 655 nuc_old_current = xforum_meeting_info.current; 656 nuc_old_flags = string (xforum_meeting_info.flags); 657 658 on quit 659 begin; 660 xforum_meeting_info.current = nuc_old_current; 661 unspec (xforum_meeting_info.flags) = nuc_old_flags; 662 call xforum_get_selected_trans$first (xforum_meeting_info_ptr, forum_user_trans_ptr, nuc_code); 663 if nuc_code = 0 664 then nuc_forum_user_trans_ptr = forum_user_trans_ptr; 665 else nuc_forum_user_trans_ptr = null (); 666 goto exit_next_unread_comment; 667 end; 668 669 do while (xforum_meeting_info.next_unread ^= -1 & ^nuc_found); 670 xforum_meeting_info.current = xforum_meeting_info.next_unread; 671 672 call xforum_trans_$read (xforum_meeting_info.current, forum_user_trans_ptr, nuc_code); 673 if nuc_code = forum_error_table_$trans_deleted | 674 nuc_code = forum_error_table_$trans_reaped 675 then do; 676 xforum_meeting_info.seen_map_ptr -> seen_map (xforum_meeting_info.current) = "1"b; 677 xforum_meeting_info.unread_count = xforum_meeting_info.unread_count - 1; 678 if nuc_version = 2 679 then call forum_$set_seen_switch (nuc_fidx, "", xforum_meeting_info.current, xamu_ON, nuc_code); 680 xforum_meeting_info.next_unread = -1; 681 do nuc_i = xforum_meeting_info.current + 1 to xforum_meeting_info.last_trans while (xforum_meeting_info.next_unread = -1); 682 if ^xforum_meeting_info.seen_map_ptr -> seen_map (nuc_i) 683 then xforum_meeting_info.next_unread = nuc_i; 684 end; 685 end; 686 else 687 if nuc_code ^= 0 688 then do; 689 call ioa_ ("Comment #^i has not yet been read but cannot be obtained,", xforum_meeting_info.current); 690 call ioa_ ("will find the next unread comment."); 691 call timer_manager_$sleep (3, "11"b); 692 xforum_meeting_info.next_unread = -1; 693 do nuc_i = xforum_meeting_info.current + 1 to xforum_meeting_info.last_trans while (xforum_meeting_info.next_unread = -1); 694 if ^xforum_meeting_info.seen_map_ptr -> seen_map (nuc_i) 695 then xforum_meeting_info.next_unread = nuc_i; 696 end; 697 end; 698 else nuc_found = "1"b; /* get out of the loop */ 699 end; 700 701 if nuc_found 702 then nuc_forum_user_trans_ptr = forum_user_trans_ptr; 703 704 exit_next_unread_comment: 705 return; 706 707 update_status: entry (us_xforum_meeting_info_ptr, us_trans_no, us_subject, us_version, us_fidx); 708 709 /* PARAMETERS */ 710 711 dcl us_xforum_meeting_info_ptr ptr; /* (input) pointer to meeting_info structure */ 712 dcl us_trans_no fixed bin; /* (input) index of current comment, 0 implies no current comment */ 713 dcl us_subject char (*); /* (input) subject of current comment, used for subject oriented menu */ 714 dcl us_version fixed bin; /* (input) version of forum meeting */ 715 dcl us_fidx fixed bin; /* (input) index forum uses to ID meeting */ 716 717 /* INTERNAL AUTOMATIC */ 718 719 dcl us_code fixed bin (35); /* standard error code */ 720 dcl us_current_text char (80); /* middle part of second line of status window for attending menu */ 721 dcl us_i fixed bin; /* loop index */ 722 dcl us_last_trans fixed bin; /* index of last comment in meeting */ 723 dcl us_new_text char (12); /* last part of second line of status window for attending menu */ 724 dcl us_total_text char (11); /* first part of second line of status window for attending menu */ 725 dcl us_unused_b36 bit (36) aligned; /* unused output from system call */ 726 727 xforum_meeting_info_ptr = us_xforum_meeting_info_ptr; 728 729 if us_trans_no ^= 0 730 then do; 731 if us_version = 2 732 then call forum_$set_seen_switch (us_fidx, "", us_trans_no, xamu_ON, us_code); 733 734 if (us_version = 1) & (us_trans_no > xforum_meeting_info.last_seen) 735 then call forum_$set_last_seen_idx (us_fidx, us_trans_no, xamu_ON, us_code); 736 737 if ^xforum_meeting_info.seen_map_ptr -> seen_map (us_trans_no) 738 then do; 739 xforum_meeting_info.seen_map_ptr -> seen_map (us_trans_no) = "1"b; 740 xforum_meeting_info.unread_count = xforum_meeting_info.unread_count - 1; 741 if xforum_meeting_info.next_unread = us_trans_no 742 then do; 743 xforum_meeting_info.next_unread = -1; 744 do us_i = us_trans_no + 1 to xforum_meeting_info.last_trans while (xforum_meeting_info.next_unread = -1); 745 if ^xforum_meeting_info.seen_map_ptr -> seen_map (us_i) 746 then xforum_meeting_info.next_unread = us_i; 747 end; 748 end; 749 end; 750 end; 751 752 call forum_$forum_limits (us_fidx, ONLY_UNDELETED, 753 xforum_meeting_info.last_seen, 754 xforum_meeting_info.first_trans, 755 us_last_trans, 756 xforum_meeting_info.new_trans, us_unused_b36, us_code); 757 758 if us_last_trans > xforum_meeting_info.last_trans 759 then do; 760 do us_i = xforum_meeting_info.last_trans + 1 to us_last_trans; 761 xforum_meeting_info.seen_map_ptr -> seen_map (us_i) = "0"b; 762 xforum_meeting_info.unread_count = xforum_meeting_info.unread_count + 1; 763 end; 764 if xforum_meeting_info.next_unread = -1 765 then xforum_meeting_info.next_unread = xforum_meeting_info.last_trans + 1; 766 xforum_meeting_info.last_trans = us_last_trans; 767 end; 768 769 call ioa_$rsnnl ("Total: ^d", us_total_text, (0), xforum_meeting_info.last_trans); 770 771 call ioa_$rsnnl ("Unread: ^d", us_new_text, (0), xforum_meeting_info.unread_count); 772 773 if us_subject ^= "" 774 then do; 775 if index (us_subject, "Re: ") ^= 1 776 then call ioa_$rsnnl ("Current Subject: ^a", us_current_text, (0), us_subject); 777 else call ioa_$rsnnl ("Current Subject: ^a", us_current_text, (0), substr (us_subject, 5)); 778 end; 779 else do; 780 if xforum_meeting_info.flags.set 781 then us_current_text = "Current comment(s): " || set_array.spec; 782 else call ioa_$rsnnl ( 783 "Current comment(s): ^[^[all^]^[aref^]^[new^]^[^d:^d^s^]^;^s^s^s^s^s^s^d^]", 784 us_current_text, (0), 785 unspec (xforum_meeting_info.flags ^= "0"b), 786 xforum_meeting_info.flags.all, 787 xforum_meeting_info.flags.allref, 788 xforum_meeting_info.flags.new, 789 xforum_meeting_info.flags.range, xforum_meeting_info.low, 790 xforum_meeting_info.high, xforum_meeting_info.current); 791 end; 792 793 794 call xforum_help_line_$change ("10110000"b, "Leave Meeting", "", ""); 795 call xforum_status_$update_total (us_total_text); 796 call xforum_status_$update_new (us_new_text); 797 call xforum_status_$update_current (us_current_text); 798 call xforum_status_$redisplay ((0)); 799 800 return; 801 802 close_meeting: entry (cm_xforum_meeting_info_ptr, cm_xforum_meeting_list_ptr, cm_midx, cm_fidx, cm_menu_ptr); 803 804 /* PARAMETERS */ 805 806 dcl cm_xforum_meeting_info_ptr ptr; /* (input) pointer to meeting_info structure */ 807 dcl cm_xforum_meeting_list_ptr ptr; /* (input) pointer to meeting_list structure */ 808 dcl cm_midx fixed bin; /* (index) index of meeting in the meeting list */ 809 dcl cm_fidx fixed bin; /* (index) index forum uses to ID meeting */ 810 dcl cm_menu_ptr ptr; /* (input) pointer to the attend meeting menu */ 811 812 813 814 815 816 817 xforum_meeting_info_ptr = cm_xforum_meeting_info_ptr; 818 xforum_meeting_list_ptr = cm_xforum_meeting_list_ptr; 819 820 821 call forum_$close_forum (cm_fidx, (0)); 822 823 if forums (cm_midx).changed 824 then if xforum_meeting_info.new_trans = 0 825 then do; 826 forums (cm_midx).changed = xamu_OFF; 827 no_changed = no_changed - 1; 828 end; 829 830 if cm_menu_ptr ^= null 831 then call menu_$destroy (cm_menu_ptr, (0)); 832 833 cm_fidx = -1; 834 cm_menu_ptr = null (); 835 836 return; 837 838 enter_trans: entry (et_xforum_meeting_info_ptr, et_fidx, et_spy_ptr, et_flavour, et_attend_mtg_type); 839 840 /* PARAMETERS */ 841 842 dcl et_xforum_meeting_info_ptr ptr; /* (input) pointer to meeting_info structure */ 843 dcl et_fidx fixed bin; /* (index) index forum uses to ID meeting */ 844 dcl et_flavour bit (1) aligned; /* (input) "1"b impl;ies reply mode, "0"b is talk mode */ 845 dcl et_spy_ptr ptr; /* (input) /* (input) pointer to spy structure */ 846 dcl et_attend_mtg_type bit (1) aligned; /* (input) "1"b implies subject oriented meeting attendance, */ 847 /* "0"b implies entry order attendance */ 848 849 /* INTERNAL AUTOMATIC */ 850 851 dcl et_bc fixed bin (24); /* bit count of segment containing the just entered comment */ 852 dcl et_chairman_msg char (256); /* chairman msg for the mtg */ 853 dcl et_chars fixed bin (24); /* number of chars in just entered comments */ 854 dcl et_code fixed bin (35); /* standard error code */ 855 dcl et_emacs_flavour char (40); /* tells emacs extension what to do either */ 856 /* talk, reply, if subject oriented includes current comment index */ 857 dcl et_i fixed bin; /* loop index */ 858 dcl et_my_label label; /* needed to determine referencing dir for emacs extension */ 859 dcl et_prefix_len fixed bin; /* length of text string preceeding the subject in the just entered comment */ 860 dcl et_reply_no fixed bin; /* index of comment being replied to */ 861 dcl et_temp_line char (80); /* first line of status window when editing a reply */ 862 dcl et_seg char (et_chars) based (et_trans.trans_seg_ptr); /* just entered comment */ 863 dcl et_sj char (500) varying;/* subject of just enetered comment */ 864 dcl et_str char (510) varying;/* subject of just enetered comment */ 865 /* plus the "Subject: " string and a terminating ESC character */ 866 dcl et_subj_len fixed bin; /* length of the subject */ 867 dcl et_trans_num fixed bin; /* index of just eneterd comment */ 868 dcl et_txt_len fixed bin; /* length of actual comment, i.e. no subject, prefix or ESC */ 869 dcl et_unusedb1 bit (1) aligned; /* unused output from system call */ 870 dcl et_unusedfb24 fixed bin (24); /* unused output from system call */ 871 dcl et_view_seg_bc fixed bin (24); /* bit count of segment containing comment(s) being replied to */ 872 873 dcl 1 et_my_overlay based (addr (et_my_label)), /* used too get referencing dir for emacs extension */ 874 2 my_addr ptr, /* segment i'm part of */ 875 2 my_stack ptr; /* my stack frame */ 876 877 dcl 1 et_trans_seg based (et_trans.trans_seg_ptr), /* structure of segment containing just entered comment */ 878 2 prefix char (et_prefix_len) unal, /* the string "Subject:" */ 879 2 subj char (et_subj_len) unal, /* the text of the subject */ 880 2 esc_char char (1) unal, /* ESC char terminates subject text */ 881 2 new_line char (1) unal, /* new line char */ 882 2 txt char (et_txt_len) unal; /* text of comment */ 883 884 /* INTERNAL STATIC */ 885 886 dcl 01 et_trans internal static, /* need to get these only once per process */ 887 02 process_dir char (168), /* process dir path */ 888 02 ext_dir char (168), /* dir containing emacs extension */ 889 02 ext_seg char (32), /* name of emacs extebsion */ 890 02 ext_ptr ptr, /* pointer to emacs extension */ 891 02 have_trans_seg bit (1) unaligned init ("0"b), /* "1"b implies we have a segment to put new comments in */ 892 02 have_view_seg bit (1) unaligned init ("0"b), /* "1"b implies we have a segment to copy comment(s) being replied intgo */ 893 02 trans_seg_ptr ptr, /* pointer to seg to put just created comment into */ 894 02 view_seg_ptr ptr; /* pointer to put comment(s) being replied into */ 895 896 897 /* CONSTANTS */ 898 899 dcl et_ESC char (1) init ("") internal static options (constant); 900 /* escape character 33 octal used to terminate subject */ 901 dcl MAX_SUBJECT_LENGTH fixed bin internal static options (constant) init (256); 902 903 904 905 spy_ptr = et_spy_ptr; 906 xforum_meeting_info_ptr = et_xforum_meeting_info_ptr; 907 908 on quit 909 begin; 910 call xforum_window_mgr$check_window_status; 911 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 912 call ioa_ ("Comment not entered."); 913 call timer_manager_$sleep (3, "11"b); 914 goto exit_enter_trans; 915 end; 916 917 if et_flavour = xamu_REPLY 918 then do; 919 call xforum_trans_$read (xforum_meeting_info.current, 920 forum_user_trans_ptr, et_code); 921 if et_code ^= 0 922 then do; 923 call com_err_$suppress_name (et_code, xamu_ME, "Could not read the comment you want to reply to."); 924 call timer_manager_$sleep (3, "11"b); 925 goto exit_enter_trans; 926 end; 927 if et_attend_mtg_type = xamu_SUBJECT 928 then call ioa_$rsnnl ("Replying on subject ^a in the ^a meeting", et_temp_line, (0), 929 forum_user_trans.subject, xforum_meeting_info.name); 930 else call ioa_$rsnnl ("Replying to comment no. ^d in the ^a meeting", et_temp_line, (0), 931 forum_user_trans.trans_no, xforum_meeting_info.name); 932 call xforum_status_$update_title (et_temp_line); 933 call xforum_status_$redisplay ((0)); 934 call xforum_window_mgr$resynch_windows (-1, "1"b); 935 if et_attend_mtg_type = xamu_SUBJECT 936 then et_temp_line = " ESCl:previous page of comments ESCh:next page of comments"; 937 else call ioa_$rsnnl (" ESCl:previous page of comment ^d ESCh:next page of comment ^d", 938 et_temp_line, (0), forum_user_trans.trans_no, forum_user_trans.trans_no); 939 call xforum_help_line_$change ("0"b, "", "", et_temp_line); 940 if et_attend_mtg_type = xamu_SUBJECT 941 then free forum_user_trans; 942 end; 943 else call xforum_help_line_$change ("0"b, "", "", "Press RETURN:enter subject BREAK:abort entry"); 944 945 if xforum_user_profile$get_remove_menu_while_editing () & et_flavour ^= xamu_REPLY 946 then do; 947 call ioa_$rsnnl ("Entering a new comment in the ^a meeting", 948 et_temp_line, (0), xforum_meeting_info.name); 949 call xforum_status_$update_title (et_temp_line); 950 call xforum_status_$redisplay ((0)); 951 call xforum_window_mgr$resynch_windows (-1, "1"b); 952 end; 953 954 955 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 956 call ioa_ ("Please wait for editor..."); 957 958 if et_flavour = xamu_REPLY & xforum_meeting_info.current = 0 then do; 959 call com_err_$suppress_name (0, xamu_ME, "Invalid current comment specifier for replying to."); 960 call timer_manager_$sleep (3, "11"b); 961 goto exit_enter_trans; 962 end; 963 964 965 if ^et_trans.have_trans_seg then do; 966 call initiate_file_$create (get_pdir_ (), "xforum.trans", RW_ACCESS, 967 et_trans.trans_seg_ptr, et_unusedb1, et_unusedfb24, et_code); 968 if et_trans.trans_seg_ptr = null then do; 969 call com_err_$suppress_name (et_code, xamu_ME, "Cannot get temp segment for comment."); 970 call timer_manager_$sleep (3, "11"b); 971 goto exit_enter_trans; 972 end; 973 974 et_trans.ext_seg = "xforum_emacs_ext_"; 975 et_my_label = here; 976 here: 977 call hcs_$make_ptr (et_my_overlay.my_addr, et_trans.ext_seg, "symbol_table", 978 et_trans.ext_ptr, et_code); 979 if et_code ^= 0 then do; 980 call com_err_$suppress_name (et_code, xamu_ME, "Trying to load emacs extensions."); 981 call timer_manager_$sleep (3, "11"b); 982 goto exit_enter_trans; 983 end; 984 985 call hcs_$fs_get_path_name (et_trans.ext_ptr, et_trans.ext_dir, (0), 986 (et_trans.ext_seg), et_code); 987 if et_code ^= 0 then do; 988 call com_err_$suppress_name (et_code, xamu_ME, "Trying to load emacs extensions."); 989 call timer_manager_$sleep (3, "11"b); 990 goto exit_enter_trans; 991 end; 992 993 et_trans.have_trans_seg = xamu_ON; 994 et_trans.process_dir = get_pdir_ (); 995 end; 996 997 if et_flavour = xamu_REPLY & ^et_trans.have_view_seg then do; 998 call initiate_file_$create (get_pdir_ (), "xforum_view_seg", RW_ACCESS, 999 et_trans.view_seg_ptr, et_unusedb1, et_unusedfb24, et_code); 1000 if et_trans.view_seg_ptr = null then do; 1001 call com_err_$suppress_name (et_code, xamu_ME, "Cannot get temp segment for comment."); 1002 call timer_manager_$sleep (3, "11"b); 1003 goto exit_enter_trans; 1004 end; 1005 1006 et_trans.have_view_seg = xamu_ON; 1007 end; 1008 1009 call hcs_$set_bc_seg (et_trans.trans_seg_ptr, 0, (0)); 1010 1011 if et_flavour = xamu_REPLY 1012 then do; 1013 if et_attend_mtg_type = xamu_SUBJECT 1014 then do; 1015 call ioa_$rsnnl ("reply_by_subject [^i]", et_emacs_flavour, (0), xforum_meeting_info.current); 1016 et_view_seg_bc = 0; 1017 xforum_meeting_info.flags.allref = "1"b; 1018 xforum_meeting_info.current_ref = xforum_meeting_info.current; 1019 call xforum_get_selected_trans$first (xforum_meeting_info_ptr, forum_user_trans_ptr, et_code); 1020 do while (et_code ^= forum_error_table_$invalid_trans_idx); 1021 if et_code = 0 1022 then do; 1023 call xforum_format_$append (forum_user_trans_ptr, et_trans.view_seg_ptr, "1"b, et_view_seg_bc, et_code); 1024 call xforum_get_selected_trans$next (xforum_meeting_info_ptr, forum_user_trans_ptr, et_code); 1025 end; 1026 end; 1027 xforum_meeting_info.flags.allref = "0"b; 1028 end; 1029 else do; 1030 et_emacs_flavour = "reply"; 1031 call xforum_format_$write (forum_user_trans_ptr, 1032 et_trans.view_seg_ptr, et_code); 1033 end; 1034 end; 1035 else et_emacs_flavour = "talk"; 1036 1037 if (et_flavour = xamu_REPLY) then do; 1038 call forum_$get_message (et_fidx, et_chairman_msg, et_code); 1039 if et_code = 0 1040 then call ioa_ (rtrim (et_chairman_msg)); 1041 end; 1042 1043 call emacs_ (xforum_windows.bottom.iocb, 1044 rtrim (et_trans.process_dir) || ">xforum.trans", 1045 rtrim (et_trans.ext_dir) || ">" || rtrim (et_trans.ext_seg), 1046 addr (et_emacs_flavour), et_code); 1047 if et_code ^= 0 then do; 1048 if et_flavour = xamu_REPLY 1049 then call collect_spy_data (SPY_AT_8, "QUIT"); 1050 else call collect_spy_data (SPY_AT_9, "QUIT"); 1051 call ioa_ ("Comment not entered."); 1052 call timer_manager_$sleep (3, "11"b); 1053 et_code = 0; 1054 goto exit_enter_trans; 1055 end; 1056 1057 call initiate_file_ (et_trans.process_dir, "xforum.trans", RW_ACCESS, 1058 et_trans.trans_seg_ptr, et_bc, et_code); 1059 /* get bit count */ 1060 if et_trans.trans_seg_ptr = null 1061 then do; 1062 et_trans.have_trans_seg = xamu_OFF; 1063 call com_err_$suppress_name (et_code, xamu_ME, "Getting bit count of comment."); 1064 call timer_manager_$sleep (3, "11"b); 1065 goto exit_enter_trans; 1066 end; 1067 1068 if et_bc = 0 then do; 1069 call com_err_$suppress_name (0, xamu_ME, "No data in comment."); 1070 call timer_manager_$sleep (3, "11"b); 1071 goto exit_enter_trans; 1072 end; 1073 1074 et_chars = divide (et_bc, 9, 17, 0); 1075 1076 et_str = before (et_seg, et_ESC); 1077 1078 if substr (et_str, 1, 9) ^= "Subject: " then do; 1079 call com_err_$suppress_name (0, xamu_ME, "No subject in comment."); 1080 call timer_manager_$sleep (3, "11"b); 1081 goto exit_enter_trans; 1082 end; 1083 1084 et_sj = after (et_str, "Subject: "); 1085 et_prefix_len = 9; 1086 1087 et_subj_len = length (et_sj); 1088 1089 if et_subj_len > MAX_SUBJECT_LENGTH then do; 1090 call com_err_$suppress_name (0, xamu_ME, "Max subject length (256 chars) exceeded."); 1091 call timer_manager_$sleep (3, "11"b); 1092 goto exit_enter_trans; 1093 end; 1094 1095 et_txt_len = et_chars - (et_prefix_len + et_subj_len + 2); 1096 1097 if et_flavour = xamu_REPLY 1098 then et_reply_no = xforum_meeting_info.current; 1099 else et_reply_no = 0; 1100 1101 call forum_$enter_trans (xforum_meeting_info.idx, et_trans_seg.txt, 1102 et_reply_no, et_trans_seg.subj, xamu_OFF, et_trans_num, et_code); 1103 if et_code ^= 0 then do; 1104 call com_err_$suppress_name (et_code, xamu_ME, "Trying to enter comment."); 1105 call timer_manager_$sleep (3, "11"b); 1106 goto exit_enter_trans; 1107 end; 1108 1109 if et_trans_num > xforum_meeting_info.last_trans + 1 1110 then do; 1111 do et_i = xforum_meeting_info.last_trans + 1 to et_trans_num - 1; 1112 xforum_meeting_info.seen_map_ptr -> seen_map (et_i) = "0"b; 1113 xforum_meeting_info.unread_count = xforum_meeting_info.unread_count + 1; 1114 end; 1115 if xforum_meeting_info.next_unread = -1 1116 then xforum_meeting_info.next_unread = xforum_meeting_info.last_trans + 1; 1117 end; 1118 1119 xforum_meeting_info.seen_map_ptr -> seen_map (et_trans_num) = "1"b; 1120 xforum_meeting_info.last_trans = et_trans_num; 1121 1122 call ioa_ ("Comment ^d entered into the ^a meeting.", et_trans_num, 1123 xforum_meeting_info.name); 1124 call timer_manager_$sleep (3, "11"b); 1125 1126 exit_enter_trans: 1127 return; 1128 1129 collect_spy_data: proc (csd_where, csd_response); 1130 1131 /* PARAMETERS */ 1132 1133 dcl csd_where fixed bin; /* (input) location response was collected */ 1134 dcl csd_response char (*); /* (input) user's response */ 1135 1136 1137 1138 1139 1140 spy.count = spy.count + 1; 1141 spy.choices (count).at = csd_where; 1142 spy.choices (count).choice = csd_response; 1143 1144 return; 1145 1146 end collect_spy_data; 1147 1148 error: proc (e_code, e_message); 1149 1150 /* PARAMETERS */ 1151 1152 dcl e_code fixed bin (35); /* (input) error code associated with the error */ 1153 dcl e_message char (*); /* (input) message to be output to user */ 1154 1155 1156 1157 1158 1159 xamu_xforum_error_info.name = xamu_ME; 1160 xamu_xforum_error_info.entry = ""; 1161 xamu_xforum_error_info.doing = ""; 1162 xamu_xforum_error_info.code = e_code; 1163 xamu_xforum_error_info.reason = e_message; 1164 1165 call signal_ ("xforum_fatal_error", null (), addr (xamu_xforum_error_info), null ()); 1166 1167 end error; 1168 1169 end xforum_attend_mtg_utilities; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/06/87 1014.9 xforum_attend_mtg_utilities.pl1 >special_ldd>install>MR12.1-1065>xforum_attend_mtg_utilities.pl1 321 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 323 2 12/03/84 1241.4 forum_dcls.incl.pl1 >ldd>include>forum_dcls.incl.pl1 325 3 10/31/84 1115.3 forum_flags.incl.pl1 >ldd>include>forum_flags.incl.pl1 327 4 10/31/84 1115.4 forum_user_trans.incl.pl1 >ldd>include>forum_user_trans.incl.pl1 329 5 12/03/84 1241.6 xforum_error_info.incl.pl1 >ldd>include>xforum_error_info.incl.pl1 331 6 04/25/86 0859.6 xforum_meeting_info.incl.pl1 >ldd>include>xforum_meeting_info.incl.pl1 333 7 12/03/84 1241.5 xforum_meeting_list.incl.pl1 >ldd>include>xforum_meeting_list.incl.pl1 335 8 04/25/86 0859.6 xforum_spy.incl.pl1 >ldd>include>xforum_spy.incl.pl1 337 9 12/03/84 1241.6 xforum_windows.incl.pl1 >ldd>include>xforum_windows.incl.pl1 9-12 10 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 339 11 08/06/87 1007.2 xforum_prompts.incl.pl1 >special_ldd>install>MR12.1-1065>xforum_prompts.incl.pl1 341 12 08/06/87 1007.2 xforum_answers.incl.pl1 >special_ldd>install>MR12.1-1065>xforum_answers.incl.pl1 343 13 08/06/87 1007.2 xforum_help_infos.incl.pl1 >special_ldd>install>MR12.1-1065>xforum_help_infos.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. FILE_PROMPT 000005 constant char(28) initial unaligned dcl 11-10 ref 583 MAX_SUBJECT_LENGTH constant fixed bin(17,0) initial dcl 901 ref 1089 N 000131 automatic fixed bin(17,0) level 2 dcl 12-10 set ref 557* ONLY_UNDELETED 000143 constant fixed bin(17,0) initial dcl 4-24 set ref 416* 752* PROMPT_HELP 000000 constant char(18) initial unaligned dcl 13-10 set ref 583* RW_ACCESS 000015 constant bit(3) initial unaligned dcl 1-11 set ref 619* 966* 998* 1057* SPY_AT_15 000014 constant fixed bin(17,0) initial dcl 8-57 set ref 573* 600* 609* 615* 617* SPY_AT_8 000153 constant fixed bin(17,0) initial dcl 8-43 set ref 1048* SPY_AT_9 000157 constant fixed bin(17,0) initial dcl 8-45 set ref 1050* SPY_VERSION_1 000120 automatic char(8) initial unaligned dcl 8-27 set ref 8-27* addr builtin function dcl 302 ref 583 583 976 1043 1043 1165 1165 after builtin function dcl 302 ref 1084 all 17 based bit(1) level 3 packed unaligned dcl 6-24 set ref 477 782* allref 17(01) based bit(1) level 3 packed unaligned dcl 6-24 set ref 488 782* 1017* 1027* answer_array 000131 automatic structure level 1 unaligned dcl 12-10 set ref 583 583 at 52 based fixed bin(17,0) array level 3 dcl 8-12 set ref 1141* been_to 114(08) based bit(1) array level 4 packed unaligned dcl 7-14 set ref 414* before builtin function dcl 302 ref 1076 bottom 20 000556 external static structure level 2 dcl 9-5 changed 114(07) based bit(1) array level 4 packed unaligned dcl 7-14 set ref 405 407* 433* 823 826* choice 53 based char(10) array level 3 packed unaligned dcl 8-12 set ref 1142* choices 52 based structure array level 2 unaligned dcl 8-12 cm_fidx parameter fixed bin(17,0) dcl 809 set ref 802 821* 833* cm_menu_ptr parameter pointer dcl 810 set ref 802 830 830* 834* cm_midx parameter fixed bin(17,0) dcl 808 ref 802 823 826 cm_xforum_meeting_info_ptr parameter pointer dcl 806 ref 802 817 cm_xforum_meeting_list_ptr parameter pointer dcl 807 ref 802 818 code 51 000010 internal static fixed bin(35,0) level 2 dcl 286 set ref 1162* com_err_$suppress_name 000434 constant entry external dcl 240 ref 421 443 595 610 622 923 959 969 980 988 1001 1063 1069 1079 1090 1104 count 51 based fixed bin(17,0) level 2 dcl 8-12 set ref 1140* 1140 1141 1142 csd_response parameter char unaligned dcl 1134 ref 1129 1142 csd_where parameter fixed bin(17,0) dcl 1133 ref 1129 1141 ctn_bc parameter fixed bin(24,0) dcl 538 set ref 531 563* 576* 619* 627* ctn_code 000464 automatic fixed bin(35,0) dcl 542 set ref 580* 581 582* 583* 585 588* 596* 602* 605* 606 610* 619* 620 622* ctn_dir_name 000465 automatic char(168) unaligned dcl 543 set ref 558 605* 619* 622* ctn_entry_name 000537 automatic char(32) unaligned dcl 544 set ref 605* 606 619* 622* ctn_name parameter char(32) unaligned dcl 536 set ref 531 561* 574* 606* 625* ctn_reply 000547 automatic char(200) unaligned dcl 545 set ref 590* 593 598 605* 610* 615 615 ctn_seg_ptr parameter pointer dcl 537 set ref 531 562* 575* 619* 626* ctn_spy_ptr parameter pointer dcl 535 ref 531 560 ctn_unused_b1 000631 automatic bit(1) dcl 547 set ref 619* current 12 based fixed bin(17,0) level 2 dcl 6-24 set ref 477* 479* 486* 488* 494* 496 498* 505 507* 511* 655 660* 670* 672* 676 678* 681 689* 693 782* 919* 958 1015* 1018 1097 current_ref 20 based fixed bin(17,0) level 2 dcl 6-24 set ref 488 1018* directory 30 based char(168) array level 3 packed unaligned dcl 7-14 set ref 390* 393* divide builtin function dcl 302 ref 1074 doing 20 000010 internal static char(100) level 2 packed unaligned dcl 286 set ref 1161* e_code parameter fixed bin(35,0) dcl 1152 ref 1148 1162 e_message parameter char unaligned dcl 1153 ref 1148 1163 emacs_ 000436 constant entry external dcl 241 ref 1043 entry 10 000010 internal static char(32) level 2 packed unaligned dcl 286 set ref 1160* error_table_$long_record 000560 external static fixed bin(35,0) dcl 553 ref 585 et_ESC constant char(1) initial unaligned dcl 899 ref 1076 et_attend_mtg_type parameter bit(1) dcl 846 ref 838 927 935 940 1013 et_bc 000760 automatic fixed bin(24,0) dcl 851 set ref 1057* 1068 1074 et_chairman_msg 000761 automatic char(256) unaligned dcl 852 set ref 1038* 1039 1039 et_chars 001061 automatic fixed bin(24,0) dcl 853 set ref 1074* 1076 1095 et_code 001062 automatic fixed bin(35,0) dcl 854 set ref 919* 921 923* 966* 969* 976* 979 980* 985* 987 988* 998* 1001* 1019* 1020 1021 1023* 1024* 1031* 1038* 1039 1043* 1047 1053* 1057* 1063* 1101* 1103 1104* et_emacs_flavour 001063 automatic char(40) unaligned dcl 855 set ref 1015* 1030* 1035* 1043 1043 et_fidx parameter fixed bin(17,0) dcl 843 set ref 838 1038* et_flavour parameter bit(1) dcl 844 ref 838 917 945 958 997 1011 1037 1048 1097 et_i 001075 automatic fixed bin(17,0) dcl 857 set ref 1111* 1112* et_my_label 001076 automatic label variable dcl 858 set ref 975* 976 et_my_overlay based structure level 1 unaligned dcl 873 et_prefix_len 001102 automatic fixed bin(17,0) dcl 859 set ref 1085* 1095 1101 1101 et_reply_no 001103 automatic fixed bin(17,0) dcl 860 set ref 1097* 1099* 1101* et_seg based char unaligned dcl 862 ref 1076 et_sj 001130 automatic varying char(500) dcl 863 set ref 1084* 1087 et_spy_ptr parameter pointer dcl 845 ref 838 905 et_str 001326 automatic varying char(510) dcl 864 set ref 1076* 1078 1084 et_subj_len 001527 automatic fixed bin(17,0) dcl 866 set ref 1087* 1089 1095 1101 1101 1101 et_temp_line 001104 automatic char(80) unaligned dcl 861 set ref 927* 930* 932* 935* 937* 939* 947* 949* et_trans 000262 internal static structure level 1 unaligned dcl 886 et_trans_num 001530 automatic fixed bin(17,0) dcl 867 set ref 1101* 1109 1111 1119 1120 1122* et_trans_seg based structure level 1 packed unaligned dcl 877 et_txt_len 001531 automatic fixed bin(17,0) dcl 868 set ref 1095* 1101 1101 et_unusedb1 001532 automatic bit(1) dcl 869 set ref 966* 998* et_unusedfb24 001533 automatic fixed bin(24,0) dcl 870 set ref 966* 998* et_view_seg_bc 001534 automatic fixed bin(24,0) dcl 871 set ref 1016* 1023* et_xforum_meeting_info_ptr parameter pointer dcl 842 ref 838 906 expand_pathname_ 000440 constant entry external dcl 242 ref 605 ext_dir 52 000262 internal static char(168) level 2 packed unaligned dcl 886 set ref 985* 1043 ext_ptr 134 000262 internal static pointer level 2 dcl 886 set ref 976* 985* ext_seg 124 000262 internal static char(32) level 2 packed unaligned dcl 886 set ref 974* 976* 985 1043 first_trans 14 based fixed bin(17,0) level 2 dcl 6-24 set ref 416* 752* flags 17 based structure level 2 in structure "xforum_meeting_info" packed unaligned dcl 6-24 in procedure "xforum_attend_mtg_utilities" set ref 475 491* 656 661* 782 782 flags 114 based structure array level 3 in structure "xforum_meeting_list" packed unaligned dcl 7-14 in procedure "xforum_attend_mtg_utilities" forum_$close_forum 000536 constant entry external dcl 2-3 ref 821 forum_$enter_trans 000540 constant entry external dcl 2-4 ref 1101 forum_$forum_limits 000542 constant entry external dcl 2-9 ref 416 752 forum_$get_message 000544 constant entry external dcl 2-16 ref 500 1038 forum_$get_transaction_map_idx 000546 constant entry external dcl 2-17 ref 440 forum_$open_forum 000550 constant entry external dcl 2-19 ref 390 393 forum_$set_last_seen_idx 000552 constant entry external dcl 2-23 ref 734 forum_$set_seen_switch 000554 constant entry external dcl 2-25 ref 678 731 forum_error_table_$invalid_trans_idx 000426 external static fixed bin(35,0) dcl 234 ref 1020 forum_error_table_$trans_deleted 000430 external static fixed bin(35,0) dcl 235 ref 673 forum_error_table_$trans_reaped 000432 external static fixed bin(35,0) dcl 236 ref 673 forum_flags_word 000112 automatic bit(36) dcl 3-6 set ref 416* forum_user_trans based structure level 1 dcl 4-7 set ref 519 940 forum_user_trans_ptr 000114 automatic pointer dcl 4-5 set ref 507* 510* 511 516 516 518 519 662* 663 672* 701 919* 927 930 937 937 940 1019* 1023* 1024* 1031* forum_version 102 based fixed bin(17,0) array level 3 dcl 7-14 ref 390 438 forums 10 based structure array level 2 dcl 7-14 get_pdir_ 000442 constant entry external dcl 243 ref 966 966 994 998 998 have_trans_seg 136 000262 internal static bit(1) initial level 2 packed unaligned dcl 886 set ref 965 993* 1062* have_view_seg 136(01) 000262 internal static bit(1) initial level 2 packed unaligned dcl 886 set ref 997 1006* hcs_$fs_get_path_name 000444 constant entry external dcl 244 ref 985 hcs_$make_ptr 000446 constant entry external dcl 245 ref 976 hcs_$set_bc_seg 000450 constant entry external dcl 246 ref 1009 high 22 based fixed bin(17,0) level 2 dcl 6-24 set ref 479 782* idx 11 based fixed bin(17,0) level 2 dcl 6-24 set ref 471* 1101* index builtin function dcl 302 in procedure "xforum_attend_mtg_utilities" ref 615 615 775 index 26 based fixed bin(17,0) array level 2 in structure "set_array" dcl 6-52 in procedure "xforum_attend_mtg_utilities" ref 486 initiate_file_ 000452 constant entry external dcl 247 ref 1057 initiate_file_$create 000454 constant entry external dcl 248 ref 619 966 998 ioa_ 000460 constant entry external dcl 250 ref 397 399 522 587 601 689 690 912 956 1039 1051 1122 ioa_$rsnnl 000462 constant entry external dcl 251 ref 769 771 775 777 782 927 930 937 947 1015 iocb 20 000556 external static pointer level 3 dcl 9-5 set ref 565* 572* 911* 955* 1043* last_seen 13 based fixed bin(17,0) level 2 dcl 6-24 set ref 416* 431 458 461 464 465 477 494 734 752* last_trans 15 based fixed bin(17,0) level 2 dcl 6-24 set ref 416* 431 448 461 465 681 693 744 758 760 764 766* 769* 1109 1111 1115 1120* length builtin function dcl 302 ref 516 518 558 590 1087 lidx 10 based fixed bin(17,0) level 2 dcl 6-24 set ref 376 468* long_name 10 based char(32) array level 3 packed unaligned dcl 7-14 set ref 376 387 390 393 397* low 21 based fixed bin(17,0) level 2 dcl 6-24 set ref 782* max_length 1 000131 automatic fixed bin(17,0) level 2 dcl 12-10 set ref 558* 587* menu_$destroy 000464 constant entry external dcl 252 ref 830 my_addr based pointer level 2 dcl 873 set ref 976* name 000010 internal static char(32) level 2 in structure "xamu_xforum_error_info" packed unaligned dcl 286 in procedure "xforum_attend_mtg_utilities" set ref 1159* name based char(32) level 2 in structure "xforum_meeting_info" packed unaligned dcl 6-24 in procedure "xforum_attend_mtg_utilities" set ref 376 387* 421* 927* 930* 947* 1122* new 17(03) based bit(1) level 3 packed unaligned dcl 6-24 set ref 477 782* new_trans 16 based fixed bin(17,0) level 2 dcl 6-24 set ref 416* 752* 823 next_unread 26 based fixed bin(17,0) level 2 dcl 6-24 set ref 446* 452 452* 464* 669 670 680* 681 682* 692* 693 694* 741 743* 744 745* 764 764* 1115 1115* no_changed 4 based fixed bin(17,0) level 2 dcl 7-14 set ref 408* 408 434* 434 827* 827 no_participant 3 based fixed bin(17,0) level 2 dcl 7-14 set ref 403* 403 430* 430 nuc_code 000715 automatic fixed bin(35,0) dcl 646 set ref 662* 663 672* 673 673 678* 686 nuc_fidx parameter fixed bin(17,0) dcl 640 set ref 635 678* nuc_forum_user_trans_ptr parameter pointer dcl 642 set ref 635 653* 663* 665* 701* nuc_found 000716 automatic bit(1) unaligned dcl 647 set ref 654* 669 698* 701 nuc_i 000717 automatic fixed bin(17,0) dcl 648 set ref 681* 682 682* 693* 694 694* nuc_old_current 000720 automatic fixed bin(17,0) dcl 649 set ref 655* 660 nuc_old_flags 000721 automatic bit(6) unaligned dcl 650 set ref 656* 661 nuc_version parameter fixed bin(17,0) dcl 641 ref 635 678 nuc_xforum_meeting_info_ptr parameter pointer dcl 639 ref 635 652 null builtin function dcl 302 ref 562 575 626 653 665 830 834 968 1000 1060 1165 1165 1165 1165 number based fixed bin(17,0) level 2 dcl 6-52 ref 485 participant 114(03) based bit(1) array level 4 packed unaligned dcl 7-14 set ref 400 402* 426 428* process_dir 000262 internal static char(168) level 2 packed unaligned dcl 886 set ref 994* 1043 1057* quit 000100 stack reference condition dcl 276 ref 569 658 908 range 17(04) based bit(1) level 3 packed unaligned dcl 6-24 set ref 479 782* reason 52 000010 internal static char(512) level 2 packed unaligned dcl 286 set ref 1163* removed 114(01) based bit(1) array level 4 packed unaligned dcl 7-14 set ref 429* reply 000632 automatic varying char(200) dcl 549 set ref 583* 590 590 rtrim builtin function dcl 302 ref 390 393 593 1039 1039 1043 1043 1043 seen_map based bit(1) array unaligned dcl 6-50 set ref 449 459* 462* 676* 682 694 737 739* 745 761* 1112* 1119* seen_map_ptr 30 based pointer level 2 dcl 6-24 set ref 382 385* 440 449 459 462 676 682 694 737 739 745 761 1112 1119 seen_map_string based bit(1000000) unaligned dcl 6-49 set ref 440* set 17(05) based bit(1) level 3 packed unaligned dcl 6-24 set ref 482 780 set_array based structure level 1 unaligned dcl 6-52 set_array_ptr 32 based pointer level 2 dcl 6-24 set ref 383 386* 485 486 780 signal_ 000466 constant entry external dcl 253 ref 1165 spec 1 based varying char(80) level 2 dcl 6-52 ref 780 spy based structure level 1 unaligned dcl 8-12 spy_ptr 000116 automatic pointer dcl 8-26 set ref 560* 905* 1140 1140 1141 1141 1142 1142 string builtin function dcl 302 ref 475 656 subj based char level 2 packed unaligned dcl 877 set ref 1101* subject 25 based char level 2 packed unaligned dcl 4-7 set ref 516 518 927* subject_length 22 based fixed bin(21,0) level 2 dcl 4-7 ref 516 516 518 519 927 927 940 substr builtin function dcl 302 ref 518 590 777 777 1078 sum_chairman_msg parameter char(256) unaligned dcl 359 set ref 348 373* 500* 501* sum_code 000455 automatic fixed bin(35,0) dcl 363 set ref 390* 393* 395 416* 420 421* 440* 441 443* 500* 501 507* 508 510* 514 sum_fidx parameter fixed bin(17,0) dcl 357 set ref 348 371* 390* 393* 416* 440* 471 500* sum_i 000456 automatic fixed bin(17,0) dcl 364 set ref 448* 449 452* 458* 459* 461* 462* 485* 486 sum_midx parameter fixed bin(17,0) dcl 355 ref 348 376 376 387 390 390 390 393 393 397 400 402 405 407 414 426 428 429 433 438 468 sum_old_info_still_good 000457 automatic bit(1) dcl 365 set ref 376* 378* 380 473 sum_seen_map_ptr 000460 automatic pointer dcl 366 set ref 382* 385 sum_set_array_ptr 000462 automatic pointer dcl 367 set ref 383* 386 sum_subject parameter char(256) unaligned dcl 358 set ref 348 372* 516 516* 518* 518 sum_subject_oriented parameter bit(1) dcl 356 ref 348 475 sum_xforum_meeting_info_ptr parameter pointer dcl 354 ref 348 370 sum_xforum_meeting_list_ptr parameter pointer dcl 353 ref 348 369 text_length 23 based fixed bin(21,0) level 2 dcl 4-7 ref 519 940 timer_manager_$sleep 000470 constant entry external dcl 254 ref 410 523 624 691 913 924 960 970 981 989 1002 1052 1064 1070 1080 1091 1105 1124 trans_no 14 based fixed bin(17,0) level 2 dcl 4-7 set ref 511 930* 937* 937* trans_seg_ptr 140 000262 internal static pointer level 2 dcl 886 set ref 966* 968 1009* 1057* 1060 1076 1101 1101 txt based char level 2 packed unaligned dcl 877 set ref 1101* unread_count 27 based fixed bin(17,0) level 2 dcl 6-24 set ref 447* 451* 451 465* 677* 677 740* 740 762* 762 771* 1113* 1113 unspec builtin function dcl 302 set ref 384* 491* 661* 782 782 us_code 000722 automatic fixed bin(35,0) dcl 719 set ref 731* 734* 752* us_current_text 000723 automatic char(80) unaligned dcl 720 set ref 775* 777* 780* 782* 797* us_fidx parameter fixed bin(17,0) dcl 715 set ref 707 731* 734* 752* us_i 000747 automatic fixed bin(17,0) dcl 721 set ref 744* 745 745* 760* 761* us_last_trans 000750 automatic fixed bin(17,0) dcl 722 set ref 752* 758 760 766 us_new_text 000751 automatic char(12) unaligned dcl 723 set ref 771* 796* us_subject parameter char unaligned dcl 713 set ref 707 773 775 775* 777 777 us_total_text 000754 automatic char(11) unaligned dcl 724 set ref 769* 795* us_trans_no parameter fixed bin(17,0) dcl 712 set ref 707 729 731* 734 734* 737 739 741 744 us_unused_b36 000757 automatic bit(36) dcl 725 set ref 752* us_version parameter fixed bin(17,0) dcl 714 ref 707 731 734 us_xforum_meeting_info_ptr parameter pointer dcl 711 ref 707 727 view_seg_ptr 142 000262 internal static pointer level 2 dcl 886 set ref 998* 1000 1023* 1031* window_$clear_window 000472 constant entry external dcl 255 ref 565 572 911 955 window_position_info based structure level 1 unaligned dcl 10-25 xamu_ME 000016 constant char(27) initial unaligned dcl 291 set ref 421* 622* 923* 959* 969* 980* 988* 1001* 1063* 1069* 1079* 1090* 1104* 1159 xamu_OFF 000143 constant bit(1) initial dcl 291 set ref 429 826 1062 1101* xamu_ON 000140 constant bit(1) initial dcl 291 set ref 414 428 433 678* 731* 734* 993 1006 xamu_QUERY_USAGE 000025 constant char(69) initial unaligned dcl 291 set ref 567* xamu_REPLY constant bit(1) initial dcl 291 ref 917 945 958 997 1011 1037 1048 1097 xamu_SUBJECT constant bit(1) initial dcl 291 ref 927 935 940 1013 xamu_xforum_error_info 000010 internal static structure level 1 unaligned dcl 286 set ref 1165 1165 xforum_error_info based structure level 1 unaligned dcl 5-3 xforum_format_$append 000474 constant entry external dcl 256 ref 1023 xforum_format_$write 000476 constant entry external dcl 257 ref 1031 xforum_get_selected_trans$first 000500 constant entry external dcl 258 ref 662 1019 xforum_get_selected_trans$next 000502 constant entry external dcl 259 ref 1024 xforum_get_str_ 000456 constant entry external dcl 249 ref 583 xforum_help_line_$change 000504 constant entry external dcl 260 ref 794 939 943 xforum_help_line_$pop 000506 constant entry external dcl 261 ref 630 xforum_help_line_$push 000510 constant entry external dcl 262 ref 567 xforum_meeting_info based structure level 1 unaligned dcl 6-24 set ref 384* xforum_meeting_info_ptr 000106 automatic pointer dcl 280 set ref 370* 376 376 382 383 384 385 386 387 416 416 416 416 421 431 431 440 446 447 448 449 451 451 452 452 458 459 461 461 462 464 464 465 465 465 468 471 475 477 477 477 477 479 479 479 482 485 486 486 488 488 488 491 494 494 496 498 505 507 511 652* 655 656 660 661 662* 669 670 670 672 676 676 677 677 678 680 681 681 681 682 682 689 692 693 693 693 694 694 727* 734 737 739 740 740 741 743 744 744 745 745 752 752 752 758 760 761 762 762 764 764 764 766 769 771 780 780 782 782 782 782 782 782 782 782 782 817* 823 906* 919 927 930 947 958 1015 1017 1018 1018 1019* 1024* 1027 1097 1101 1109 1111 1112 1113 1113 1115 1115 1115 1119 1120 1122 xforum_meeting_list based structure level 1 dcl 7-14 xforum_meeting_list_ptr 000110 automatic pointer dcl 281 set ref 369* 376 387 390 390 390 393 393 397 400 402 403 403 405 407 408 408 414 426 428 429 430 430 433 434 434 438 818* 823 826 827 827 xforum_status_$redisplay 000512 constant entry external dcl 263 ref 798 933 950 xforum_status_$update_current 000514 constant entry external dcl 264 ref 797 xforum_status_$update_new 000516 constant entry external dcl 265 ref 796 xforum_status_$update_title 000520 constant entry external dcl 266 ref 932 949 xforum_status_$update_total 000522 constant entry external dcl 267 ref 795 xforum_trans_$first_trans 000524 constant entry external dcl 268 ref 510 xforum_trans_$read 000526 constant entry external dcl 269 ref 507 672 919 xforum_user_profile$get_remove_menu_while_editing 000530 constant entry external dcl 270 ref 945 xforum_window_info 000122 automatic structure level 1 unaligned dcl 9-8 xforum_window_mgr$check_window_status 000532 constant entry external dcl 271 ref 571 910 xforum_window_mgr$resynch_windows 000534 constant entry external dcl 272 ref 934 951 xforum_windows 000556 external static structure level 1 dcl 9-5 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 BREAK_PROMPT internal static char(34) initial unaligned dcl 11-10 COMMENTS_PROMPT internal static char(40) initial unaligned dcl 11-10 COMMENT_PROMPT internal static char(37) initial unaligned dcl 11-10 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 FIRST_PROMPT internal static char(80) initial unaligned dcl 11-10 FOUR internal static fixed bin(17,0) initial dcl 12-16 FUNCTION_KEY_HELP internal static char(25) initial unaligned dcl 13-10 GETTING_STARTED_HELP internal static char(27) initial unaligned dcl 13-10 INCLUDE_DELETED internal static fixed bin(17,0) initial dcl 4-24 MENU_OPTION_HELP internal static char(23) initial unaligned dcl 13-10 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 ONE internal static fixed bin(17,0) initial dcl 12-16 ONLY_DELETED internal static fixed bin(17,0) initial dcl 4-24 RETURN_PROMPT internal static char(46) initial unaligned dcl 11-10 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_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 SET_ARRAY_SPEC_LEN internal static fixed bin(17,0) initial dcl 6-57 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_13 internal static fixed bin(17,0) initial dcl 8-53 SPY_AT_14 internal static fixed bin(17,0) initial dcl 8-55 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_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 TEXT_PROMPT internal static char(31) initial unaligned dcl 11-10 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 ZERO internal static fixed bin(17,0) initial dcl 12-16 alloc_subject_length automatic fixed bin(21,0) dcl 4-4 alloc_text_length automatic fixed bin(21,0) dcl 4-3 break_table_info based structure level 1 dcl 10-76 break_table_info_version internal static fixed bin(17,0) initial dcl 10-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 10-80 break_table_ptr automatic pointer dcl 10-75 forum_$forum_info 000000 constant entry external dcl 2-7 forum_$get_forum_path 000000 constant entry external dcl 2-12 forum_$get_forum_path_idx 000000 constant entry external dcl 2-14 forum_$list_users_idx 000000 constant entry external dcl 2-18 forum_$read_trans 000000 constant entry external dcl 2-21 forum_$set_message 000000 constant entry external dcl 2-27 forum_$set_switch 000000 constant entry external dcl 2-28 forum_$set_switch_idx 000000 constant entry external dcl 2-30 forum_$trans_ref_info 000000 constant entry external dcl 2-32 forum_flags based structure level 1 dcl 3-8 get_editor_key_bindings_info based structure level 1 dcl 10-151 get_editor_key_bindings_info_ptr automatic pointer dcl 10-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 10-160 line_editor_binding_count automatic fixed bin(17,0) dcl 10-121 line_editor_key_binding_info based structure level 1 dcl 10-129 line_editor_key_binding_info_ptr automatic pointer dcl 10-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 10-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 10-123 message_type internal static fixed bin(17,0) initial dcl 4-22 more_handler_info based structure level 1 dcl 10-83 more_handler_info_ptr automatic pointer dcl 10-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 10-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 10-94 more_prompt_info based structure level 1 dcl 10-108 more_prompt_info_ptr automatic pointer dcl 10-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 10-114 more_responses_info based structure level 1 dcl 10-59 more_responses_info_ptr automatic pointer dcl 10-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 10-67 more_responses_version internal static fixed bin(17,0) initial dcl 10-67 set_editor_key_bindings_info based structure level 1 dcl 10-162 set_editor_key_bindings_info_ptr automatic pointer dcl 10-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 10-172 token_characters_info based structure level 1 dcl 10-97 token_characters_info_ptr automatic pointer dcl 10-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 10-106 user_trans_type internal static fixed bin(17,0) initial dcl 4-21 window_edit_line_info based structure level 1 unaligned dcl 10-177 window_edit_line_info_ptr automatic pointer dcl 10-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 10-183 window_position_info_ptr automatic pointer dcl 10-37 window_position_info_version internal static fixed bin(17,0) initial dcl 10-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 10-35 window_status_info based structure level 1 dcl 10-45 window_status_info_ptr automatic pointer dcl 10-43 window_status_version internal static fixed bin(17,0) initial dcl 10-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 10-52 NAMES DECLARED BY EXPLICIT CONTEXT. close_meeting 004462 constant entry external dcl 802 collect_spy_data 007520 constant entry internal dcl 1129 ref 573 600 609 615 617 1048 1050 copy_to_name 002245 constant entry external dcl 531 enter_trans 004562 constant entry external dcl 838 error 007555 constant entry internal dcl 1148 ref 346 exit_copy_to_name 003145 constant label dcl 630 set ref 577 exit_enter_trans 007516 constant label dcl 1126 ref 914 925 961 971 982 990 1003 1054 1065 1071 1081 1092 1106 exit_next_unread_comment 003520 constant label dcl 704 set ref 666 exit_set_up_meeting 002237 constant label dcl 528 ref 411 423 524 here 005631 constant label dcl 976 ref 975 next_unread_comment 003160 constant entry external dcl 635 set_up_meeting 001130 constant entry external dcl 348 update_status 003526 constant entry external dcl 707 xforum_attend_mtg_utilities 001104 constant entry external dcl 57 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10556 11340 7671 10566 Length 12240 7671 562 663 665 416 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_attend_mtg_utilities 1084 external procedure is an external procedure. on unit on line 569 84 on unit on unit on line 658 72 on unit on unit on line 908 80 on unit collect_spy_data 66 internal procedure is called by several nonquick procedures. error internal procedure shares stack frame of external procedure xforum_attend_mtg_utilities. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xamu_xforum_error_info xforum_attend_mtg_utilities 000262 et_trans xforum_attend_mtg_utilities STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xforum_attend_mtg_utilities 000106 xforum_meeting_info_ptr xforum_attend_mtg_utilities 000110 xforum_meeting_list_ptr xforum_attend_mtg_utilities 000112 forum_flags_word xforum_attend_mtg_utilities 000114 forum_user_trans_ptr xforum_attend_mtg_utilities 000116 spy_ptr xforum_attend_mtg_utilities 000120 SPY_VERSION_1 xforum_attend_mtg_utilities 000122 xforum_window_info xforum_attend_mtg_utilities 000131 answer_array xforum_attend_mtg_utilities 000455 sum_code xforum_attend_mtg_utilities 000456 sum_i xforum_attend_mtg_utilities 000457 sum_old_info_still_good xforum_attend_mtg_utilities 000460 sum_seen_map_ptr xforum_attend_mtg_utilities 000462 sum_set_array_ptr xforum_attend_mtg_utilities 000464 ctn_code xforum_attend_mtg_utilities 000465 ctn_dir_name xforum_attend_mtg_utilities 000537 ctn_entry_name xforum_attend_mtg_utilities 000547 ctn_reply xforum_attend_mtg_utilities 000631 ctn_unused_b1 xforum_attend_mtg_utilities 000632 reply xforum_attend_mtg_utilities 000715 nuc_code xforum_attend_mtg_utilities 000716 nuc_found xforum_attend_mtg_utilities 000717 nuc_i xforum_attend_mtg_utilities 000720 nuc_old_current xforum_attend_mtg_utilities 000721 nuc_old_flags xforum_attend_mtg_utilities 000722 us_code xforum_attend_mtg_utilities 000723 us_current_text xforum_attend_mtg_utilities 000747 us_i xforum_attend_mtg_utilities 000750 us_last_trans xforum_attend_mtg_utilities 000751 us_new_text xforum_attend_mtg_utilities 000754 us_total_text xforum_attend_mtg_utilities 000757 us_unused_b36 xforum_attend_mtg_utilities 000760 et_bc xforum_attend_mtg_utilities 000761 et_chairman_msg xforum_attend_mtg_utilities 001061 et_chars xforum_attend_mtg_utilities 001062 et_code xforum_attend_mtg_utilities 001063 et_emacs_flavour xforum_attend_mtg_utilities 001075 et_i xforum_attend_mtg_utilities 001076 et_my_label xforum_attend_mtg_utilities 001102 et_prefix_len xforum_attend_mtg_utilities 001103 et_reply_no xforum_attend_mtg_utilities 001104 et_temp_line xforum_attend_mtg_utilities 001130 et_sj xforum_attend_mtg_utilities 001326 et_str xforum_attend_mtg_utilities 001527 et_subj_len xforum_attend_mtg_utilities 001530 et_trans_num xforum_attend_mtg_utilities 001531 et_txt_len xforum_attend_mtg_utilities 001532 et_unusedb1 xforum_attend_mtg_utilities 001533 et_unusedfb24 xforum_attend_mtg_utilities 001534 et_view_seg_bc xforum_attend_mtg_utilities THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return_mac tra_ext_1 enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc set_chars_eis index_chars_eis op_freen_ index_after_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_$suppress_name emacs_ expand_pathname_ forum_$close_forum forum_$enter_trans forum_$forum_limits forum_$get_message forum_$get_transaction_map_idx forum_$open_forum forum_$set_last_seen_idx forum_$set_seen_switch get_pdir_ hcs_$fs_get_path_name hcs_$make_ptr hcs_$set_bc_seg initiate_file_ initiate_file_$create ioa_ ioa_$rsnnl menu_$destroy signal_ timer_manager_$sleep window_$clear_window xforum_format_$append xforum_format_$write xforum_get_selected_trans$first xforum_get_selected_trans$next xforum_get_str_ xforum_help_line_$change xforum_help_line_$pop xforum_help_line_$push xforum_status_$redisplay xforum_status_$update_current xforum_status_$update_new xforum_status_$update_title xforum_status_$update_total xforum_trans_$first_trans xforum_trans_$read xforum_user_profile$get_remove_menu_while_editing xforum_window_mgr$check_window_status xforum_window_mgr$resynch_windows THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$long_record forum_error_table_$invalid_trans_idx forum_error_table_$trans_deleted forum_error_table_$trans_reaped xforum_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 8 27 001077 57 001103 346 001112 348 001121 369 001136 370 001142 371 001145 372 001146 373 001152 376 001156 378 001176 380 001177 382 001201 383 001203 384 001205 385 001210 386 001211 387 001212 390 001220 393 001313 395 001401 397 001404 399 001432 400 001446 402 001455 403 001457 405 001461 407 001466 408 001470 410 001472 411 001507 414 001510 416 001516 420 001544 421 001546 423 001576 426 001577 428 001606 429 001610 430 001612 431 001613 433 001617 434 001623 438 001624 440 001631 441 001657 443 001661 444 001705 446 001706 447 001711 448 001712 449 001721 451 001727 452 001730 455 001735 456 001737 458 001740 459 001751 460 001756 461 001760 462 001771 463 001776 464 002000 465 002004 468 002007 471 002013 473 002015 475 002017 477 002025 479 002033 482 002041 485 002044 486 002046 487 002051 488 002052 491 002057 493 002061 494 002062 496 002064 498 002066 500 002070 501 002111 505 002120 507 002123 508 002136 510 002140 511 002151 514 002155 516 002157 518 002171 519 002176 520 002204 522 002205 523 002221 524 002236 528 002237 531 002240 557 002253 558 002254 560 002256 561 002262 562 002266 563 002270 565 002271 567 002304 569 002332 571 002346 572 002352 573 002365 574 002404 575 002412 576 002414 577 002415 580 002420 581 002422 582 002424 583 002425 585 002476 587 002502 588 002521 590 002523 593 002527 595 002544 596 002571 597 002573 598 002574 600 002600 601 002616 602 002632 603 002634 605 002635 606 002662 609 002672 610 002710 613 002740 615 002741 617 003002 619 003020 620 003062 622 003064 624 003120 625 003135 626 003142 627 003144 630 003145 633 003152 635 003153 652 003166 653 003172 654 003174 655 003175 656 003177 658 003202 660 003216 661 003222 662 003224 663 003236 665 003245 666 003250 669 003253 670 003262 672 003263 673 003276 676 003304 677 003312 678 003314 680 003347 681 003352 682 003367 684 003377 685 003401 686 003402 689 003404 690 003424 691 003440 692 003455 693 003460 694 003475 696 003505 697 003507 698 003510 699 003512 701 003513 704 003520 707 003521 727 003542 729 003546 731 003550 734 003603 737 003630 739 003640 740 003643 741 003645 743 003650 744 003652 745 003667 747 003677 752 003701 758 003730 760 003734 761 003743 762 003750 763 003751 764 003753 766 003762 769 003764 771 004016 773 004052 775 004061 777 004124 778 004166 780 004170 782 004215 794 004357 795 004411 796 004422 797 004433 798 004444 800 004454 802 004455 817 004470 818 004474 821 004477 823 004511 826 004524 827 004527 830 004531 833 004547 834 004552 836 004554 838 004555 905 004570 906 004574 908 004577 910 004613 911 004617 912 004632 913 004651 914 004666 917 004671 919 004676 921 004712 923 004714 924 004740 925 004755 927 004756 930 005025 932 005063 933 005074 934 005104 935 005121 937 005132 939 005167 940 005215 942 005232 943 005233 945 005264 947 005305 949 005336 950 005347 951 005357 955 005374 956 005407 958 005423 959 005433 960 005460 961 005475 965 005476 966 005502 968 005555 969 005562 970 005605 971 005622 974 005623 975 005626 976 005631 979 005666 980 005670 981 005714 982 005731 985 005732 987 005767 988 005771 989 006015 990 006032 993 006033 994 006036 997 006044 998 006055 1000 006130 1001 006135 1002 006160 1003 006175 1006 006176 1009 006200 1011 006215 1013 006222 1015 006226 1016 006260 1017 006261 1018 006264 1019 006266 1020 006301 1021 006306 1023 006310 1024 006330 1026 006343 1027 006344 1028 006347 1030 006350 1031 006353 1034 006366 1035 006367 1037 006372 1038 006377 1039 006420 1041 006453 1043 006454 1047 006606 1048 006611 1050 006635 1051 006653 1052 006672 1053 006707 1054 006710 1057 006711 1060 006752 1062 006757 1063 006761 1064 007004 1065 007021 1068 007022 1069 007024 1070 007050 1071 007065 1074 007066 1076 007070 1078 007105 1079 007111 1080 007140 1081 007155 1084 007156 1085 007177 1087 007201 1089 007203 1090 007205 1091 007231 1092 007246 1095 007247 1097 007256 1099 007267 1101 007270 1103 007342 1104 007344 1105 007373 1106 007410 1109 007411 1111 007416 1112 007427 1113 007434 1114 007435 1115 007437 1119 007446 1120 007453 1122 007455 1124 007501 1126 007516 1129 007517 1140 007533 1141 007536 1142 007544 1144 007554 1148 007555 1159 007566 1160 007572 1161 007575 1162 007600 1163 007603 1165 007610 1167 007645 ----------------------------------------------------------- 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