COMPILATION LISTING OF SEGMENT xforum_main_options 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 1023.3 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(85-02-26,Davids), approve(86-02-04,MCR7350), 12* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 13* Deleted the internal proc prompt_help which was outputting a 14* canned messaged in response to a ? from the meeting name prompt. 15* Replaced it with a call to xforum_help_$display to output the help 16* message in the info file. Also added the gm_help_name variable to 17* hold the name of the help section (i.e., changed, attended, or 18* eligible). Bob Kress found this error while he was going over the 19* documentation. 20* 21* 85-03-01 Davids: Corrected next_meeting so it uses its own nm_* 22* variables to call the attend_mtg_menu modules instead of the gm_* 23* variables. I obviously copied the code and didn't change the 24* variables and didn't test it until now. 25* 26* 85-03-07 Davids: Corrected the get_choice_from_menu procedure so 27* that it pops the help_line when a choice has been made and the 28* routine is about to exit. It was just doing a 29* xforum_help_line_$redisplay. When enough of the meeting list 30* menus were displayed a help_line stack overflow would occur. Also 31* had to reorange the way that get_curr_meeting handled the 32* help_line. A new help line was being pushed for every prompt and 33* no pops were being done. 34* 2) change(85-04-02,Davids), approve(86-02-04,MCR7350), 35* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 36* Removed code from the get_choice_from_menu procedure that dealt 37* with constructing the array of names to be used in the dynamic 38* menus and the creation of the menus and the handling of the 39* function keys. Replaced it all with a call to 40* xforum_dyn_menu_$display_and_get_choice. 41* 42* 85-04-03 Davids: Removed code from the get_curr_meeting procedure 43* that dealt with prompting the user for a meeting name and 44* processing the response, i.e. too long or blank input, or ?. 45* Replaced it with a call to 46* xforum_dyn_menu_$prompt_instead_of_menu. 47* 48* 85-04-22 Davids: Added code to the find_meeting procedure to copy 49* the search paths to the end of the extended meeting list before 50* the meeting info is moved. This keeps the search paths from 51* getting zaped when the meeting info is extened and prevents the 52* "Warning your search paths have changed" message from appearing 53* when you add a new meeting to your meeting list by searching for 54* it after the meeting list proper has been created. This is error 55* list entry number 4. 56* 57* 85-05-01 Davids: Changed the loop in next_meeting_internal that 58* goes from 1 to nmi_curr_mtg looking for a meeting that meets the 59* criteria so that it goes to nmi_curr_mtg - 1. This is needed so 60* that you do not get a subscript range error when nmi_curr_mtg is 61* set to the max meeting index. It will be so set after you have 62* cycled through all the meetings. 63* 64* 85-06-17 Davids: Modified call to xforum_find_path_ so that the 65* fm_dir output paramater comes after all the input paramaters. 66* 3) change(87-07-21,LJAdams), approve(87-07-21,MCR7684), 67* audit(87-07-24,Blair), install(87-08-06,MR12.1-1065): 68* Declared constants for menu choices to get rid of magic numbers. 69* END HISTORY COMMENTS */ 70 71 72 xforum_main_options: proc; 73 74 /* 75* BEGIN DESCRIPTION 76* 77* function: 78* This module implements all the functions related to the options 79* in the xforum main menu. 80* 81* description of entry points: 82* goto_meeting: this entry is used to "goto" a meeting. An input value 83* determines if the meeting type is a changed, attended, or eligible one. 84* If the indicated type is changed and there are no more changed meetings 85* the handle_no_changed_mtgs procedure is called. If there are no meetings 86* of the indicated type (after the call to handle...) a message to that 87* effect is output. If there is only 1 meeting of the given type it is 88* automatically selected. If there is more than 1 meeting a call is made 89* to the internal procedure get_curr_meeting to let the user select the 90* meeting he wishes to goto. Once the meeting is selected a call is made 91* to the internal proc attend_meetings. 92* 93* next_meeting: This entry is used to "goto" the next meeting. An 94* input value determines if the meeting type is a changed, attended, or 95* eligible one. The work of selecting the next meeting is done by calling 96* next_meeting_internal. Once a meeting is selected a call is made to the 97* internal proc attend_meetings. 98* 99* index_of_next_meeting: This entry is used to determine the index of the 100* next meeting of the given type. The work of selecting the next meeting 101* is done by next_meeting_internal. 102* 103* modify_meeting_list: This entry will be used to modify the contents 104* meeting list, i.e. add new meetings and resign from currently attended 105* meetings. Currently the only thing implemented is a call to ioa_ which 106* outputs a message saying that the function has not yet been implemented. 107* 108* description of internal procedures: 109* get_curr_meeting: This procedure queries the user for the name of the 110* meeting he wants to go to. If the menu_always flag is set to true (input 111* from the caller of goto_meeting entry) a dynamic menu of all the meetings 112* of the given type is displayed in the bottom window (via a call to 113* get_choice_from_menu). If the meeting index returned by 114* get_choice_from_menu is -1 it means that the user selected the "ENTER 115* NAME" meeting which indicates that the user wants to be prompted for the 116* meeting name. The users response is checked in the find_meeting 117* procedure to be sure that it is on the meeting list. The meeting is also 118* checked to be sure that it is the right type. If the meeting is not on 119* the list or the types do not match an error message is output and no 120* meeting is selected. The user aborts the query (or dynamic menu) by 121* signaling quit. The quit handler in xforum will trap the quit, reset 122* all the windows, and unwind the stack back to xforum by doing a non-local 123* goto to the menu display and get_choice loop. 124* 125* get_choice_from_menu: this manages a dynanic menu of the meeting names 126* for the given type of meeting. The xforum_dyn_menu routines are utilized 127* to create and display the menu and get the users choice. the function 128* keys REDISPLAY, SCROLL_UP, and SCROLL_DOWN are active. The user can abort 129* the menu by signalling quit (see discussion in get_curr_meeting). 130* The dynamic menu contains the list of meetings plus the special meeting 131* "ENTER NAME" as the last item on the last menu. This special meeting 132* has a meeting list index of -1 which get_curr_meeting recognizes as 133* a request for a prompt. A title line that describes the type of meetings 134* being selected is written over the trailer line of the top menu. This was 135* done so that you did not end up with 2 lines of dashes. The title is 136* positioned over the trailer line via position_cursor and then 137* ovewrite_text. 138* 139* find_meeting: locates the requested meeting in the xforum meeting list. 140* If the meeting is not in the meeting list it calls xforum_find_path_ 141* to use the forum search rules to locate the meeting. forum_info is 142* called to get info about the meeting and the meeting is then 143* added to the xforum meeting list. The name used in the xforum meeting 144* list is the name the user used, not the name of the actual meeting. 145* 146* next_meeting_internal: finds the next meeting in the meeting list. 147* The meeting may be constrained to have been changed or attended. 148* If the meeting is a changed meeting and there are no changed meeting in 149* the list then handle_no_changed_meetings is called. If no meetings of 150* the requested type can be found a message is output and the process put 151* to sleep for 4 seconds to allow time to read the message. 152* 153* prompt_help: outputs a help message about the "Enter name of meeting" 154* prompt issued in the get_curr_meeting procedure. This procedure is called 155* if the user answers the prompt with a "?". The text of the help message 156* varies slightly depending on the type of meeting, i.e. changed, attended 157* or eligible. 158* 159* handle_no_changed_meetings: will prompt the user to see if he wants the 160* meetings in his meeting list checked for changes. ONLY the meetings 161* in the meeting list that the user participats in are checked. 162* command_query is used to query the user and the help text printed in 163* response to a "?" is part of the command_query call. If the user answers 164* yes, a message indicating that the meeting are being checked and that it 165* will take a while is output. A call is made to forum_$forum_info for 166* each meeting the user participats in. If the meeting is changed the 167* meeting is marked as changed and the changed count is incremented. 168* Before the module exits the banner containing the counts of eligible, 169* atteneded, and changed meetings is updated - but it is only printed if 170* the number of changed meetings and attended meetings are both non-zero. 171* This prevents the banner for being updated while the "No changed 172* meetings" message is output. 173* 174* collect_spy_data: this procedure is called from all locations that take 175* user input. Its input is the user's input and a location ID. It writes 176* that information in a special spy structure based on a pointer that 177* was passed in to the orginal entry. Note that collect_spy_data is the 178* same in all xforum modules. It is not a separate module because it 179* consists on only 3 assignment statements. 180* 181* error: this is called when a fatal error has been detected by xforum. 182* A fatal error happens when an unexpected error code is returned from 183* a system routine, i.e. a non-zero code returned from forum_limits, or 184* an inconsistency in the input parameters is found. It signals the 185* xforum_fatal_error condition. There is a condition handler for this 186* in the xforum module. 187* 188* known bugs: 189* 84-07-31 Davids: help messages need to set up for escape sequence mode. 190* 191* notes: 192* 193* history: 194* 84-07-09 Davids: created by extracting the relavent internal procedures 195* from the xforum module. 196* 197* 84-07-18 Davids: Added the handle_no_changed_mtgs procedure 198* 199* 84-07-27 Davids: Added a confirmation message in the 200* handle_no_changed_mtgs procedure so that if the user answered with a 201* yes he knows that the answer was accepted and that the meetings are 202* being checked. If he answered no there is no need for a confirmation 203* message since the menu is updated very quickly. 204* 205* 84-07-31 Davids: Modified the handle_no_changed_meetings so that: 206* 1) it had a quit handler, 2) there are calls to collect_spy_data 207* and 3) it updates the banner before it leaves. Also cleaned things 208* up so that the code looks better and removed unneeded dcls. Finally 209* added a call to the error procedure if the main entry point is called. 210* Modified the usage message in get_choice_from_menu to conform with MTB. 211* Created an internal procedure called next_meeting_internal. This 212* procedure is called by the next_meeting entry point (its the only thing 213* the entry does) and the goto_meeting entry point if there is only 1 214* meeting that can be gone to. A message telling the user that the meeting 215* was automatically selected is also output. 216* 217* 84-08-13 Davids: Changed Attended, Changed and Meetings to attended, 218* changed and meetings in error messages. Changed Meetings in the banner 219* to Eligible. Changed the error message reported in find_meeting if 220* xforum_find_path_ fails to find the meeting to reflect the MTB. 221* 222* 84-08-15 Davids: Modified so that all entry points used the 223* xforum_info_ptr as their only parameter. Added entry points 224* modify_meeting_list, personlize, and getting_started. These entry points 225* just report that the code has not yet been implemented. Deleted entry 226* points resign_from_meeting, and list_meetings since these are no longer 227* main menu options. 228* 229* 84-08-29 Davids: Added the internal routines attend_meetings and 230* attend_a_meeting. These additions need to be cleaned up but they are 231* now in place. 232* 233* 84-08-31 Davids: Added sleep statements after the You have no * meetings 234* messages in the next_meeting_internal proc. This was needed to keep the 235* messages on the screen so that the user can read them. Also the status 236* window is not updated if there are no changes. This prevents the status 237* window from changing to that of the main menu while the menu remains that 238* of the attending meeting and the You have... message is displayed. 239* 240* 84-09-04 Davids: Added code to find_mmeting. The name_entered is now 241* compared against the long_names in the meeting list instead of the short 242* names since the rest of the list is sorted by long_name. no_selected is 243* incremented before the loop that shifts the list to make room for the 244* new name - this prevents a subscript range condition. 245* 246* 84-09-05 Davids: Added the variable fm_meeting_version to find_meeting. 247* also added code to set the xforum_meeting_list.forums (i).forum_version 248* element. This was preventing version 1 meetings from being found after 249* they are added to the meeting list (since the version was not 1 it was 250* assumed to be 2). 251* 252* 84-09-06 Davids: Changed the Select options in the attend meeting menu to 253* Select/Display. Changed option 4 in the menu from just selecting comments 254* to both selecting and displaying comments. 255* 256* 84-09-17 Davids: Added processing for uppercase escape sequences. This 257* was done by declaring XXX2 constants for the uppercase escape sequences 258* and inserting them in the if statements along with the XXX constants. 259* The constants declared were REDISPLAY2, QUIT2, PREV_MENU2, SCROLL_UP2, 260* SCROLL_DOWN2. For the main entry and aam and gs. 261* 262* 84-09-24 Davids: Modified get_choice_from_menu so that it adds to the 263* list of meetings the choice ENTER NAME. This "meeting" has a meeting 264* list index of -1. Modified get_curr_meeting so that if the meeting 265* selected has an index of -1 if will goto the display_prompt label 266* instead of assuming that a meeting has been selected. 267* 268* 84-09-25 Davids: Removed references to xforum_trans_array. The array is 269* being deleted because it enforces an upper limit on the number of 270* transaction that xforum can handle. 271* 272* 84-09-27 Davids: Modified the get_choice_from_menu option so that a 273* title of "T Meetings Selection" is output over the trailer line of the 274* main menu. It is centered by determining where on the screen it should 275* start, positioning the cursor there, and overwritting the text. This has 276* the effect of a title line which is padded with dashes but does not 277* produce two lines with dashes, i.e. the main trailer line and the new 278* dynamic menu header line. The T stands for Eligible, Attended, or Changed 279* depending on the type of meetings requested. Also modified the call to 280* copy_comments so that it reflected the new calling sequence. 281* 282* 84-09-28 Davids: Modified to use the xforum_help_line module instead of 283* the xforum_status_ entries that manipulated the help line. 284* 285* 84-10-03 Davids: Added code in attend_a_meeting to get the seen 286* transaction bit map and the xforum_meeting_info next_unread and 287* unread_count elements. Added code in reinstate_mtg_status to update 288* the bit map and unread values if there were transactions entered since 289* the last time the bit map was updated. Changed the label in the new field 290* to Unread: 291* 292* 84-10-11 Davids: Changed the Current transaction string for the 293* attend meeting menu to Current comment. 294* 295* 84-10-16 Davids: Changed Select/Display Comments to 296* Select/Display Any Comment(s) 297* 298* 84-10-26 Davids: Changed List Current Comment(s) to Select/List Any 299* Comment(s). Also swaped the menu position of Copy Comments with 300* Select/List so that all the Select options are in a group. 301* 302* 84-10-29 Davids: Added a test for the input of a null meeting name in 303* the get_curr_meeting procedure. A appropriate message is now output 304* instead of letting the null name pass and giving the user: The "" meeting 305* could not be found. 306* 307* 84-11-06 Davids: Changed references to xforum_help_line to 308* xforum_help_line_. 309* 310* 84-11-15 Davids: Auding changes: 1) Fixed output messages to begin with 311* an upper case letter and end with a period. 312* 313* 84-12-13 Davids: added code in handle_no_changed_meetings so that if a 314* call to forum to get meeting info fails a message is output saying that 315* the meeting has been deleted or renamed and tells how to update the 316* meeting list. This is nicer then just aborting xforum. It also sets the 317* participant flag for the meeting to false. The same messages are 318* output in the attend_a_meeting procedure if the call to open a meeting 319* fails the participant and changed flags for the meeting are 0'ed and the 320* no_participant and no_changed counts are decremented if need be. 321* 322* 85-01-08 Davids: Changed calling sequence of xforum_multics_mode to remove 323* the handle_interactive_messages_flag. Also changed the calling sequence of 324* xforum_help_$get_help to remove the handle_interactive_messages_flag and 325* the function_key_data_ptr. Changed calling sequence of 326* xforum_window_mgr$menu_get_choice to remove the arguments 327* function_key_data_ptr and handle_interactive_messages. Also change the 328* assignment of gs_multics_mode and aam_multics_mode to be from a call to 329* xforum_user_profile instead of from the xforum_info structure 330* Changed calling sequence of xforum_dyn_menu_$get_choice to remove the 331* function_key_data_ptr argument. 332* 333* 85-01-10 Davids: Modified the internal proc get_curr_meeting to call 334* xforum_user_profile$get_menu_always instead of relying on a static 335* value passed into xforum_main_options. 336* 337* 85-01-16 Davids: Changed QUERY_USAGE the help line text output for a 338* meeting name query to have the same format as the rest of the help lines. 339* 340* 85-01-24 Davids: Added handling of the xforum_meeting_info.flags.set 341* switch to the reinstate_mtg_status internal proc. 342* 343* 85-01-25 Davids: Modified the internal proc get_choice_from_menu so that 344* the list of menu options includes a "ENTER MEETING NAME" as every Nth 345* option, where N is set to be the last option on each menu. 346* 347* 85-01-28 Davids: Modified the internal proc find_meeting so that the 348* fields, changed, been_to, and mbz are set correctly. NONE of these 349* fields were been set! Also changed how no_participant was being 350* incremented to be based on the participant field instead of the attended 351* field. Also corrected the if statement that positions a new meeting in 352* the meeting list so that it looks for the meeting with a name that occurs 353* after it and stops instead of a name that occurs before it and stops. 354* Its old behavior usually made it the first meeting in the list. 355* 356* 85-02-05 Davids: Removed the getting_started entry. Also removed the 357* personalization entry which has not been used for some time. 358* 359* 85-02-11 Davids: Removed the internal procs attend_meetings, 360* attend_a_meeting, reinstate_mtg_status, and close_meeting. Added the entry 361* index_of_next_meeting. Changed all calls to attend_meetings to calls to 362* xforum_ent_attend_mtg_menu. Removed quite a few now unused declarations. 363* 364* 85-02-13 Davids: Changed calling sequence of xforum_help_line_$push 365* to include the new F3_message argument. 366* 367* 85-02-19 Davids: Added calls to xforum_sub_attend_mtg_menu. 368* END DESCRIPTION 369**/ 370 371 /* PARAMETERS */ 372 373 /* EXTERNAL STATIC */ 374 375 376 /* ENTRIES */ 377 378 dcl com_err_$suppress_name entry () options (variable); 379 dcl command_query_$yes_no entry () options (variable); 380 dcl ioa_ entry () options (variable); 381 dcl ioa_$rsnnl entry () options (variable); 382 dcl signal_ entry () options (variable); 383 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 384 dcl window_$clear_window entry (ptr, fixed bin (35)); 385 dcl xforum_dyn_menu_$display_and_get_choice entry ((*) char (*), fixed bin, char (*), char (*), char (*), 386 fixed bin, ptr, fixed bin); 387 dcl xforum_dyn_menu_$prompt_instead_of_menu entry (char (*), char (*), char (*), char (*), char (*), fixed bin, 388 ptr, char (*) var); 389 dcl xforum_ent_attend_mtg_menu entry (fixed bin, bit (36) aligned, ptr); 390 dcl xforum_find_path_ entry (char(*), fixed bin, char(*), char(*), fixed bin(35)); 391 dcl xforum_help_line_$push entry (bit (8), char (*), char (*), char (*)); 392 dcl xforum_help_line_$pop entry options (variable); 393 dcl xforum_status_$redisplay entry (fixed bin (35)); 394 dcl xforum_status_$update_banner entry (char (*)); 395 dcl xforum_sub_attend_mtg_menu entry (fixed bin, bit (36) aligned, ptr); 396 dcl xforum_user_profile$get_menu_always entry () returns (bit (1)); 397 dcl xforum_user_profile$get_read_comments_by_subject entry () returns (bit (1)); 398 dcl xforum_window_mgr$check_window_status entry options (variable); 399 400 /* CONDITIONS */ 401 402 dcl quit condition; 403 404 /* INTERNAL STATIC */ 405 406 dcl 01 xmo_xforum_error_info like xforum_error_info internal static; 407 408 /* CONSTANTS */ 409 410 dcl ( 411 ALL bit (36) aligned init ("111111110000000000000000000000000000"b), 412 CHANGED bit (36) aligned init ("000000010000000000000000000000000000"b), 413 FALSE bit (1) aligned init ("0"b), 414 GET_ATTENDED fixed bin init (2), 415 GET_CHANGED fixed bin init (3), 416 GET_ELIGIBLE fixed bin init (1), 417 ME char (19) init ("xforum_main_options"), 418 PARTICIPANT bit (36) aligned init ("000100000000000000000000000000000000"b), 419 QUERY_USAGE char (67) init ("Press ? and RETURN:help BREAK:Return to Executive Forum menu"), 420 REDISPLAY fixed bin init (5), 421 REDISPLAY2 fixed bin init (12), 422 TRUE bit (1) aligned init ("1"b) 423 ) internal static options (constant); 424 425 /* BUILTINS */ 426 427 dcl ( 428 addr, 429 clock, 430 null, 431 rtrim, 432 unspec 433 ) builtin; 434 435 /* BASED */ 436 437 /* INCLUDE FILES */ 438 1 1 /* START OF: forum_dcls.incl.pl1 * * * * * */ 1 2 1 3 dcl forum_$close_forum entry (fixed bin, fixed bin (35)); 1 4 dcl forum_$enter_trans entry (fixed bin, char (*), fixed bin, char (*), 1 5 bit (1) aligned, fixed bin, 1 6 fixed bin (35)); 1 7 dcl forum_$forum_info entry (char (*), char (*), char (*), 1 8 fixed bin (71), ptr, fixed bin (35)); 1 9 dcl forum_$forum_limits entry (fixed bin, fixed bin, fixed bin, 1 10 fixed bin, fixed bin, fixed bin, 1 11 bit(36) aligned, fixed bin (35)); 1 12 dcl forum_$get_forum_path entry (char (*), char (*), char (*), char (*), 1 13 fixed bin (35)); 1 14 dcl forum_$get_forum_path_idx entry (fixed bin, char (*), char (*), 1 15 fixed bin (35)); 1 16 dcl forum_$get_message entry (fixed bin, char (*), fixed bin (35)); 1 17 dcl forum_$get_transaction_map_idx entry (fixed bin, char (*), bit (*), fixed bin (35)); 1 18 dcl forum_$list_users_idx entry (fixed bin, ptr, ptr, fixed bin (35)); 1 19 dcl forum_$open_forum entry (char(*), char(*), fixed bin, 1 20 fixed bin (35)); 1 21 dcl forum_$read_trans entry (fixed bin, fixed bin, ptr, ptr, 1 22 fixed bin (35)); 1 23 dcl forum_$set_last_seen_idx entry (fixed bin, fixed bin, bit (1) aligned, 1 24 fixed bin (35)); 1 25 dcl forum_$set_seen_switch entry (fixed bin, char (*), fixed bin, 1 26 bit (1) aligned, fixed bin (35)); 1 27 dcl forum_$set_message entry (fixed bin, char (*), fixed bin (35)); 1 28 dcl forum_$set_switch entry (char (*), char (*), char (*), char (*), 1 29 bit (1) aligned, fixed bin (35)); 1 30 dcl forum_$set_switch_idx entry (fixed bin, char (*), char (*), 1 31 bit (1) aligned, fixed bin (35)); 1 32 dcl forum_$trans_ref_info entry (fixed bin, fixed bin, fixed bin, 1 33 fixed bin, fixed bin, bit (1) aligned, 1 34 fixed bin (35)); 1 35 1 36 /* END OF: forum_dcls.incl.pl1 * * * * * */ 439 440 2 1 /* ... BEGIN INCLUDE FILE forum_flags.incl.pl1 ... */ 2 2 2 3 /* Flags returned by forum_$forum_limits 2 4* Jay Pattin 5/5/82 */ 2 5 2 6 dcl forum_flags_word bit (36) aligned; 2 7 2 8 dcl 1 forum_flags aligned based (addr (forum_flags_word)), 2 9 2 chairman bit (1) unaligned, 2 10 2 read_only bit (1) unaligned, 2 11 2 print_cm_message bit (1) unaligned, 2 12 2 print_acl_message bit (1) unaligned, 2 13 2 acl_has_changed bit (1) unaligned, 2 14 2 adjourned bit (1) unaligned, 2 15 2 mbz bit (30) unaligned; 2 16 2 17 /* END INCLUDE FILE forum_flags.incl.pl1 */ 441 442 3 1 /* START OF: forum_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(86-07-30,Pattin), approve(86-07-30,MCR7354), 3 7* audit(86-08-03,Margolin), install(86-08-16,MR12.0-1128): 3 8* Changed to version 2, speed up call by not calculating remove count. 3 9* END HISTORY COMMENTS */ 3 10 3 11 3 12 declare forum_info_ptr ptr; 3 13 3 14 declare 1 forum_info aligned based (forum_info_ptr), 3 15 2 version fixed bin, /* Must be 1 or 2 */ 3 16 2 forum_uid bit (36), 3 17 2 chairman unaligned, 3 18 3 username char (20), 3 19 3 project char (9), 3 20 3 pad char (3), 3 21 2 attendee_count fixed bin, 3 22 2 removal_count fixed bin, /* always 0 in version 2 */ 3 23 2 transaction_count fixed bin, 3 24 2 deletion_count fixed bin, 3 25 2 last_seen_trans_idx fixed bin, 3 26 2 last_time_changed fixed bin (71), 3 27 2 last_time_attended fixed bin (71), 3 28 2 changes_count fixed bin, 3 29 2 flags unaligned, 3 30 3 eligible bit (1), 3 31 3 mbz1 bit (1), 3 32 3 removed bit (1), 3 33 3 notify bit (1), 3 34 3 attending bit (1), 3 35 3 mbz2 bit (2), 3 36 3 read_only bit (1), 3 37 3 adjourned bit (1), 3 38 3 mbz3 bit (27); 3 39 3 40 declare forum_info_version_1 fixed bin static options (constant) initial (1), 3 41 forum_info_version_2 fixed bin static options (constant) initial (2); 3 42 3 43 /* END OF: forum_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 443 444 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 */ 445 446 5 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 5 2* declarations for the menu_ subroutines MTB 493 5 3* James R. Davis 26 Jan 81 to 20 Februrary 81 5 4**/ 5 5 5 6 /* format: off */ 5 7 5 8 dcl menu_$create entry ( 5 9 (*) char (*) varying, /* input: choices */ 5 10 (*) char (*) varying, /* input: headers */ 5 11 (*) char (*) varying, /* input: trailers */ 5 12 pointer, /* input: to format info */ 5 13 (*) char (1) unal, /* input: keys to use */ 5 14 pointer, /* input: to area */ 5 15 pointer, /* input: to needs str. */ 5 16 pointer, /* to menu: output */ 5 17 fixed bin (35) /* code */ 5 18 ); 5 19 5 20 dcl menu_$display entry ( 5 21 pointer, /* window */ 5 22 pointer, /* menu */ 5 23 fixed bin (35) /* code */ 5 24 ); 5 25 5 26 dcl menu_$get_choice entry ( 5 27 pointer, /* window */ 5 28 pointer, /* menu */ 5 29 pointer, /* to function key info */ 5 30 bit (1) aligned, /* function key hi: output */ 5 31 fixed bin, /* output: selection number */ 5 32 fixed bin (35) /* output: code */ 5 33 ); 5 34 5 35 dcl menu_$describe entry ( 5 36 pointer, /* menu */ 5 37 pointer, /* needs */ 5 38 fixed bin (35) /* code */ 5 39 ); 5 40 5 41 dcl menu_$destroy entry ( 5 42 pointer, /* menu */ 5 43 fixed bin (35) /* code */ 5 44 ); 5 45 5 46 dcl menu_$store entry ( 5 47 character (*), 5 48 character (*), 5 49 character (*), 5 50 bit (1) aligned, 5 51 pointer, 5 52 fixed bin (35)); 5 53 5 54 dcl menu_$retrieve entry ( 5 55 character (*), 5 56 character (*), 5 57 character (*), 5 58 pointer, 5 59 pointer, 5 60 fixed bin (35)); 5 61 dcl menu_$delete entry ( 5 62 character (*), 5 63 character (*), 5 64 character (*), 5 65 fixed binary (35)); 5 66 5 67 dcl menu_$list entry ( 5 68 character (*), 5 69 character (*), 5 70 character (*), 5 71 pointer, 5 72 fixed bin, 5 73 pointer, 5 74 fixed bin (35)); 5 75 5 76 dcl 1 menu_format aligned based (menu_format_ptr), 5 77 2 version fixed bin, 5 78 2 constraints, 5 79 3 max_width fixed bin, 5 80 3 max_height fixed bin, 5 81 2 n_columns fixed bin, 5 82 2 flags, 5 83 3 center_headers bit (1) unal, 5 84 3 center_trailers bit (1) unal, 5 85 3 pad bit (34) unal, 5 86 2 pad_char char (1); 5 87 5 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 5 89 2 version fixed bin, 5 90 2 lines_needed fixed bin, 5 91 2 width_needed fixed bin, 5 92 2 n_options fixed bin; 5 93 5 94 dcl menu_format_ptr pointer; 5 95 dcl menu_requirements_ptr pointer; 5 96 5 97 dcl (menu_format_version_1, menu_requirements_version_1) 5 98 fixed bin internal static init (1) options (constant); 5 99 5 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 5 101 options (constant) init 5 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 5 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 5 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 5 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 5 106 5 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 447 448 6 1 /* BEGIN INCLUDE FILE xforum_error_info 84-06-19 Davids */ 6 2 6 3 dcl 01 xforum_error_info based, 6 4 02 name char (32), 6 5 02 entry char (32), 6 6 02 doing char (100), 6 7 02 code fixed bin (35), 6 8 02 reason char (512); 6 9 6 10 /* END INCLUDE FILE xforum_error_info */ 449 450 7 1 /* BEGIN xforum_info.incl.pl1 NSDavids 84-08-15 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(87-07-21,LJAdams), approve(87-07-21,MCR7684), 7 7* audit(87-07-24,Blair), install(87-08-06,MR12.1-1065): 7 8* Declared constants for the different menu choices. 7 9* END HISTORY COMMENTS */ 7 10 7 11 7 12 /* 7 13* This structure is used to pass information between the various 7 14* xforum routines 7 15**/ 7 16 7 17 7 18 dcl 01 xforum_info based (xforum_info_ptr), 7 19 02 main_options, 7 20 03 xforum_mtg_list_ptr ptr, 7 21 03 usage_message char (80), 7 22 03 xforum_sys_area_ptr ptr, 7 23 03 function_key_data_ptr ptr, 7 24 03 spy_ptr ptr, 7 25 03 choice fixed bin, 7 26 03 more_choice fixed bin, 7 27 03 curr_meeting_index fixed bin, 7 28 03 menu_always_flag bit (1), 7 29 03 use_alternate_fkeys bit (1), 7 30 03 more_flag bit (1) aligned, 7 31 03 multics_mode bit (1), 7 32 03 handle_interactive_messages bit (1); 7 33 7 34 dcl xforum_info_ptr ptr; 7 35 7 36 /* CONSTANTS */ 7 37 7 38 dcl ( 7 39 CHANGED_MTG fixed bin init (1), 7 40 ATTENDED_MTG fixed bin init (2), 7 41 ELIGIBLE_MTG fixed bin init (3), 7 42 NEXT_MTG fixed bin init (4), 7 43 MODIFY_MTG_LIST fixed bin init (5), 7 44 PERSONALIZE fixed bin init (6), 7 45 GET_STARTED fixed bin init (7), 7 46 MULTICS_MODE fixed bin init (8), 7 47 XFORUM_MENU fixed bin init (9) 7 48 ) internal static options (constant); 7 49 7 50 /* END xforum_info.incl.pl1 NSDavids 84-08-15 */ 451 452 8 1 /* START OF: xforum_meeting_info.incl.pl1 * * * * * */ 8 2 8 3 8 4 8 5 /****^ HISTORY COMMENTS: 8 6* 1) change(84-05-03,Davids), approve(84-05-03,MCR7350), 8 7* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 8 8* Changed the length of name from 20 characters to 32 characters. 8 9* Version 2 forum names can be 26 characters long (forum suffix) - 8 10* and a little extra incase version 3 uses a shorter suffix yet. 8 11* 8 12* 84-10-03 Davids: added the unread_count, next_unread, and 8 13* seen_map_ptr elements. Also the declaration for the 8 14* seen_map_string and seen_map. 8 15* 8 16* 85-01-24 Davids: added the set_array_ptr to the 8 17* xforum_meeting_info structure and the set_array structure and 8 18* SET_ARRAY_SPEC_LEN variable. 8 19* 2) change(86-02-17,LJAdams), approve(86-02-17,MCR7350), 8 20* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 8 21* Added restref flag. 8 22* END HISTORY COMMENTS */ 8 23 8 24 declare 1 xforum_meeting_info based (xforum_meeting_info_ptr), 8 25 2 name char (32), 8 26 2 lidx fixed bin, 8 27 2 idx fixed bin, 8 28 2 current fixed bin, 8 29 2 last_seen fixed bin, 8 30 2 first_trans fixed bin, 8 31 2 last_trans fixed bin, 8 32 2 new_trans fixed bin, 8 33 2 flags unal, 8 34 3 all bit (1), 8 35 3 allref bit (1), 8 36 3 restref bit (1), 8 37 3 new bit (1), 8 38 3 range bit (1), 8 39 3 set bit (1), 8 40 2 current_ref fixed bin, 8 41 2 low fixed bin, 8 42 2 high fixed bin, 8 43 2 trans_struct_ptr ptr, 8 44 2 next_unread fixed bin, 8 45 2 unread_count fixed bin, 8 46 2 seen_map_ptr ptr, 8 47 2 set_array_ptr ptr; 8 48 8 49 dcl seen_map_string bit (1000000) based; 8 50 dcl seen_map (1000000) bit (1) unaligned based; 8 51 8 52 dcl 01 set_array based (xforum_meeting_info.set_array_ptr), 8 53 02 number fixed bin, 8 54 02 spec char (80) varying, 8 55 02 index (100000); 8 56 8 57 dcl SET_ARRAY_SPEC_LEN fixed bin init (80) internal static options (constant); 8 58 8 59 /* END OF: xforum_meeting_info.incl.pl1 * * * * * */ 453 454 9 1 /* START OF: xforum_meeting_list.incl.pl1 * * * * * */ 9 2 9 3 /* 9 4* 84-03-27 Davids: added the forum_version element 9 5* 9 6* 84-05-03 Davids: Changed the length of long_name and short_name from 9 7* 24 characters to 32 characters. Version 2 forum names can be 26 characters 9 8* long (forum suffix) - and a little extra incase version 3 uses a shorter 9 9* suffix yet. 9 10* 9 11* 84-09-24 Davids: Added the date_time, npath, and path elements. 9 12**/ 9 13 9 14 declare 1 xforum_meeting_list aligned 9 15 based (xforum_meeting_list_ptr), 9 16 2 date_time fixed bin (71), 9 17 2 no_selected fixed bin, 9 18 2 no_participant fixed bin, 9 19 2 no_changed fixed bin, 9 20 2 current_selected fixed bin, 9 21 2 current_participant fixed bin, 9 22 2 current_changed fixed bin, 9 23 2 forums (0 refer 9 24 (xforum_meeting_list.no_selected)), 9 25 3 long_name char (32) unaligned, 9 26 3 short_name char (32) unaligned, 9 27 3 directory char (168) unaligned, 9 28 3 forum_version fixed bin, 9 29 3 chairman char (32) unaligned, 9 30 3 uid bit (36) aligned, 9 31 3 flags unaligned, 9 32 4 eligible bit (1), 9 33 4 removed bit (1), 9 34 4 notify bit (1), 9 35 4 participant bit (1), 9 36 4 two_names bit (1), 9 37 4 read_only bit (1), 9 38 4 attended bit (1), 9 39 4 changed bit (1), 9 40 4 been_to bit (1), 9 41 4 mbz bit (27), 9 42 2 npaths fixed bin, 9 43 2 paths (0 refer (xforum_meeting_list.npaths)) 9 44 char (168) varying; 9 45 9 46 /* END OF: xforum_meeting_list.incl.pl1 * * * * * */ 455 456 10 1 /* START OF: xforum_ptr_struct_.incl.pl1 * * * * * */ 10 2 10 3 declare 1 xforum_ptr_struct_ external static, 10 4 2 xforum_meeting_list_ptr ptr, 10 5 2 xforum_meeting_info_ptr ptr, 10 6 2 xforum_trans_array_ptr ptr, 10 7 2 xforum_system_area_ptr ptr; 10 8 10 9 /* END OF: xforum_ptr_struct_.incl.pl1 * * * * * */ 457 458 11 1 /* BEGIN INCLUDE FILE xforum_spy 84-06-19 NSDavids */ 11 2 11 3 11 4 11 5 /****^ HISTORY COMMENTS: 11 6* 1) change(85-01-01,Davids), approve(85-01-01,MCR7350), 11 7* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 11 8* Modified to include personalization and subject selection. 11 9* END HISTORY COMMENTS */ 11 10 11 11 11 12 dcl 01 spy based (spy_ptr), 11 13 02 version char (8), 11 14 02 user_name char (32), 11 15 02 date_time char (32), 11 16 02 args char (80), 11 17 02 eligible fixed bin, 11 18 02 attending fixed bin, 11 19 02 changed fixed bin, 11 20 02 count fixed bin, 11 21 02 choices (0 refer (count)), 11 22 03 at fixed bin, 11 23 03 choice char (10); 11 24 11 25 11 26 dcl spy_ptr ptr; 11 27 dcl SPY_VERSION_1 char (8) init ("spy_0001"); 11 28 11 29 dcl SPY_AT_1 fixed bin init (1) internal static options (constant); 11 30 /* At Executive Forum Main menu */ 11 31 dcl SPY_AT_2 fixed bin init (2) internal static options (constant); 11 32 /* Requesting Help */ 11 33 dcl SPY_AT_3 fixed bin init (3) internal static options (constant); 11 34 /* At General Help menu */ 11 35 dcl SPY_AT_4 fixed bin init (4) internal static options (constant); 11 36 /* At query for a meeting name to goto */ 11 37 dcl SPY_AT_5 fixed bin init (5) internal static options (constant); 11 38 /* At menu of meeting names */ 11 39 dcl SPY_AT_6 fixed bin init (6) internal static options (constant); 11 40 /* At query for a meeting name to resign from */ 11 41 dcl SPY_AT_7 fixed bin init (7) internal static options (constant); 11 42 /* At Attending Meeting menu */ 11 43 dcl SPY_AT_8 fixed bin init (8) internal static options (constant); 11 44 /* At replying to a transaction */ 11 45 dcl SPY_AT_9 fixed bin init (9) internal static options (constant); 11 46 /* At entering a new transaction */ 11 47 dcl SPY_AT_10 fixed bin init (10) internal static options (constant); 11 48 /* At query for a transaction specifier */ 11 49 dcl SPY_AT_11 fixed bin init (11) internal static options (constant); 11 50 /* At query to check for changed meetings */ 11 51 dcl SPY_AT_12 fixed bin init (12) internal static options (constant); 11 52 /* At Getting Started menu */ 11 53 dcl SPY_AT_13 fixed bin init (13) internal static options (constant); 11 54 /* Meeting list update query, change in number of search paths */ 11 55 dcl SPY_AT_14 fixed bin init (14) internal static options (constant); 11 56 /* Meeting list update query, change in search paths listed */ 11 57 dcl SPY_AT_15 fixed bin init (15) internal static options (constant); 11 58 /* Copy Comments file name query */ 11 59 dcl SPY_AT_16 fixed bin init (16) internal static options (constant); 11 60 /* At Personalization menu */ 11 61 dcl SPY_AT_17 fixed bin init (17) internal static options (constant); 11 62 /* Personalizing an item prompt */ 11 63 dcl SPY_AT_18 fixed bin init (18) internal static options (constant); 11 64 /* string search prompt for comment selection */ 11 65 dcl SPY_AT_19 fixed bin init (19) internal static options (constant); 11 66 /* subject selection */ 11 67 11 68 dcl SPY_LOCATION (19) char (20) varying init ( 11 69 "XForum Main menu", 11 70 "Requesting Help", 11 71 "General Help menu", 11 72 "Meeting to goto?", 11 73 "Meeting names menu", 11 74 "Meeting to resign?", 11 75 "Meeting menu", 11 76 "Repling", 11 77 "Talking", 11 78 "Trans. spec?", 11 79 "Check changed mtgs", 11 80 "Getting Started", 11 81 "List update, num", 11 82 "List update, list", 11 83 "Copy to file name", 11 84 "Personalizing menu", 11 85 "Personalizing prompt", 11 86 "String search prompt", 11 87 "Subject selection") internal static options (constant); 11 88 11 89 /* END INCLUDE FILE xforum_spy */ 459 460 12 1 /* START OF: xforum_windows.incl.pl1 * * * * * */ 12 2 12 3 /* structures for windows used by xforum - Deryk Barker January 1984 */ 12 4 12 5 dcl 1 xforum_windows aligned external static, 12 6 2 (status, menu, bottom, orig_user_io, help_line) aligned like xforum_window_info; 12 7 12 8 dcl 1 xforum_window_info, 12 9 2 iocb ptr, 12 10 2 position aligned like window_position_info; 12 11 13 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 13 2 /* format: style3 */ 13 3 13 4 /* Modified 26 January 1982 by William York to add the set_more_handler 13 5* and reset_more_handler control orders. */ 13 6 /* Modified October 1982 by WMY to add set and get_token_characters, 13 7* set and get_more_prompt. */ 13 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 13 9* structure. */ 13 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 13 11* partial screen width windows. */ 13 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 13 13* This should be removed when window_info.incl.pl1 is created. */ 13 14 /* Modified 29 February 1984 by Barmar to add version 1 13 15* get_editor_key_bindings_info. */ 13 16 /* Modified 1 March 1984 by Barmar to add version 1 13 17* set_editor_key_bindings_info. */ 13 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 13 19* line_editor_key_bindings_info, which includes the name, description, and 13 20* info path */ 13 21 13 22 /* structure for the set_window_info and get_window_info 13 23* control orders. */ 13 24 13 25 dcl 1 window_position_info 13 26 based (window_position_info_ptr), 13 27 2 version fixed bin, 13 28 2 origin, 13 29 3 column fixed bin, 13 30 3 line fixed bin, 13 31 2 extent, 13 32 3 width fixed bin, 13 33 3 height fixed bin; 13 34 13 35 dcl (window_position_info_version, window_position_info_version_1) 13 36 fixed bin internal static init (1) options (constant); 13 37 dcl window_position_info_ptr 13 38 pointer; 13 39 13 40 /* structure for the set_window_status and get_window_status 13 41* control orders */ 13 42 13 43 declare window_status_info_ptr 13 44 pointer; 13 45 declare 1 window_status_info 13 46 aligned based (window_status_info_ptr), 13 47 2 version fixed bin, 13 48 2 status_string bit (36) aligned; /* string (window_status) */ 13 49 /* see window_status.incl.pl1 for the contents of this string */ 13 50 13 51 13 52 declare (window_status_version, window_status_version_1) 13 53 fixed bin internal static init (1) options (constant); 13 54 13 55 /* info structure for the set_more_responses and get_more_responses control 13 56* orders */ 13 57 13 58 13 59 dcl 1 more_responses_info 13 60 aligned based (more_responses_info_ptr), 13 61 2 version fixed bin, 13 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 13 63 2 n_noes fixed bin, 13 64 2 yeses char (32) unaligned, 13 65 2 noes char (32) unaligned; 13 66 13 67 dcl (more_responses_info_version_1, more_responses_version) 13 68 fixed bin internal static init (1) options (constant); 13 69 dcl more_responses_info_ptr 13 70 pointer; 13 71 13 72 /* structure for the set_break_table and get_break_table 13 73* control orders */ 13 74 13 75 declare break_table_ptr pointer; 13 76 declare 1 break_table_info aligned based (break_table_ptr), 13 77 2 version fixed bin, 13 78 2 breaks (0:127) bit (1) unaligned; 13 79 13 80 declare (break_table_info_version, break_table_info_version_1) 13 81 fixed bin init (1) internal static options (constant); 13 82 13 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 13 84 2 version fixed bin, 13 85 2 flags unaligned, 13 86 3 old_handler_valid 13 87 bit(1), 13 88 3 pad bit(35), 13 89 2 more_handler entry (pointer, bit(1) aligned), 13 90 2 old_more_handler entry (pointer, bit(1) aligned); 13 91 13 92 declare more_handler_info_ptr pointer; 13 93 13 94 declare (more_handler_info_version, more_handler_info_version_3) 13 95 fixed bin internal static options (constant) init (3); 13 96 13 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 13 98 2 version char(8), 13 99 2 token_character_count 13 100 fixed bin, 13 101 2 token_characters 13 102 char (128) unaligned; 13 103 13 104 declare token_characters_info_ptr pointer; 13 105 13 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 13 107 13 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 13 109 2 version char(8), 13 110 2 more_prompt char(80); 13 111 13 112 declare more_prompt_info_ptr pointer; 13 113 13 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 13 115 13 116 /* Line editor stuff ... */ 13 117 13 118 dcl line_editor_key_binding_info_ptr 13 119 pointer; 13 120 13 121 dcl line_editor_binding_count 13 122 fixed bin; 13 123 dcl line_editor_longest_sequence 13 124 fixed bin; 13 125 /* For each binding, action defines what to do for that sequence. Constants 13 126* are defined in window_editor_values.incl.pl1. Only if action is set to 13 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 13 128 13 129 dcl 1 line_editor_key_binding_info 13 130 aligned based (line_editor_key_binding_info_ptr), 13 131 2 version char(8), 13 132 2 binding_count fixed bin, 13 133 2 longest_sequence fixed bin, 13 134 2 bindings (line_editor_binding_count refer 13 135 (line_editor_key_binding_info.binding_count)), 13 136 3 sequence char(line_editor_longest_sequence refer 13 137 (line_editor_key_binding_info.longest_sequence)) varying, 13 138 3 action fixed bin, 13 139 3 numarg_action fixed binary, 13 140 3 editor_routine entry (pointer, fixed bin(35)), 13 141 3 name char (64) varying unaligned, 13 142 3 description char (256) varying unaligned, 13 143 3 info_path unaligned, 13 144 4 info_dir char (168), 13 145 4 info_entry char (32); 13 146 13 147 13 148 dcl line_editor_key_binding_info_version_3 13 149 char(8) static options (constant) init ("lekbi003"); 13 150 13 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 13 152 2 version char (8), 13 153 2 flags, 13 154 3 entire_state bit (1) unaligned, 13 155 3 mbz bit (35) unaligned, 13 156 2 key_binding_info_ptr ptr, 13 157 2 entire_state_ptr ptr; 13 158 13 159 dcl get_editor_key_bindings_info_ptr ptr; 13 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 13 161 13 162 dcl 1 set_editor_key_bindings_info aligned 13 163 based (set_editor_key_bindings_info_ptr), 13 164 2 version char (8), 13 165 2 flags, 13 166 3 replace bit (1) unaligned, 13 167 3 update bit (1) unaligned, 13 168 3 mbz bit (34) unaligned, 13 169 2 key_binding_info_ptr ptr; 13 170 13 171 dcl set_editor_key_bindings_info_ptr ptr; 13 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 13 173 13 174 /* This should be moved to window_info.incl.pl1 when that include file is 13 175* created. JR 2/1/84 */ 13 176 13 177 dcl 1 window_edit_line_info 13 178 based (window_edit_line_info_ptr), 13 179 2 version char (8), 13 180 2 line_ptr ptr, 13 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 13 182 13 183 dcl window_edit_line_info_version_1 13 184 char (8) static options (constant) init ("wedl0001"); 13 185 13 186 dcl window_edit_line_info_ptr 13 187 ptr; 13 188 13 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 12 12 12 13 12 14 /* END OF: xforum_windows.incl.pl1 * * * * * */ 461 462 463 call error (0, "Internal programming error - xforum_main_options$xforum_main_options called."); 464 465 goto_meeting: entry (gm_xforum_info_ptr); 466 467 468 /* PARAMETERS */ 469 470 dcl gm_xforum_info_ptr ptr; /* (input) */ 471 472 /* AUTOMATIC */ 473 474 dcl gm_count_ptr ptr; 475 dcl gm_curr_meeting fixed bin; 476 dcl gm_help_name char (17); 477 dcl gm_match_bits bit (36) aligned; 478 dcl gm_type fixed bin; 479 480 /* BASED */ 481 482 dcl gm_count fixed bin based (gm_count_ptr); 483 484 xforum_info_ptr = gm_xforum_info_ptr; 485 spy_ptr = xforum_info.main_options.spy_ptr; 486 gm_curr_meeting = 0; 487 488 on quit 489 begin; 490 call xforum_window_mgr$check_window_status; 491 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 492 call xforum_help_line_$pop; 493 call xforum_status_$redisplay ((0)); 494 call collect_spy_data (SPY_AT_4, "QUIT"); 495 gm_curr_meeting = 0; 496 goto exit_goto_meeting; 497 end; 498 499 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 500 501 if xforum_info.main_options.choice = ELIGIBLE_MTG 502 then do; 503 gm_type = GET_ELIGIBLE; 504 gm_help_name = "eligible_mtg_name"; 505 gm_count_ptr = addr (no_selected); 506 gm_match_bits = ALL; 507 end; 508 else if xforum_info.main_options.choice = ATTENDED_MTG 509 then do; 510 gm_type = GET_ATTENDED; 511 gm_help_name = "attended_mtg_name"; 512 gm_count_ptr = addr (no_participant); 513 gm_match_bits = PARTICIPANT; 514 end; 515 else if xforum_info.main_options.choice = CHANGED_MTG 516 then do; 517 gm_type = GET_CHANGED; 518 gm_help_name = "changed_mtg_name"; 519 gm_count_ptr = addr (no_changed); 520 gm_match_bits = CHANGED; 521 end; 522 else call error (0, "Internal error in next_meeting proc."); 523 524 if gm_count = 0 & gm_type = GET_CHANGED 525 then call handle_no_changed_mtgs; /* gm_count is set globally */ 526 527 if gm_count = 0 then do; 528 call ioa_ ("You have no ^[^;attended^;changed^] meetings.", gm_type); 529 return; 530 end; 531 532 if gm_count = 1 533 then do; 534 call next_meeting_internal (gm_match_bits, 535 gm_curr_meeting, 536 xforum_info.main_options.spy_ptr); 537 call ioa_ ("^a meeting automatically selected,^/ it is your only ^[^;attended^;changed^] meeting.", 538 forums (gm_curr_meeting).long_name, gm_type); 539 call timer_manager_$sleep (4, "11"b); 540 end; 541 else call get_curr_meeting (gm_match_bits, SPY_AT_4, gm_help_name, gm_curr_meeting); 542 543 if gm_curr_meeting ^= 0 544 then do; 545 if xforum_user_profile$get_read_comments_by_subject () 546 then call xforum_sub_attend_mtg_menu (gm_curr_meeting, gm_match_bits, spy_ptr); 547 else call xforum_ent_attend_mtg_menu (gm_curr_meeting, gm_match_bits, spy_ptr); 548 end; 549 550 exit_goto_meeting: 551 return; 552 553 next_meeting: entry (nm_xforum_info_ptr); 554 555 556 /* PARAMETERS */ 557 558 dcl nm_xforum_info_ptr ptr; 559 560 /* AUTOMATIC */ 561 562 dcl nm_match_bits bit (36) aligned; 563 dcl nm_next_mtg_index fixed bin; 564 565 566 567 568 xforum_info_ptr = nm_xforum_info_ptr; 569 spy_ptr = xforum_info.spy_ptr; 570 571 /* Note that choices 1 through 3 (CHANGED_MTG, ATTENDED_MTD, and ELIGIBLE_MTG) 572* are checked because those are the choices that will be set if the user 573* does a next meetings from within in the attend meeting menu. 574**/ 575 576 if xforum_info.main_options.choice = NEXT_MTG | 577 xforum_info.main_options.choice = CHANGED_MTG 578 then nm_match_bits = CHANGED; 579 else 580 if xforum_info.main_options.choice = MULTICS_MODE | 581 xforum_info.main_options.choice = ATTENDED_MTG 582 then nm_match_bits = PARTICIPANT; 583 else 584 if xforum_info.main_options.choice = XFORUM_MENU | 585 xforum_info.main_options.choice = ELIGIBLE_MTG 586 then nm_match_bits = ALL; 587 588 call next_meeting_internal (nm_match_bits, nm_next_mtg_index, spy_ptr); 589 590 xforum_info.main_options.curr_meeting_index = nm_next_mtg_index; 591 592 if nm_next_mtg_index < no_selected + 1 593 then do; 594 if xforum_user_profile$get_read_comments_by_subject () 595 then call xforum_sub_attend_mtg_menu (nm_next_mtg_index, nm_match_bits, spy_ptr); 596 else call xforum_ent_attend_mtg_menu (nm_next_mtg_index, nm_match_bits, spy_ptr); 597 end; 598 599 return; 600 601 index_of_next_meeting: entry (ionm_match_bits, ionm_spy_ptr) returns (fixed bin); 602 603 /* PARAMETERS */ 604 605 dcl ionm_match_bits bit (36) aligned; 606 dcl ionm_spy_ptr ptr; 607 608 /* AUTOMATIC */ 609 610 dcl ionm_meeting_index fixed bin; 611 612 613 614 call next_meeting_internal (ionm_match_bits, ionm_meeting_index, ionm_spy_ptr); 615 616 return (ionm_meeting_index); 617 618 modify_meeting_list: entry (mml_xforum_info_ptr); 619 620 621 /* PARAMETERS */ 622 623 dcl mml_xforum_info_ptr ptr; 624 625 626 call ioa_ ("Modify Meeting List has not yet been implemented."); 627 628 return; 629 630 get_curr_meeting: proc (gcm_match_bits, gcm_spy_id, gcm_help_name, gcm_curr_meeting); 631 632 633 /* PARAMETERS */ 634 635 dcl gcm_match_bits /* (input) */ 636 bit (36) aligned; 637 dcl gcm_spy_id /* (input) */ 638 fixed bin; 639 dcl gcm_help_name /* (input) */ 640 char (17); 641 dcl gcm_curr_meeting /* (output) */ 642 fixed bin; 643 644 /* AUTOMATIC */ 645 646 dcl gcm_name_entered char (32) varying; 647 648 649 gcm_curr_meeting = 0; 650 651 if xforum_user_profile$get_menu_always () 652 then do; 653 display_menu: 654 call get_choice_from_menu (gcm_match_bits, gcm_curr_meeting, gcm_name_entered); 655 if gcm_curr_meeting = -1 656 then goto display_help; 657 end; 658 else do; 659 display_help: 660 call xforum_dyn_menu_$prompt_instead_of_menu ("Return to Executive Forum menu", "Enter name of meeting", 661 "Meeting names", "meeting name", gcm_help_name, gcm_spy_id, spy_ptr, gcm_name_entered); 662 if gcm_name_entered = "??" 663 then goto display_menu; 664 665 if gcm_name_entered = "" 666 then gcm_curr_meeting = 0; 667 else call find_meeting (gcm_name_entered, gcm_curr_meeting); 668 669 if gcm_curr_meeting ^= 0 670 then do; 671 if ((unspec (forums (gcm_curr_meeting).flags) & gcm_match_bits) = FALSE) 672 then do; /* ^right type */ 673 if gcm_match_bits = PARTICIPANT 674 then call com_err_$suppress_name (0, ME, 675 "You are not a participant of the ""^a"" meeting.", gcm_name_entered); 676 else call com_err_$suppress_name (0, ME, 677 "The ""^a"" meeting has not changed.", gcm_name_entered); 678 gcm_curr_meeting = 0; 679 end; 680 end; 681 end; 682 683 return; 684 685 end get_curr_meeting; 686 687 get_choice_from_menu: proc (gcfm_match_bits, gcfm_curr_meeting, gcfm_name_entered); 688 689 690 /* PARAMETERS */ 691 692 dcl gcfm_match_bits /* (input) */ 693 bit (36) aligned; 694 dcl gcfm_curr_meeting /* (output) */ 695 fixed bin; 696 dcl gcfm_name_entered /* (output) */ 697 char (32) varying; 698 699 /* AUTOMATIC */ 700 701 dcl gcfm_count fixed bin; 702 dcl gcfm_option_index fixed bin; 703 dcl gcfm_title char (50) varying; 704 705 706 if gcfm_match_bits = ALL 707 then do; 708 gcfm_count = no_selected; 709 gcfm_title = " Eligible Meetings Selection "; 710 end; 711 else if gcfm_match_bits = PARTICIPANT 712 then do; 713 gcfm_count = no_participant; 714 gcfm_title = " Attended Meetings Selection "; 715 end; 716 else if gcfm_match_bits = CHANGED 717 then do; 718 gcfm_count = no_changed; 719 gcfm_title = " Changed Meeting Selection "; 720 end; 721 722 begin; 723 dcl (gcfm_i, gcfm_j) fixed bin; 724 dcl gcfm_names (gcfm_count) char (32) aligned; 725 dcl gcfm_nindex (gcfm_count) fixed bin; 726 727 gcfm_i = 0; 728 729 do gcfm_j = 1 to no_selected; 730 if (unspec (forums (gcfm_j).flags) & gcfm_match_bits) 731 then do; 732 gcfm_i = gcfm_i + 1; 733 gcfm_names (gcfm_i) = forums (gcfm_j).long_name; 734 gcfm_nindex (gcfm_i) = gcfm_j; 735 end; 736 end; 737 738 call xforum_dyn_menu_$display_and_get_choice ((gcfm_names), gcfm_i, (gcfm_title), "ENTER MEETING NAME", 739 "Return to Executive Forum menu", SPY_AT_5, spy_ptr, gcfm_option_index); 740 741 if gcfm_option_index > 0 742 then do; 743 gcfm_curr_meeting = gcfm_nindex (gcfm_option_index); 744 gcfm_name_entered = gcfm_names (gcfm_option_index); 745 end; 746 else do; 747 gcfm_curr_meeting = gcfm_option_index; 748 gcfm_name_entered = ""; 749 end; 750 end; 751 752 end get_choice_from_menu; 753 754 find_meeting: proc (fm_name_entered, fm_midx); 755 756 757 /* PARAMETERS */ 758 759 dcl fm_name_entered /* (input) */ 760 char (32) varying; 761 dcl fm_midx /* (output) */ 762 fixed bin; 763 764 /* AUTOMATIC */ 765 766 dcl fm_code fixed bin (35); 767 dcl fm_dir char (168); 768 dcl fm_fname char (32); 769 dcl fm_i fixed bin; 770 dcl fm_j fixed bin; 771 dcl fm_meeting_version fixed bin; 772 dcl fm_new_paths_ptr ptr; 773 dcl fm_old_paths_ptr ptr; 774 dcl 1 fm_fi like forum_info; 775 776 /* BASED */ 777 778 dcl 01 fm_paths_ovly based, 779 02 npaths fixed bin, 780 02 paths (200) char (168) varying; /* a large constant is need because */ 781 /* the new npaths will probbaly overlap one of the search */ 782 /* directories and there fore cannot be set until all the */ 783 /* serach directories have been moved */ 784 785 786 787 788 fm_midx = 0; 789 790 do fm_i = 1 to no_selected; /* look for it */ 791 if fm_name_entered = forums (fm_i).long_name 792 | fm_name_entered = forums (fm_i).short_name then do; 793 fm_midx = fm_i; 794 return; 795 end; 796 end; /* not in list - oh dear */ 797 798 fm_meeting_version = 1; /* assume its a version 1 meeting */ 799 call xforum_find_path_ ((fm_name_entered), 1, fm_dir, fm_fname, fm_code); 800 if fm_code ^= 0 /* Its not a version 1 meeting */ 801 then do; 802 fm_meeting_version = 2; /* now assume its a version 2 meeting */ 803 call xforum_find_path_ ((fm_name_entered), 2, fm_dir, fm_fname, fm_code); 804 if fm_code ^= 0 805 then do; 806 call ioa_ ("The ""^a"" meeting cannot be found.", fm_name_entered); 807 call timer_manager_$sleep (4, "11"b); 808 return; 809 end; 810 end; 811 812 fm_fi.version = forum_info_version_1; 813 814 call forum_$forum_info (fm_dir, fm_fname, "", clock (), addr (fm_fi), fm_code); 815 if fm_code ^= 0 then do; 816 call com_err_$suppress_name (fm_code, ME, fm_name_entered); 817 return; 818 end; /* now find where to put it in list */ 819 do fm_i = 1 to no_selected; 820 if fm_name_entered < forums (fm_i).long_name then do; 821 goto found_in_list; 822 end; 823 end; 824 found_in_list: 825 if current_participant ^< fm_i then 826 current_participant = current_participant + 1; 827 828 if current_changed ^< fm_i then 829 current_changed = current_changed + 1; 830 831 fm_old_paths_ptr = addr (xforum_meeting_list.npaths); 832 833 no_selected = no_selected + 1; 834 835 fm_new_paths_ptr = addr (xforum_meeting_list.npaths); /* move the search paths down */ 836 do fm_j = fm_old_paths_ptr -> fm_paths_ovly.npaths to 1 by -1; 837 fm_new_paths_ptr -> fm_paths_ovly.paths (fm_j) = fm_old_paths_ptr -> fm_paths_ovly.paths (fm_j); 838 end; 839 fm_new_paths_ptr -> fm_paths_ovly.npaths = fm_old_paths_ptr -> fm_paths_ovly.npaths; 840 841 842 if fm_i < (no_selected - 1) then /* ripple rest of list up */ 843 do fm_j = (no_selected - 1) to fm_i by -1; 844 forums (fm_j + 1) = forums (fm_j); 845 end; 846 847 forums (fm_i).long_name = fm_name_entered; 848 forums (fm_i).short_name = fm_name_entered; 849 forums (fm_i).directory = fm_dir; 850 forums (fm_i).forum_version = fm_meeting_version; 851 forums (fm_i).two_names = FALSE; 852 forums (fm_i).uid = fm_fi.forum_uid; 853 forums (fm_i).eligible = fm_fi.eligible; 854 forums (fm_i).removed = fm_fi.removed; 855 forums (fm_i).notify = fm_fi.notify; 856 forums (fm_i).read_only = fm_fi.read_only; 857 forums (fm_i).attended = (fm_fi.last_time_attended ^= 0); 858 forums (fm_i).participant = forums (fm_i).attended & ^fm_fi.removed; 859 if forums (fm_i).participant then 860 no_participant = no_participant + 1; 861 if fm_fi.changes_count ^= 0 & forums (fm_i).participant 862 then do; 863 no_changed = no_changed + 1; 864 forums (fm_i).changed = "1"b; 865 end; 866 else forums (fm_i).changed = "0"b; 867 forums (fm_i).been_to = "0"b; 868 forums (fm_i).mbz = "0"b; 869 forums (fm_i).chairman = 870 rtrim (fm_fi.chairman.username) || "." || (fm_fi.chairman.project); 871 872 fm_midx = fm_i; 873 874 return; 875 end find_meeting; 876 877 next_meeting_internal: proc (nmi_match_bits, nmi_next_mtg_index, nmi_spy_ptr); 878 879 880 /* PARAMETERS */ 881 882 dcl nmi_match_bits /* (input) */ 883 bit (36) aligned; 884 dcl nmi_next_mtg_index /* (input) */ 885 fixed bin; 886 dcl nmi_spy_ptr /* (input) */ 887 ptr; 888 889 /* AUTOMATIC */ 890 891 dcl nmi_count_ptr ptr; 892 dcl nmi_curr_mtg_ptr ptr; 893 dcl nmi_i fixed bin; 894 dcl nmi_name_entered char (32) varying; 895 dcl nmi_type fixed bin; 896 897 /* BASED */ 898 899 dcl nmi_count fixed bin based (nmi_count_ptr); 900 dcl nmi_curr_mtg fixed bin based (nmi_curr_mtg_ptr); 901 902 903 spy_ptr = nmi_spy_ptr; 904 905 on quit 906 begin; 907 call xforum_window_mgr$check_window_status; 908 call window_$clear_window (xforum_windows.bottom.iocb, 909 (0)); 910 call xforum_help_line_$pop; 911 call xforum_status_$redisplay ((0)); 912 nmi_next_mtg_index = no_selected + 1; 913 goto exit_next_meeting_internal; 914 end; 915 916 if nmi_match_bits = ALL then do; 917 nmi_type = GET_ELIGIBLE; 918 nmi_count_ptr = addr (no_selected); 919 nmi_curr_mtg_ptr = addr (current_selected); 920 end; 921 else if nmi_match_bits = PARTICIPANT then do; 922 nmi_type = GET_ATTENDED; 923 nmi_count_ptr = addr (no_participant); 924 nmi_curr_mtg_ptr = addr (current_participant); 925 end; 926 else if nmi_match_bits = CHANGED then do; 927 nmi_type = GET_CHANGED; 928 nmi_count_ptr = addr (no_changed); 929 nmi_curr_mtg_ptr = addr (current_changed); 930 end; 931 else call error (0, "Internal error in next_meeting proc."); 932 933 if nmi_count = 0 & nmi_type = GET_CHANGED 934 then call handle_no_changed_mtgs; 935 936 if nmi_count = 0 then do; 937 call ioa_ ("You have no ^[^;attended^;changed^] meetings.", nmi_type); 938 call timer_manager_$sleep (4, "11"b); 939 nmi_curr_mtg = no_selected + 1; 940 nmi_next_mtg_index = nmi_curr_mtg; 941 goto exit_next_meeting_internal; 942 end; 943 944 do nmi_i = nmi_curr_mtg + 1 to no_selected; 945 if (unspec (forums (nmi_i).flags) & nmi_match_bits) 946 then 947 if (nmi_match_bits = CHANGED | ^forums (nmi_i).been_to) 948 then goto next_found; 949 end; 950 951 do nmi_i = 1 to nmi_curr_mtg; 952 if (unspec (forums (nmi_i).flags) & nmi_match_bits) 953 then 954 if (nmi_match_bits = CHANGED | ^forums (nmi_i).been_to) 955 then goto next_found; 956 end; 957 958 959 /* obviously none left */ 960 nmi_curr_mtg = no_selected + 1; 961 nmi_next_mtg_index = nmi_curr_mtg; 962 call ioa_ ("You have no ^[^;attended^;changed^] meetings.", nmi_type); 963 call timer_manager_$sleep (4, "11"b); 964 965 goto exit_next_meeting_internal; 966 967 968 next_found: 969 nmi_curr_mtg = nmi_i; 970 nmi_next_mtg_index = nmi_curr_mtg; 971 972 nmi_name_entered = ""; 973 974 exit_next_meeting_internal: 975 return; 976 977 end next_meeting_internal; 978 979 handle_no_changed_mtgs: proc; 980 981 982 /* PARAMETERS */ 983 984 /* INTERNAL AUTOMATIC */ 985 986 dcl hncm_i fixed bin; 987 dcl hncm_banner char (40); 988 dcl hncm_code fixed bin (35); 989 dcl hncm_name char (32); 990 dcl hncm_yes_ans bit (1); 991 dcl 01 hncm_fi like forum_info; 992 993 on quit 994 begin; 995 call collect_spy_data (SPY_AT_11, "QUIT"); 996 goto exit_handle_no_changed_mtgs; 997 end; 998 999 hncm_fi.version = forum_info_version_1; 1000 1001 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 1002 1003 call xforum_help_line_$push ("0"b, "", "", QUERY_USAGE); 1004 1005 call command_query_$yes_no (hncm_yes_ans, 0, "", 1006 " Your meeting list shows no changed meetings. If you answer" || 1007 "^/yes, each of the meetings you participate in will be checked for" || 1008 "^/changes and your meeting list will be updated. This process can" || 1009 "^/take several minutes." || 1010 "^/^/Do you want to have your meetings checked and the list updated? ", 1011 "You have no changed meetings according to the current changed meeting list." || 1012 "^/Do you want to have your meetings checked and the list updated? "); 1013 1014 if ^hncm_yes_ans 1015 then do; 1016 call collect_spy_data (SPY_AT_11, "no"); 1017 goto exit_handle_no_changed_mtgs; 1018 end; 1019 1020 call ioa_ ("^/Checking meetings, this may take a while."); 1021 1022 call collect_spy_data (SPY_AT_11, "yes"); 1023 1024 call xforum_help_line_$push ("0"b, "", "Return to Executive Forum menu", ""); 1025 1026 do hncm_i = 1 to xforum_meeting_list.no_selected; 1027 if xforum_meeting_list.forums (hncm_i).participant 1028 then do; 1029 if xforum_meeting_list.forums (hncm_i).forum_version = 1 1030 then hncm_name = rtrim (xforum_meeting_list.forums (hncm_i).long_name) || ".control"; 1031 else hncm_name = rtrim (xforum_meeting_list.forums (hncm_i).long_name) || ".forum"; 1032 1033 call forum_$forum_info (xforum_meeting_list.forums (hncm_i).directory, hncm_name, 1034 "", clock (), addr (hncm_fi), hncm_code); 1035 if hncm_code ^= 0 1036 then do; 1037 call ioa_ ("The ^a meeting^/has been deleted or renamed since your meeting list was created.", 1038 xforum_meeting_list.forums (hncm_i).long_name); 1039 call ioa_ ("To update your meeting list exit Executive Forum^/and reinvoke it with the -force control argument."); 1040 xforum_meeting_list.forums (hncm_i).participant = "0"b; 1041 call timer_manager_$sleep (4, "11"b); 1042 end; 1043 if hncm_fi.changes_count > 0 1044 then do; 1045 xforum_meeting_list.no_changed = xforum_meeting_list.no_changed + 1; 1046 xforum_meeting_list.forums (hncm_i).changed = TRUE; 1047 end; 1048 end; 1049 end; 1050 1051 exit_handle_no_changed_mtgs: 1052 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 1053 call xforum_help_line_$pop; 1054 call ioa_$rsnnl ("Eligible ^d, Attended ^d, Changed ^d", 1055 hncm_banner, (0), no_selected, no_participant, no_changed); 1056 call xforum_status_$update_banner (hncm_banner); 1057 if no_participant ^= 0 & no_changed ^= 0 1058 then call xforum_status_$redisplay ((0)); 1059 1060 return; 1061 1062 end handle_no_changed_mtgs; 1063 1064 collect_spy_data: proc (csd_where, csd_response); 1065 1066 1067 /* PARAMETERS */ 1068 1069 dcl csd_where /* (input) */ 1070 fixed bin; 1071 dcl csd_response /* (input) */ 1072 char (*); 1073 1074 1075 1076 spy.count = spy.count + 1; 1077 spy.choices (count).at = csd_where; 1078 spy.choices (count).choice = csd_response; 1079 1080 return; 1081 1082 end collect_spy_data; 1083 1084 error: proc (e_code, e_reason); 1085 1086 1087 /* PARAMETERS */ 1088 1089 dcl e_code /* (input) */ 1090 fixed bin (35); 1091 dcl e_reason /* (input) */ 1092 char (512); 1093 1094 1095 1096 1097 xmo_xforum_error_info.name = "xforum_main_options"; 1098 xmo_xforum_error_info.entry = ""; 1099 xmo_xforum_error_info.doing = ""; 1100 xmo_xforum_error_info.code = e_code; 1101 xmo_xforum_error_info.reason = e_reason; 1102 1103 call signal_ ("xforum_fatal_error", null (), addr (xmo_xforum_error_info), null ()); 1104 1105 end error; 1106 1107 end xforum_main_options; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/06/87 1008.9 xforum_main_options.pl1 >special_ldd>install>MR12.1-1065>xforum_main_options.pl1 439 1 12/03/84 1241.4 forum_dcls.incl.pl1 >ldd>include>forum_dcls.incl.pl1 441 2 10/31/84 1115.3 forum_flags.incl.pl1 >ldd>include>forum_flags.incl.pl1 443 3 08/16/86 1538.0 forum_info.incl.pl1 >ldd>include>forum_info.incl.pl1 445 4 10/31/84 1115.4 forum_user_trans.incl.pl1 >ldd>include>forum_user_trans.incl.pl1 447 5 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 449 6 12/03/84 1241.6 xforum_error_info.incl.pl1 >ldd>include>xforum_error_info.incl.pl1 451 7 08/06/87 1007.2 xforum_info.incl.pl1 >special_ldd>install>MR12.1-1065>xforum_info.incl.pl1 453 8 04/25/86 0859.6 xforum_meeting_info.incl.pl1 >ldd>include>xforum_meeting_info.incl.pl1 455 9 12/03/84 1241.5 xforum_meeting_list.incl.pl1 >ldd>include>xforum_meeting_list.incl.pl1 457 10 12/03/84 1241.6 xforum_ptr_struct_.incl.pl1 >ldd>include>xforum_ptr_struct_.incl.pl1 459 11 04/25/86 0859.6 xforum_spy.incl.pl1 >ldd>include>xforum_spy.incl.pl1 461 12 12/03/84 1241.6 xforum_windows.incl.pl1 >ldd>include>xforum_windows.incl.pl1 12-12 13 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.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. ALL constant bit(36) initial dcl 410 ref 506 583 706 916 ATTENDED_MTG constant fixed bin(17,0) initial dcl 7-38 ref 508 579 CHANGED constant bit(36) initial dcl 410 ref 520 576 716 926 945 952 CHANGED_MTG constant fixed bin(17,0) initial dcl 7-38 ref 515 576 ELIGIBLE_MTG constant fixed bin(17,0) initial dcl 7-38 ref 501 583 FALSE constant bit(1) initial dcl 410 ref 671 851 GET_ATTENDED constant fixed bin(17,0) initial dcl 410 ref 510 922 GET_CHANGED constant fixed bin(17,0) initial dcl 410 ref 517 524 927 933 GET_ELIGIBLE constant fixed bin(17,0) initial dcl 410 ref 503 917 ME 000023 constant char(19) initial unaligned dcl 410 set ref 673* 676* 816* MULTICS_MODE constant fixed bin(17,0) initial dcl 7-38 ref 579 NEXT_MTG constant fixed bin(17,0) initial dcl 7-38 ref 576 PARTICIPANT constant bit(36) initial dcl 410 ref 513 579 673 711 921 QUERY_USAGE 000002 constant char(67) initial unaligned dcl 410 set ref 1003* SPY_AT_11 000000 constant fixed bin(17,0) initial dcl 11-49 set ref 995* 1016* 1022* SPY_AT_4 000076 constant fixed bin(17,0) initial dcl 11-35 set ref 494* 541* SPY_AT_5 000001 constant fixed bin(17,0) initial dcl 11-37 set ref 738* SPY_VERSION_1 000112 automatic char(8) initial unaligned dcl 11-27 set ref 11-27* TRUE constant bit(1) initial dcl 410 ref 1046 XFORUM_MENU constant fixed bin(17,0) initial dcl 7-38 ref 583 addr builtin function dcl 427 ref 505 512 519 814 814 831 835 918 919 923 924 928 929 1033 1033 1103 1103 at 52 based fixed bin(17,0) array level 3 dcl 11-12 set ref 1077* attended 114(06) based bit(1) array level 4 packed unaligned dcl 9-14 set ref 857* 858 been_to 114(08) based bit(1) array level 4 packed unaligned dcl 9-14 set ref 867* 945 952 bottom 20 000334 external static structure level 2 dcl 12-5 chairman 2 000310 automatic structure level 2 in structure "fm_fi" packed unaligned dcl 774 in procedure "find_meeting" chairman 103 based char(32) array level 3 in structure "xforum_meeting_list" packed unaligned dcl 9-14 in procedure "xforum_main_options" set ref 869* changed 114(07) based bit(1) array level 4 packed unaligned dcl 9-14 set ref 864* 866* 1046* changes_count 24 000310 automatic fixed bin(17,0) level 2 in structure "fm_fi" dcl 774 in procedure "find_meeting" set ref 861 changes_count 24 000126 automatic fixed bin(17,0) level 2 in structure "hncm_fi" dcl 991 in procedure "handle_no_changed_mtgs" set ref 1043 choice 34 based fixed bin(17,0) level 3 in structure "xforum_info" dcl 7-18 in procedure "xforum_main_options" ref 501 508 515 576 576 579 579 583 583 choice 53 based char(10) array level 3 in structure "spy" packed unaligned dcl 11-12 in procedure "xforum_main_options" set ref 1078* choices 52 based structure array level 2 unaligned dcl 11-12 clock builtin function dcl 427 ref 814 814 1033 1033 code 51 000010 internal static fixed bin(35,0) level 2 dcl 406 set ref 1100* com_err_$suppress_name 000262 constant entry external dcl 378 ref 673 676 816 command_query_$yes_no 000264 constant entry external dcl 379 ref 1005 count 51 based fixed bin(17,0) level 2 dcl 11-12 set ref 1076* 1076 1077 1078 csd_response parameter char unaligned dcl 1071 ref 1064 1078 csd_where parameter fixed bin(17,0) dcl 1069 ref 1064 1077 curr_meeting_index 36 based fixed bin(17,0) level 3 dcl 7-18 set ref 590* current_changed 7 based fixed bin(17,0) level 2 dcl 9-14 set ref 828 828* 828 929 current_participant 6 based fixed bin(17,0) level 2 dcl 9-14 set ref 824 824* 824 924 current_selected 5 based fixed bin(17,0) level 2 dcl 9-14 set ref 919 directory 30 based char(168) array level 3 packed unaligned dcl 9-14 set ref 849* 1033* doing 20 000010 internal static char(100) level 2 packed unaligned dcl 406 set ref 1099* e_code parameter fixed bin(35,0) dcl 1089 ref 1084 1100 e_reason parameter char(512) unaligned dcl 1091 ref 1084 1101 eligible 114 based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 9-14 in procedure "xforum_main_options" set ref 853* eligible 25 000310 automatic bit(1) level 3 in structure "fm_fi" packed unaligned dcl 774 in procedure "find_meeting" set ref 853 entry 10 000010 internal static char(32) level 2 packed unaligned dcl 406 set ref 1098* flags 25 000310 automatic structure level 2 in structure "fm_fi" packed unaligned dcl 774 in procedure "find_meeting" flags 114 based structure array level 3 in structure "xforum_meeting_list" packed unaligned dcl 9-14 in procedure "xforum_main_options" set ref 671 730 945 952 fm_code 000216 automatic fixed bin(35,0) dcl 766 set ref 799* 800 803* 804 814* 815 816* fm_dir 000217 automatic char(168) unaligned dcl 767 set ref 799* 803* 814* 849 fm_fi 000310 automatic structure level 1 unaligned dcl 774 set ref 814 814 fm_fname 000271 automatic char(32) unaligned dcl 768 set ref 799* 803* 814* fm_i 000301 automatic fixed bin(17,0) dcl 769 set ref 790* 791 791 793* 819* 820* 824 828 842 842 847 848 849 850 851 852 853 854 855 856 857 858 858 859 861 864 866 867 868 869 872 fm_j 000302 automatic fixed bin(17,0) dcl 770 set ref 836* 837 837* 842* 844 844* fm_meeting_version 000303 automatic fixed bin(17,0) dcl 771 set ref 798* 802* 850 fm_midx parameter fixed bin(17,0) dcl 761 set ref 754 788* 793* 872* fm_name_entered parameter varying char(32) dcl 759 set ref 754 791 791 799 803 806* 816* 820 847 848 fm_new_paths_ptr 000304 automatic pointer dcl 772 set ref 835* 837 839 fm_old_paths_ptr 000306 automatic pointer dcl 773 set ref 831* 836 837 839 fm_paths_ovly based structure level 1 unaligned dcl 778 forum_$forum_info 000330 constant entry external dcl 1-7 ref 814 1033 forum_info based structure level 1 dcl 3-14 forum_info_version_1 constant fixed bin(17,0) initial dcl 3-40 ref 812 999 forum_uid 1 000310 automatic bit(36) level 2 packed unaligned dcl 774 set ref 852 forum_version 102 based fixed bin(17,0) array level 3 dcl 9-14 set ref 850* 1029 forums 10 based structure array level 2 dcl 9-14 set ref 844* 844 gcfm_count 000170 automatic fixed bin(17,0) dcl 701 set ref 708* 713* 718* 724 725 gcfm_curr_meeting parameter fixed bin(17,0) dcl 694 set ref 687 743* 747* gcfm_i 000100 automatic fixed bin(17,0) dcl 723 set ref 727* 732* 732 733 734 738* gcfm_j 000101 automatic fixed bin(17,0) dcl 723 set ref 729* 730 733 734* gcfm_match_bits parameter bit(36) dcl 692 ref 687 706 711 716 730 gcfm_name_entered parameter varying char(32) dcl 696 set ref 687 744* 748* gcfm_names 000102 automatic char(32) array dcl 724 set ref 733* 738 744 gcfm_nindex 000102 automatic fixed bin(17,0) array dcl 725 set ref 734* 743 gcfm_option_index 000171 automatic fixed bin(17,0) dcl 702 set ref 738* 741 743 744 747 gcfm_title 000172 automatic varying char(50) dcl 703 set ref 709* 714* 719* 738 gcm_curr_meeting parameter fixed bin(17,0) dcl 641 set ref 630 649* 653* 655 665* 667* 669 671 678* gcm_help_name parameter char(17) unaligned dcl 639 set ref 630 659* gcm_match_bits parameter bit(36) dcl 635 set ref 630 653* 671 673 gcm_name_entered 000150 automatic varying char(32) dcl 646 set ref 653* 659* 662 665 667* 673* 676* gcm_spy_id parameter fixed bin(17,0) dcl 637 set ref 630 659* gm_count based fixed bin(17,0) dcl 482 ref 524 527 532 gm_count_ptr 000124 automatic pointer dcl 474 set ref 505* 512* 519* 524 527 532 gm_curr_meeting 000126 automatic fixed bin(17,0) dcl 475 set ref 486* 495* 534* 537 541* 543 545* 547* gm_help_name 000127 automatic char(17) unaligned dcl 476 set ref 504* 511* 518* 541* gm_match_bits 000134 automatic bit(36) dcl 477 set ref 506* 513* 520* 534* 541* 545* 547* gm_type 000135 automatic fixed bin(17,0) dcl 478 set ref 503* 510* 517* 524 528* 537* gm_xforum_info_ptr parameter pointer dcl 470 ref 465 484 hncm_banner 000101 automatic char(40) unaligned dcl 987 set ref 1054* 1056* hncm_code 000113 automatic fixed bin(35,0) dcl 988 set ref 1033* 1035 hncm_fi 000126 automatic structure level 1 unaligned dcl 991 set ref 1033 1033 hncm_i 000100 automatic fixed bin(17,0) dcl 986 set ref 1026* 1027 1029 1029 1031 1033 1037 1040 1046* hncm_name 000114 automatic char(32) unaligned dcl 989 set ref 1029* 1031* 1033* hncm_yes_ans 000124 automatic bit(1) unaligned dcl 990 set ref 1005* 1014 ioa_ 000266 constant entry external dcl 380 ref 528 537 626 806 937 962 1020 1037 1039 ioa_$rsnnl 000270 constant entry external dcl 381 ref 1054 iocb 20 000334 external static pointer level 3 dcl 12-5 set ref 491* 499* 908* 1001* 1051* ionm_match_bits parameter bit(36) dcl 605 set ref 601 614* ionm_meeting_index 000140 automatic fixed bin(17,0) dcl 610 set ref 614* 616 ionm_spy_ptr parameter pointer dcl 606 set ref 601 614* last_time_attended 22 000310 automatic fixed bin(71,0) level 2 dcl 774 set ref 857 long_name 10 based char(32) array level 3 packed unaligned dcl 9-14 set ref 537* 733 791 820 847* 1029 1031 1037* main_options based structure level 2 unaligned dcl 7-18 mbz 114(09) based bit(27) array level 4 packed unaligned dcl 9-14 set ref 868* mml_xforum_info_ptr parameter pointer dcl 623 ref 618 name 000010 internal static char(32) level 2 packed unaligned dcl 406 set ref 1097* nm_match_bits 000136 automatic bit(36) dcl 562 set ref 576* 579* 583* 588* 594* 596* nm_next_mtg_index 000137 automatic fixed bin(17,0) dcl 563 set ref 588* 590 592 594* 596* nm_xforum_info_ptr parameter pointer dcl 558 ref 553 568 nmi_count based fixed bin(17,0) dcl 899 ref 933 936 nmi_count_ptr 000100 automatic pointer dcl 891 set ref 918* 923* 928* 933 936 nmi_curr_mtg based fixed bin(17,0) dcl 900 set ref 939* 940 944 951 960* 961 968* 970 nmi_curr_mtg_ptr 000102 automatic pointer dcl 892 set ref 919* 924* 929* 939 940 944 951 960 961 968 970 nmi_i 000104 automatic fixed bin(17,0) dcl 893 set ref 944* 945 945* 951* 952 952* 968 nmi_match_bits parameter bit(36) dcl 882 ref 877 916 921 926 945 945 952 952 nmi_name_entered 000105 automatic varying char(32) dcl 894 set ref 972* nmi_next_mtg_index parameter fixed bin(17,0) dcl 884 set ref 877 912* 940* 961* 970* nmi_spy_ptr parameter pointer dcl 886 ref 877 903 nmi_type 000116 automatic fixed bin(17,0) dcl 895 set ref 917* 922* 927* 933 937* 962* no_changed 4 based fixed bin(17,0) level 2 dcl 9-14 set ref 519 718 863* 863 928 1045* 1045 1054* 1057 no_participant 3 based fixed bin(17,0) level 2 dcl 9-14 set ref 512 713 859* 859 923 1054* 1057 no_selected 2 based fixed bin(17,0) level 2 dcl 9-14 set ref 505 592 708 729 790 819 831 833* 833 835 842 842 912 918 939 944 960 1026 1054* notify 25(03) 000310 automatic bit(1) level 3 in structure "fm_fi" packed unaligned dcl 774 in procedure "find_meeting" set ref 855 notify 114(02) based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 9-14 in procedure "xforum_main_options" set ref 855* npaths based fixed bin(17,0) level 2 in structure "xforum_meeting_list" dcl 9-14 in procedure "xforum_main_options" set ref 831 835 npaths based fixed bin(17,0) level 2 in structure "fm_paths_ovly" dcl 778 in procedure "find_meeting" set ref 836 839* 839 null builtin function dcl 427 ref 1103 1103 1103 1103 participant 114(03) based bit(1) array level 4 packed unaligned dcl 9-14 set ref 858* 859 861 1027 1040* paths 1 based varying char(168) array level 2 dcl 778 set ref 837* 837 project 7 000310 automatic char(9) level 3 packed unaligned dcl 774 set ref 869 quit 000100 stack reference condition dcl 402 ref 488 905 993 read_only 114(05) based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 9-14 in procedure "xforum_main_options" set ref 856* read_only 25(07) 000310 automatic bit(1) level 3 in structure "fm_fi" packed unaligned dcl 774 in procedure "find_meeting" set ref 856 reason 52 000010 internal static char(512) level 2 packed unaligned dcl 406 set ref 1101* removed 25(02) 000310 automatic bit(1) level 3 in structure "fm_fi" packed unaligned dcl 774 in procedure "find_meeting" set ref 854 858 removed 114(01) based bit(1) array level 4 in structure "xforum_meeting_list" packed unaligned dcl 9-14 in procedure "xforum_main_options" set ref 854* rtrim builtin function dcl 427 ref 869 1029 1031 short_name 20 based char(32) array level 3 packed unaligned dcl 9-14 set ref 791 848* signal_ 000272 constant entry external dcl 382 ref 1103 spy based structure level 1 unaligned dcl 11-12 spy_ptr 32 based pointer level 3 in structure "xforum_info" dcl 7-18 in procedure "xforum_main_options" set ref 485 534* 569 spy_ptr 000110 automatic pointer dcl 11-26 in procedure "xforum_main_options" set ref 485* 545* 547* 569* 588* 594* 596* 659* 738* 903* 1076 1076 1077 1077 1078 1078 timer_manager_$sleep 000274 constant entry external dcl 383 ref 539 807 938 963 1041 two_names 114(04) based bit(1) array level 4 packed unaligned dcl 9-14 set ref 851* uid 113 based bit(36) array level 3 dcl 9-14 set ref 852* unspec builtin function dcl 427 ref 671 730 945 952 username 2 000310 automatic char(20) level 3 packed unaligned dcl 774 set ref 869 version 000126 automatic fixed bin(17,0) level 2 in structure "hncm_fi" dcl 991 in procedure "handle_no_changed_mtgs" set ref 999* version 000310 automatic fixed bin(17,0) level 2 in structure "fm_fi" dcl 774 in procedure "find_meeting" set ref 812* window_$clear_window 000276 constant entry external dcl 384 ref 491 499 908 1001 1051 window_position_info based structure level 1 unaligned dcl 13-25 xforum_dyn_menu_$display_and_get_choice 000300 constant entry external dcl 385 ref 738 xforum_dyn_menu_$prompt_instead_of_menu 000302 constant entry external dcl 387 ref 659 xforum_ent_attend_mtg_menu 000304 constant entry external dcl 389 ref 547 596 xforum_error_info based structure level 1 unaligned dcl 6-3 xforum_find_path_ 000306 constant entry external dcl 390 ref 799 803 xforum_help_line_$pop 000312 constant entry external dcl 392 ref 492 910 1053 xforum_help_line_$push 000310 constant entry external dcl 391 ref 1003 1024 xforum_info based structure level 1 unaligned dcl 7-18 xforum_info_ptr 000106 automatic pointer dcl 7-34 set ref 484* 485 501 508 515 534 568* 569 576 576 579 579 583 583 590 xforum_meeting_list based structure level 1 dcl 9-14 xforum_meeting_list_ptr 000332 external static pointer level 2 dcl 10-3 ref 505 512 519 537 592 671 708 713 718 729 730 733 790 791 791 819 820 824 824 824 828 828 828 831 833 833 835 842 842 844 844 847 848 849 850 851 852 853 854 855 856 857 858 858 859 859 859 861 863 863 864 866 867 868 869 912 918 919 923 924 928 929 939 944 945 945 952 952 960 1026 1027 1029 1029 1031 1033 1037 1040 1045 1045 1046 1054 1054 1054 1057 1057 xforum_ptr_struct_ 000332 external static structure level 1 unaligned dcl 10-3 xforum_status_$redisplay 000314 constant entry external dcl 393 ref 493 911 1057 xforum_status_$update_banner 000316 constant entry external dcl 394 ref 1056 xforum_sub_attend_mtg_menu 000320 constant entry external dcl 395 ref 545 594 xforum_user_profile$get_menu_always 000322 constant entry external dcl 396 ref 651 xforum_user_profile$get_read_comments_by_subject 000324 constant entry external dcl 397 ref 545 594 xforum_window_info 000114 automatic structure level 1 unaligned dcl 12-8 xforum_window_mgr$check_window_status 000326 constant entry external dcl 398 ref 490 907 xforum_windows 000334 external static structure level 1 dcl 12-5 xmo_xforum_error_info 000010 internal static structure level 1 unaligned dcl 406 set ref 1103 1103 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. GET_STARTED internal static fixed bin(17,0) initial dcl 7-38 INCLUDE_DELETED internal static fixed bin(17,0) initial dcl 4-24 MENU_OPTION_KEYS internal static char(1) initial array unaligned dcl 5-100 MODIFY_MTG_LIST internal static fixed bin(17,0) initial dcl 7-38 ONLY_DELETED internal static fixed bin(17,0) initial dcl 4-24 ONLY_UNDELETED internal static fixed bin(17,0) initial dcl 4-24 PERSONALIZE internal static fixed bin(17,0) initial dcl 7-38 REDISPLAY internal static fixed bin(17,0) initial dcl 410 REDISPLAY2 internal static fixed bin(17,0) initial dcl 410 SET_ARRAY_SPEC_LEN internal static fixed bin(17,0) initial dcl 8-57 SPY_AT_1 internal static fixed bin(17,0) initial dcl 11-29 SPY_AT_10 internal static fixed bin(17,0) initial dcl 11-47 SPY_AT_12 internal static fixed bin(17,0) initial dcl 11-51 SPY_AT_13 internal static fixed bin(17,0) initial dcl 11-53 SPY_AT_14 internal static fixed bin(17,0) initial dcl 11-55 SPY_AT_15 internal static fixed bin(17,0) initial dcl 11-57 SPY_AT_16 internal static fixed bin(17,0) initial dcl 11-59 SPY_AT_17 internal static fixed bin(17,0) initial dcl 11-61 SPY_AT_18 internal static fixed bin(17,0) initial dcl 11-63 SPY_AT_19 internal static fixed bin(17,0) initial dcl 11-65 SPY_AT_2 internal static fixed bin(17,0) initial dcl 11-31 SPY_AT_3 internal static fixed bin(17,0) initial dcl 11-33 SPY_AT_6 internal static fixed bin(17,0) initial dcl 11-39 SPY_AT_7 internal static fixed bin(17,0) initial dcl 11-41 SPY_AT_8 internal static fixed bin(17,0) initial dcl 11-43 SPY_AT_9 internal static fixed bin(17,0) initial dcl 11-45 SPY_LOCATION internal static varying char(20) initial array dcl 11-68 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 13-76 break_table_info_version internal static fixed bin(17,0) initial dcl 13-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 13-80 break_table_ptr automatic pointer dcl 13-75 forum_$close_forum 000000 constant entry external dcl 1-3 forum_$enter_trans 000000 constant entry external dcl 1-4 forum_$forum_limits 000000 constant entry external dcl 1-9 forum_$get_forum_path 000000 constant entry external dcl 1-12 forum_$get_forum_path_idx 000000 constant entry external dcl 1-14 forum_$get_message 000000 constant entry external dcl 1-16 forum_$get_transaction_map_idx 000000 constant entry external dcl 1-17 forum_$list_users_idx 000000 constant entry external dcl 1-18 forum_$open_forum 000000 constant entry external dcl 1-19 forum_$read_trans 000000 constant entry external dcl 1-21 forum_$set_last_seen_idx 000000 constant entry external dcl 1-23 forum_$set_message 000000 constant entry external dcl 1-27 forum_$set_seen_switch 000000 constant entry external dcl 1-25 forum_$set_switch 000000 constant entry external dcl 1-28 forum_$set_switch_idx 000000 constant entry external dcl 1-30 forum_$trans_ref_info 000000 constant entry external dcl 1-32 forum_flags based structure level 1 dcl 2-8 forum_flags_word automatic bit(36) dcl 2-6 forum_info_ptr automatic pointer dcl 3-12 forum_info_version_2 internal static fixed bin(17,0) initial dcl 3-40 forum_user_trans based structure level 1 dcl 4-7 forum_user_trans_ptr automatic pointer dcl 4-5 get_editor_key_bindings_info based structure level 1 dcl 13-151 get_editor_key_bindings_info_ptr automatic pointer dcl 13-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 13-160 line_editor_binding_count automatic fixed bin(17,0) dcl 13-121 line_editor_key_binding_info based structure level 1 dcl 13-129 line_editor_key_binding_info_ptr automatic pointer dcl 13-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 13-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 13-123 menu_$create 000000 constant entry external dcl 5-8 menu_$delete 000000 constant entry external dcl 5-61 menu_$describe 000000 constant entry external dcl 5-35 menu_$destroy 000000 constant entry external dcl 5-41 menu_$display 000000 constant entry external dcl 5-20 menu_$get_choice 000000 constant entry external dcl 5-26 menu_$list 000000 constant entry external dcl 5-67 menu_$retrieve 000000 constant entry external dcl 5-54 menu_$store 000000 constant entry external dcl 5-46 menu_format based structure level 1 dcl 5-76 menu_format_ptr automatic pointer dcl 5-94 menu_format_version_1 internal static fixed bin(17,0) initial dcl 5-97 menu_requirements based structure level 1 dcl 5-88 menu_requirements_ptr automatic pointer dcl 5-95 menu_requirements_version_1 internal static fixed bin(17,0) initial dcl 5-97 message_type internal static fixed bin(17,0) initial dcl 4-22 more_handler_info based structure level 1 dcl 13-83 more_handler_info_ptr automatic pointer dcl 13-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 13-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 13-94 more_prompt_info based structure level 1 dcl 13-108 more_prompt_info_ptr automatic pointer dcl 13-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 13-114 more_responses_info based structure level 1 dcl 13-59 more_responses_info_ptr automatic pointer dcl 13-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 13-67 more_responses_version internal static fixed bin(17,0) initial dcl 13-67 seen_map based bit(1) array unaligned dcl 8-50 seen_map_string based bit(1000000) unaligned dcl 8-49 set_array based structure level 1 unaligned dcl 8-52 set_editor_key_bindings_info based structure level 1 dcl 13-162 set_editor_key_bindings_info_ptr automatic pointer dcl 13-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 13-172 token_characters_info based structure level 1 dcl 13-97 token_characters_info_ptr automatic pointer dcl 13-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 13-106 user_trans_type internal static fixed bin(17,0) initial dcl 4-21 window_edit_line_info based structure level 1 unaligned dcl 13-177 window_edit_line_info_ptr automatic pointer dcl 13-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 13-183 window_position_info_ptr automatic pointer dcl 13-37 window_position_info_version internal static fixed bin(17,0) initial dcl 13-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 13-35 window_status_info based structure level 1 dcl 13-45 window_status_info_ptr automatic pointer dcl 13-43 window_status_version internal static fixed bin(17,0) initial dcl 13-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 13-52 xforum_meeting_info based structure level 1 unaligned dcl 8-24 NAMES DECLARED BY EXPLICIT CONTEXT. collect_spy_data 004552 constant entry internal dcl 1064 ref 494 995 1016 1022 display_help 001635 constant label dcl 659 ref 655 display_menu 001615 constant label dcl 653 ref 662 error 004610 constant entry internal dcl 1084 ref 463 522 931 exit_goto_meeting 001334 constant label dcl 550 ref 496 exit_handle_no_changed_mtgs 004440 constant label dcl 1051 ref 996 1017 exit_next_meeting_internal 003653 constant label dcl 974 ref 913 941 965 find_meeting 002361 constant entry internal dcl 754 ref 667 found_in_list 002736 constant label dcl 824 ref 821 get_choice_from_menu 002055 constant entry internal dcl 687 ref 653 get_curr_meeting 001600 constant entry internal dcl 630 ref 541 goto_meeting 000717 constant entry external dcl 465 handle_no_changed_mtgs 003655 constant entry internal dcl 979 ref 524 933 index_of_next_meeting 001507 constant entry external dcl 601 modify_meeting_list 001545 constant entry external dcl 618 next_found 003647 constant label dcl 968 ref 945 952 next_meeting 001345 constant entry external dcl 553 next_meeting_internal 003245 constant entry internal dcl 877 ref 534 588 614 xforum_main_options 000667 constant entry external dcl 72 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5362 5720 4711 5372 Length 6510 4711 336 553 450 252 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_main_options 533 external procedure is an external procedure. on unit on line 488 84 on unit get_curr_meeting internal procedure shares stack frame of external procedure xforum_main_options. get_choice_from_menu internal procedure shares stack frame of external procedure xforum_main_options. begin block on line 722 134 begin block uses auto adjustable storage. find_meeting internal procedure shares stack frame of external procedure xforum_main_options. next_meeting_internal 238 internal procedure enables or reverts conditions. on unit on line 905 72 on unit handle_no_changed_mtgs 278 internal procedure enables or reverts conditions. on unit on line 993 78 on unit collect_spy_data 66 internal procedure is called by several nonquick procedures. error 94 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xmo_xforum_error_info xforum_main_options STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 722 000100 gcfm_i begin block on line 722 000101 gcfm_j begin block on line 722 000102 gcfm_names begin block on line 722 000102 gcfm_nindex begin block on line 722 handle_no_changed_mtgs 000100 hncm_i handle_no_changed_mtgs 000101 hncm_banner handle_no_changed_mtgs 000113 hncm_code handle_no_changed_mtgs 000114 hncm_name handle_no_changed_mtgs 000124 hncm_yes_ans handle_no_changed_mtgs 000126 hncm_fi handle_no_changed_mtgs next_meeting_internal 000100 nmi_count_ptr next_meeting_internal 000102 nmi_curr_mtg_ptr next_meeting_internal 000104 nmi_i next_meeting_internal 000105 nmi_name_entered next_meeting_internal 000116 nmi_type next_meeting_internal xforum_main_options 000106 xforum_info_ptr xforum_main_options 000110 spy_ptr xforum_main_options 000112 SPY_VERSION_1 xforum_main_options 000114 xforum_window_info xforum_main_options 000124 gm_count_ptr xforum_main_options 000126 gm_curr_meeting xforum_main_options 000127 gm_help_name xforum_main_options 000134 gm_match_bits xforum_main_options 000135 gm_type xforum_main_options 000136 nm_match_bits xforum_main_options 000137 nm_next_mtg_index xforum_main_options 000140 ionm_meeting_index xforum_main_options 000150 gcm_name_entered get_curr_meeting 000170 gcfm_count get_choice_from_menu 000171 gcfm_option_index get_choice_from_menu 000172 gcfm_title get_choice_from_menu 000216 fm_code find_meeting 000217 fm_dir find_meeting 000271 fm_fname find_meeting 000301 fm_i find_meeting 000302 fm_j find_meeting 000303 fm_meeting_version find_meeting 000304 fm_new_paths_ptr find_meeting 000306 fm_old_paths_ptr find_meeting 000310 fm_fi find_meeting THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp alloc_temp cat_realloc_chars enter_begin_block leave_begin_block call_ext_out_desc call_ext_out call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 alloc_auto_adj signal_op enable_op shorten_stack ext_entry int_entry int_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_$suppress_name command_query_$yes_no forum_$forum_info ioa_ ioa_$rsnnl signal_ timer_manager_$sleep window_$clear_window xforum_dyn_menu_$display_and_get_choice xforum_dyn_menu_$prompt_instead_of_menu xforum_ent_attend_mtg_menu xforum_find_path_ xforum_help_line_$pop xforum_help_line_$push xforum_status_$redisplay xforum_status_$update_banner xforum_sub_attend_mtg_menu xforum_user_profile$get_menu_always xforum_user_profile$get_read_comments_by_subject xforum_window_mgr$check_window_status THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. xforum_ptr_struct_ xforum_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 27 000662 72 000666 463 000677 465 000713 484 000727 485 000733 486 000735 488 000736 490 000752 491 000756 492 000771 493 000776 494 001006 495 001025 496 001027 499 001032 501 001045 503 001051 504 001053 505 001056 506 001063 507 001065 508 001066 510 001070 511 001072 512 001075 513 001102 514 001104 515 001105 517 001107 518 001111 519 001114 520 001121 521 001123 522 001124 524 001140 527 001151 528 001153 529 001173 532 001202 534 001204 537 001217 539 001251 540 001266 541 001267 543 001271 545 001273 547 001321 550 001334 553 001343 568 001355 569 001361 576 001363 579 001373 583 001402 588 001410 590 001422 592 001425 594 001434 596 001461 599 001474 601 001503 614 001516 616 001531 618 001543 626 001555 628 001571 630 001600 649 001602 651 001603 653 001615 655 001630 657 001634 659 001635 662 001726 665 001733 667 001743 669 001754 671 001757 673 001766 676 002022 678 002052 683 002054 687 002055 706 002057 708 002062 709 002067 710 002074 711 002075 713 002077 714 002104 715 002111 716 002112 718 002114 719 002121 722 002126 724 002131 725 002140 727 002144 729 002145 730 002157 732 002171 733 002172 734 002203 736 002207 738 002211 741 002327 743 002333 744 002337 745 002352 747 002353 748 002355 750 002357 752 002360 754 002361 788 002363 790 002364 791 002377 793 002424 794 002426 796 002427 798 002431 799 002433 800 002500 802 002503 803 002505 804 002552 806 002555 807 002576 808 002613 812 002614 814 002616 815 002657 816 002661 817 002703 819 002704 820 002717 821 002733 823 002734 824 002736 828 002745 831 002751 833 002755 835 002756 836 002762 837 002767 838 003002 839 003005 842 003007 844 003027 845 003042 847 003045 848 003061 849 003070 850 003076 851 003101 852 003103 853 003105 854 003111 855 003116 856 003123 857 003130 858 003136 859 003153 861 003162 863 003166 864 003167 865 003171 866 003172 867 003174 868 003176 869 003200 872 003240 874 003243 877 003244 903 003252 905 003257 907 003273 908 003277 910 003312 911 003317 912 003327 913 003337 916 003342 917 003346 918 003350 919 003355 920 003361 921 003362 922 003364 923 003366 924 003373 925 003377 926 003400 927 003402 928 003404 929 003411 930 003415 931 003416 933 003433 936 003445 937 003447 938 003467 939 003504 940 003512 941 003514 944 003515 945 003531 949 003550 951 003552 952 003561 956 003600 960 003602 961 003610 962 003612 963 003631 965 003646 968 003647 970 003651 972 003652 974 003653 979 003654 993 003662 995 003676 996 003715 999 003720 1001 003722 1003 003735 1005 003763 1014 004026 1016 004031 1017 004050 1020 004051 1022 004065 1024 004104 1026 004135 1027 004147 1029 004156 1031 004224 1033 004266 1035 004335 1037 004337 1039 004365 1040 004401 1041 004410 1043 004424 1045 004426 1046 004432 1049 004436 1051 004440 1053 004453 1054 004460 1056 004521 1057 004532 1060 004550 1064 004551 1076 004565 1077 004570 1078 004576 1080 004606 1084 004607 1097 004615 1098 004620 1099 004623 1100 004626 1101 004631 1103 004635 1105 004667 ----------------------------------------------------------- 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