COMPILATION LISTING OF SEGMENT xmail Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0752.6 mst Fri Options: optimize map 1 /****^ ****************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright (c) 1986 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* * Copyright (c) 1972 by Massachusetts Institute of * 9* * Technology and Honeywell Information Systems, Inc. * 10* * * 11* ****************************************************** */ 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(85-12-23,LJAdams), approve(86-02-26,MCR7358), 16* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 17* 85-03-12 JG Backs: Changed the "Do you wish to continue? (y/n)" message 18* to "Do you still wish to enter executive_mail?" for clarity when there 19* are no messages in the incoming mailbox. Took out constants YES and NO 20* and literals of "yes" and "no". Replaced by the include file 21* xmail_responses.incl.pl1. 22* 85-04-17 JG Backs: Replaced all the Message Facility commands 23* (accept_messages, defer_messages, print_messages) with calls to the new 24* xmail_im_mgr_ module which uses the new Message Facility entrypoints for 25* these functions. 26* 85-04-18 JG Backs: Added code to check new personalization option 27* confirm_print_yn, set default to yes, and set the flag in xmail_data. 28* 2) change(85-12-23,LJAdams), approve(86-02-26,MCR7358), 29* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 30* Added initialization of xmail_data.general_help switch. 31* 3) change(86-02-27,Blair), approve(86-02-27,MCR7358), 32* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 33* Change the auto_xmail_data structure to refere to the value seg pathname 34* rather than the value seg ptr. This change is being made so that the 35* structure is initiated each time it is used and we don't have to worry 36* about having an invalid pointer. 37* 4) change(87-01-19,Blair), approve(87-02-05,MCR7618), 38* audit(87-04-14,RBarstad), install(87-04-26,MR12.1-1025): 39* Check the total_messages in mailbox, not just ordinary ones so we'll 40* have the ability to treat interactive msgs as mail. 41* 5) change(88-06-28,Blair), approve(88-07-27,MCR7959), 42* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 43* Initialize the fkey_data_ptr to null before we enable the cleanup handler 44* to avoid out_of_bounds error if we go through the handler before the ptr 45* is set. 46* Add code to the cleanup procedure to check for whether the xmail.error 47* segment is in the pdir. If so, and if its' bit_count is greater than 0, 48* then warn the user that it exists. XServices error-list #153. 49* END HISTORY COMMENTS */ 50 51 52 xmail: 53 executive_mail: proc (); 54 55 /* BEGIN DESCRIPTION 56* 57*function: This is the main executive mail procedure. It sets up the user's 58* xmail directory, the video system, interactive message handling 59* and all data structures that are shared among the various xmail 60* routines. It then calls the first menu. 61* 62*comments: Throughout xmail, the calls to the Message Facility's commands 63* (accept_messages, print_messages, etc) should be changed to calls 64* to the new entrypoints as soon as it is practical. 65* 66*history: Written by S. Krupp 12/14/81 67* 68* 83-06-21 DJ Schimke: Modified to use new mail_system calls and version 2 69* mailboxes. Added -nim/-im (undocumented) to disable/enable the interactive 70* message handling. This option should eventually be available from the 71* personalize menu as suggested by phx12801. 72* 73* 83-09-14 DJ Schimke: Modified the error output from a bad control arg to 74* print the arg as well as the help message. phx13258 75* 76* 83-09-18 DJ Schimke: Modified xmail's cleanup handler to do a much better 77* job and avoid the cleanup window that existed. phx15800 phx13944 78* Also added ssu_$record_usage call so the new version's use can be 79* monitored. 80* 81* 83-10-05 DJ Schimke: Modified to call xmail_get_str_$yes_no rather than 82* rolling its own question code. Since xmail_get_str_ uses command_query_, 83* users who wish to enter xmail regardless of the fact that they have no 84* incoming mail may use answer to bypass this question. phx 15963 85* 86* 83-11-04 DJ Schimke: Added undocumented control arg "-escape_sequences" 87* ("-esc" for short) to control the use of escape sequences when function 88* keys are available (intended primarily for debugging purposes). 89* 90* 83-12-07 DJ Schimke: Added cleanup for the ssu invocation and fixed the 91* ssu_exit entry to do nothing. 92* 93* 84-09-06 JG Backs: Modified to check for personalization options and 94* set flags after call to xmail_dir_manager_$open_dir and before control 95* arguments are checked. Added checks for new personalization options: 96* Display Lists As Menus, Process Interactive Messages, Always Use Escape 97* Keys, Multics Command Mode. 98* 99* 84-09-18 JG Backs: Modified code to make internal procedure default_fkeys 100* into a separate xmail module which can be called from both xmail.pl1 and 101* xmail_Review_Defaults_.pl1. This allows function key information to be 102* changed during processing. Also modified cleanup to free ptr to function 103* key data. 104* 105* 84-09-24 JG Backs: Added "-brief" control argument to print_messages 106* command so the message "You have no messages" would not print. This is to 107* make xmail compatible with the new message facility for mr11. 108* 109* 84-10-09 JG Backs: Added a test to make sure the function_key_data_ptr 110* is not null before attempting to free it, in preparation for setting up 111* the default function keys. 112* 113* 84-10-20 JG Backs: Modified processing of control arguments to include 114* messages to the user that indicate the control argument is obsolete, but 115* will be supported for MR11 release, and to please use the personalization 116* options. 117* 118* 84-11-04 JG Backs: Added a trailing underscore to the name of external 119* procedure xmail_default_fkeys_ to coincide with the name change of that 120* module. Audit change. 121* 122* 84-11-13 JG Backs: Added a 1 bit input parameter "condition_signalled" 123* to internal CLEANUP proc, which is "1" if procedure is called during 124* cleanup condition and "0" all other times. This bit is tested to prevent 125* any screen output during a true cleanup condition. The call and 126* declaration of xmail_window_manager_$destroy_windows was also modified 127* to include an input parameter, to indicate if screen output should be 128* avoided. 129* 130* 84-11-28 JG Backs: Added code in the CLEANUP internal procedure to 131* reset the user_io modes "more_mode=fold" if it had been previously set 132* by xmail to "more_mode=wrap" in the main procedure. The code to set 133* wrap mode had been present for a long time, but did not cause any 134* problems until a change was made to xmail to let the user-specified 135* modes be allowed within xmail. Also changed the initializing of the 136* old_modes variable from within the declaration to a statement. TR18542. 137* 138*END DESCRIPTION 139**/ 140 141 /* AUTOMATIC */ 142 143 dcl answer_yn char (3) var; /* answer of yes or no */ 144 dcl arg_index fixed bin; 145 dcl arg_len fixed bin (21); 146 dcl arg_ptr ptr; 147 dcl bit_count fixed bin (35); 148 dcl code fixed bin (35); 149 dcl interactive_msgs_yn bit (1) aligned; 150 dcl lifetime_first_invocation char (3) var; 151 dcl messages_need_cleanup bit (1) aligned; 152 dcl multics_yn bit (1) aligned; 153 dcl no_of_args fixed bin; 154 dcl old_modes char (256); 155 dcl xmail_dir_opened bit (1) aligned; 156 dcl (total_message_count, ordinary_message_count ) fixed bin; 157 dcl person char (32); 158 dcl project char (32); 159 dcl prompt_string char (160) var; 160 dcl reason char (128); 161 dcl sci_ptr ptr; 162 dcl use_default_fkeys bit (1) aligned; 163 dcl video_needs_cleanup bit (1) aligned; 164 dcl video_was_on bit (1) aligned; 165 dcl yes_sw bit (1) aligned; 166 167 dcl 1 auto_xmail_data like xmail_data; 168 dcl 1 ti like terminal_info; 169 170 /* BASED */ 171 172 dcl arg char (arg_len) based (arg_ptr); 173 174 /* BUILTINS */ 175 176 dcl (addr, bin, codeptr, index, null, rtrim) builtin; 177 178 /* CONDITIONS */ 179 180 dcl (cleanup, program_interrupt, quit) condition; 181 182 /* ENTRIES */ 183 184 dcl adjust_bit_count_ entry (char(168), char(32), bit(1) aligned, fixed bin(35), fixed bin(35)); 185 dcl com_err_ entry () options (variable); 186 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 187 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 188 dcl get_pdir_ entry() returns(char(168)); 189 dcl ioa_ entry () options (variable); 190 dcl ioa_$rsnnl entry () options (variable); 191 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 192 dcl iox_$modes entry (ptr, char (*), char (*), fixed bin (35)); 193 dcl mail_system_$get_message_counts entry (char (*), char (*), bit (1) aligned, fixed bin, fixed bin, fixed bin, fixed bin (35)); 194 dcl ssu_$destroy_invocation entry (ptr); 195 dcl ssu_$record_usage entry (ptr, ptr, fixed bin (35)); 196 dcl ssu_$standalone_invocation entry (ptr, char (*), char (*), ptr, entry, fixed bin (35)); 197 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 198 dcl ttt_info_$function_key_data entry (char (*), ptr, ptr, fixed bin (35)); 199 dcl user_info_$whoami entry (char (*), char (*), char (*)); 200 dcl video_utils_$turn_off_login_channel entry (fixed bin (35)); 201 dcl video_utils_$turn_on_login_channel entry (fixed bin (35), char (*)); 202 dcl window_$clear_window entry (ptr, fixed bin (35)); 203 dcl xmail$ssu_exit entry (); 204 dcl xmail_Executive_Mail_ entry (); 205 dcl xmail_Getting_Started_ entry (); 206 dcl xmail_default_fkeys_ entry () returns (ptr); 207 dcl xmail_dir_manager_$close_dir entry options (variable); 208 dcl xmail_dir_manager_$open_dir entry (fixed bin (35)); 209 dcl xmail_error_$no_print entry () options (variable); 210 dcl xmail_get_str_$yes_no entry (char (*) var, bit (1) aligned); 211 dcl xmail_im_mgr_$defer_messages entry (); 212 dcl xmail_im_mgr_$init entry (); 213 dcl xmail_im_mgr_$print_messages entry (); 214 dcl xmail_im_mgr_$restore_original entry (); 215 dcl xmail_review_defers_ entry (char (*), char (*), fixed bin); 216 dcl xmail_sw_$initialize entry (); 217 dcl xmail_value_$get_no_validate entry (char (*), char (*) var, fixed bin (35)); 218 dcl xmail_value_$get_with_default entry (char (*), char (*) var, char (*) var, fixed bin (35)); 219 dcl xmail_value_$set entry (char (*), char (*) var, char (*) var, fixed bin (35)); 220 dcl xmail_window_manager_$create_windows entry (fixed bin (35)); 221 dcl xmail_window_manager_$destroy_windows entry (bit (1)); 222 223 /* EXTERNAL STATIC */ 224 225 dcl error_table_$badopt fixed bin (35) ext static; 226 dcl error_table_$invalid_device fixed bin (35) ext static; 227 dcl error_table_$no_table fixed bin (35) ext static; 228 dcl iox_$user_io ptr ext static; 229 dcl video_data_$terminal_iocb ptr ext static; 230 dcl xmail_err_$exit_now fixed bin (35) ext static; 231 dcl xmail_err_$insuff_room_for_xmail fixed bin (35) ext static; 232 233 /* CONSTANTS */ 234 235 dcl ALWAYS_ESCAPE char (21) init ("always_escape_keys_yn") int static options (constant); 236 dcl CONFIRM_PRINT char (16) init ("confirm_print_yn") int static options (constant); 237 dcl ERROR_LOG_SEGMENT char (11) init ("xmail.error") int static options (constant); 238 dcl FOLD_MODE char (14) init ("more_mode=fold") int static options (constant); 239 dcl HELP_LINE char (36) init ("If you need help, type ""help xmail"".") int static options (constant); 240 dcl INT_ERR char (38) init ("This is an internal programming error.") int static options (constant); 241 dcl INTERACTIVE_MSGS char (19) init ("interactive_msgs_yn") int static options (constant); 242 dcl LISTS_AS_MENUS char (17) init ("lists_as_menus_yn") int static options (constant); 243 dcl MIN_LINES_NEEDED fixed bin init (20) int static options (constant); 244 dcl MSGS_AS_MAIL char (15) init ("msgs_as_mail_yn") int static options (constant); 245 dcl MULTICS_MODE char (15) init ("multics_mode_yn") int static options (constant); 246 dcl NAME char (14) init ("executive_mail") int static options (constant); 247 dcl N_FKEYS_USED fixed bin init (7) int static options (constant); 248 dcl PERSONALIZE_STATEMENT char (139) init ("^/ It will be supported in the MR11 release.^/ The Personalize Executive Mail menu can be used to set this function.^/Continuing setup...") int static options (constant); 249 dcl REMOVE_MENUS char (15) init ("remove_menus_yn") int static options (constant); 250 dcl WRAP_MODE char (14) init ("more_mode=wrap") int static options (constant); 251 252 /* INCLUDE FILES */ 253 1 1 /* BEGIN INCLUDE FILE ... function_key_data.incl.pl1 1 2* 1 3* This include file defines the structure used for ttt_info_$function_key_data 1 4* MCR 4671 James R. Davis Sept 80 1 5**/ 1 6 1 7 dcl 1 function_key_data aligned based (function_key_data_ptr), 1 8 2 version fixed bin, 1 9 2 highest fixed bin, /* highest fkey */ 1 10 2 sequence, /* string of all seqs. */ 1 11 3 seq_ptr pointer, 1 12 3 seq_len fixed bin (21), 1 13 2 cursor_motion_keys, 1 14 3 home (0:3) like key_info, 1 15 3 left (0:3) like key_info, 1 16 3 up (0:3) like key_info, 1 17 3 right (0:3) like key_info, 1 18 3 down (0:3) like key_info, 1 19 2 function_keys (0:function_key_data_highest refer 1 20 (function_key_data.highest), 0:3) like key_info; 1 21 1 22 dcl (KEY_PLAIN init (0), 1 23 KEY_SHIFT init (1), 1 24 KEY_CTRL init (2), 1 25 KEY_CTRL_AND_SHIFT init (3) 1 26 ) fixed bin internal static options (constant); 1 27 1 28 dcl 1 key_info unaligned based (key_info_ptr), 1 29 2 sequence_index fixed bin (12) unsigned unaligned, 1 30 2 sequence_length fixed bin (6) unsigned unaligned; /* 0 -> not exist */ 1 31 1 32 dcl function_key_seqs char (function_key_data.sequence.seq_len) 1 33 based (function_key_data.sequence.seq_ptr); 1 34 dcl function_key_data_ptr ptr; 1 35 dcl function_key_data_highest fixed bin; 1 36 dcl function_key_data_version_1 1 37 fixed bin internal static options (constant) init (1); 1 38 dcl key_info_ptr ptr; 1 39 1 40 1 41 /* END INCLUDE FILE ... function_key_data.incl.pl1 */ 254 255 2 1 /* BEGIN INCLUDE FiLE ... terminal_info.incl.pl1 */ 2 2 2 3 /* Created 5/25/77 by J. Stern */ 2 4 2 5 2 6 dcl 1 terminal_info aligned based (terminal_info_ptr), /* info structure for terminal_info order */ 2 7 2 version fixed bin, /* version number of this sturcture */ 2 8 2 id char (4) unaligned, /* terminal id from answerback */ 2 9 2 term_type char (32) unaligned, /* terminal type name */ 2 10 2 line_type fixed bin, /* line type number */ 2 11 2 baud_rate fixed bin, 2 12 2 reserved (4) fixed bin; /* reserved for future use */ 2 13 2 14 2 15 dcl terminal_info_ptr ptr; 2 16 dcl terminal_info_version fixed bin int static options (constant) init (1); /* current version */ 2 17 2 18 2 19 /* END INCLUDE FILE ... terminal_info.incl.pl1 */ 256 257 3 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 3 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 3 3 /* version number changed to 4, 08/10/78 WOS */ 3 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 3 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 3 6 3 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 3 8 2 version fixed bin, /* version of this structure - must be set, see below */ 3 9 2 switches aligned, /* various bit switch values */ 3 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 3 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 3 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 3 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 3 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 3 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 3 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 3 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 3 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 3 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 3 20 3 21 /* Limit of data defined for version 2 */ 3 22 3 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 3 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 3 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 3 26 /* minimum of 30 seconds required for repeat */ 3 27 /* otherwise, no repeat will occur */ 3 28 /* Limit of data defined for version 4 */ 3 29 3 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 3 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 3 32 3 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 3 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 3 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 3 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 3 37 3 38 /* END INCLUDE FILE query_info.incl.pl1 */ 258 259 4 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 4 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 4 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 4 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 10* Adding switch to indicate request for menu display came from general help. 4 11* This is so general help menu will be displayed in top screen. 4 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 4 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 14* Add switch to indicate whether or not it is permissible to process mail 4 15* in other users' mailboxes (foreign_mailbox). 4 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 4 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 18* Add bit to indicate whether or not this is a true cleanup condition. 4 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 4 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 21* Rearrange to group all the bit flags together in one word with a pad. 4 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 4 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 4 25* you keep around a pointer to a structure which no longer exists. 4 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 4 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 4 28* Add a field to indicate whether or not we should process interactive msgs. 4 29* Increment version to 4.1 so default value will get set. 4 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 4 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 4 32* Add a field to indicate whether or not we're processing a reply so that we 4 33* will be able to rebuild the screens properly after a disconnect occurs. 4 34* Error_list #114. 4 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 4 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 4 37* Add a bit to indicate whether or not the error segment had to be created 4 38* in the pdir (because we didn't have sma access to the mlsys_dir). 4 39* END HISTORY COMMENTS */ 4 40 4 41 4 42 /* Written 5/13/81 by Paul H. Kyzivat */ 4 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 4 44* and to add n_fkeys_used */ 4 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 4 46* varying string. */ 4 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 4 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 4 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 4 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 4 51 4 52 dcl xmail_data_ptr external static ptr init (null); 4 53 4 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 4 55 2 mail_dir char (168) varying, 4 56 2 first_label label, 4 57 2 quit_label label, 4 58 2 value_seg_pathname char (168) varying, 4 59 2 moved_user_io ptr, 4 60 2 normal_usage char (80) unal, 4 61 2 function_key_info, 4 62 3 function_key_data_ptr ptr, 4 63 3 n_fkeys_used fixed bin, 4 64 2 actee, 4 65 3 person char(32) varying, 4 66 3 project char(32) varying, 4 67 2 flags aligned, 4 68 3 mail_in_incoming bit (1) unal, 4 69 3 lists_as_menus bit (1) unal, /* personalization */ 4 70 3 remove_menus bit (1) unal, /* personalization */ 4 71 3 confirm_print bit (1) unal, /* personalization */ 4 72 3 multics_mode bit (1) unal, /* personalization */ 4 73 3 interactive_msgs bit (1) unal, /* personalization */ 4 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 4 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 4 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 4 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 4 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 4 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 4 80 3 pad bit (24) unal; 4 81 4 82 4 83 4 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 4 85 4 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 260 261 5 1 /* BEGIN INCLUDE FILE xmail_responses.incl.pl1 */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-02-07,Blair), approve(86-03-06,MCR7358), 5 5* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 6* 85-03-05 JG Backs: Modified to add a response of date. 5 7* 85-03-11 JG Backs: Modified to add short forms of keywords (a,l,p,f). 5 8* 85-03-14 JG Backs: Modified to add ASK, SET, and S. 5 9* 2) change(86-02-07,Blair), approve(86-03-06,MCR7358), 5 10* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 11* Modify to add SEEN and UNSEEN. 5 12* END HISTORY COMMENTS */ 5 13 5 14 /* Created 06/17/81 by Suzanne Krupp */ 5 15 5 16 dcl (QUESTION char(1) init("?"), 5 17 LIST char(2) init("??"), 5 18 A char(1) init("a"), 5 19 ALL char(3) init("all"), 5 20 ASK char(3) init("ask"), 5 21 DATE char(4) init("date"), 5 22 F char(1) init("f"), 5 23 FIRST char(5) init("first"), 5 24 L char(1) init("l"), 5 25 LAST char(4) init("last"), 5 26 N char (1) init ("n"), 5 27 NO char(2) init("no"), 5 28 NEXT char(4) init("next"), 5 29 NEW char(3) init("new"), 5 30 P char(1) init("p"), 5 31 PREV char(4) init("prev"), 5 32 S char(1) init("s"), 5 33 SEEN char (4) init("seen"), 5 34 SET char(3) init("set"), 5 35 SEARCH char(6) init("search"), 5 36 UNSEEN char (6) init("unseen"), 5 37 Y char (1) init ("y"), 5 38 YES char(3) init("yes")) 5 39 int static options(constant); 5 40 5 41 /* END INCLUDE FILE ... xmail_responses.incl.pl1 */ 262 263 6 1 /* Begin include file: xmail_windows.incl.pl1 */ 6 2 /* Created 6/24/81 by Paul Kyzivat */ 6 3 /* Mofified 6/20/84 by DJ Schimke to add the mm_status window */ 6 4 6 5 dcl 1 xmail_windows aligned external static, 6 6 2 initial_position fixed bin, 6 7 2 min_lines_needed fixed bin, 6 8 2 (status, mm_status, menu, bottom) aligned like xmail_window_info_format; 6 9 6 10 dcl 1 xmail_window_info_format aligned based, 6 11 2 iocb ptr, 6 12 2 position aligned like window_position_info; 6 13 7 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 7 2 /* format: style3 */ 7 3 7 4 /* Modified 26 January 1982 by William York to add the set_more_handler 7 5* and reset_more_handler control orders. */ 7 6 /* Modified October 1982 by WMY to add set and get_token_characters, 7 7* set and get_more_prompt. */ 7 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 7 9* structure. */ 7 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 7 11* partial screen width windows. */ 7 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 7 13* This should be removed when window_info.incl.pl1 is created. */ 7 14 /* Modified 29 February 1984 by Barmar to add version 1 7 15* get_editor_key_bindings_info. */ 7 16 /* Modified 1 March 1984 by Barmar to add version 1 7 17* set_editor_key_bindings_info. */ 7 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 7 19* line_editor_key_bindings_info, which includes the name, description, and 7 20* info path */ 7 21 7 22 /* structure for the set_window_info and get_window_info 7 23* control orders. */ 7 24 7 25 dcl 1 window_position_info 7 26 based (window_position_info_ptr), 7 27 2 version fixed bin, 7 28 2 origin, 7 29 3 column fixed bin, 7 30 3 line fixed bin, 7 31 2 extent, 7 32 3 width fixed bin, 7 33 3 height fixed bin; 7 34 7 35 dcl (window_position_info_version, window_position_info_version_1) 7 36 fixed bin internal static init (1) options (constant); 7 37 dcl window_position_info_ptr 7 38 pointer; 7 39 7 40 /* structure for the set_window_status and get_window_status 7 41* control orders */ 7 42 7 43 declare window_status_info_ptr 7 44 pointer; 7 45 declare 1 window_status_info 7 46 aligned based (window_status_info_ptr), 7 47 2 version fixed bin, 7 48 2 status_string bit (36) aligned; /* string (window_status) */ 7 49 /* see window_status.incl.pl1 for the contents of this string */ 7 50 7 51 7 52 declare (window_status_version, window_status_version_1) 7 53 fixed bin internal static init (1) options (constant); 7 54 7 55 /* info structure for the set_more_responses and get_more_responses control 7 56* orders */ 7 57 7 58 7 59 dcl 1 more_responses_info 7 60 aligned based (more_responses_info_ptr), 7 61 2 version fixed bin, 7 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 7 63 2 n_noes fixed bin, 7 64 2 yeses char (32) unaligned, 7 65 2 noes char (32) unaligned; 7 66 7 67 dcl (more_responses_info_version_1, more_responses_version) 7 68 fixed bin internal static init (1) options (constant); 7 69 dcl more_responses_info_ptr 7 70 pointer; 7 71 7 72 /* structure for the set_break_table and get_break_table 7 73* control orders */ 7 74 7 75 declare break_table_ptr pointer; 7 76 declare 1 break_table_info aligned based (break_table_ptr), 7 77 2 version fixed bin, 7 78 2 breaks (0:127) bit (1) unaligned; 7 79 7 80 declare (break_table_info_version, break_table_info_version_1) 7 81 fixed bin init (1) internal static options (constant); 7 82 7 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 7 84 2 version fixed bin, 7 85 2 flags unaligned, 7 86 3 old_handler_valid 7 87 bit(1), 7 88 3 pad bit(35), 7 89 2 more_handler entry (pointer, bit(1) aligned), 7 90 2 old_more_handler entry (pointer, bit(1) aligned); 7 91 7 92 declare more_handler_info_ptr pointer; 7 93 7 94 declare (more_handler_info_version, more_handler_info_version_3) 7 95 fixed bin internal static options (constant) init (3); 7 96 7 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 7 98 2 version char(8), 7 99 2 token_character_count 7 100 fixed bin, 7 101 2 token_characters 7 102 char (128) unaligned; 7 103 7 104 declare token_characters_info_ptr pointer; 7 105 7 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 7 107 7 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 7 109 2 version char(8), 7 110 2 more_prompt char(80); 7 111 7 112 declare more_prompt_info_ptr pointer; 7 113 7 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 7 115 7 116 /* Line editor stuff ... */ 7 117 7 118 dcl line_editor_key_binding_info_ptr 7 119 pointer; 7 120 7 121 dcl line_editor_binding_count 7 122 fixed bin; 7 123 dcl line_editor_longest_sequence 7 124 fixed bin; 7 125 /* For each binding, action defines what to do for that sequence. Constants 7 126* are defined in window_editor_values.incl.pl1. Only if action is set to 7 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 7 128 7 129 dcl 1 line_editor_key_binding_info 7 130 aligned based (line_editor_key_binding_info_ptr), 7 131 2 version char(8), 7 132 2 binding_count fixed bin, 7 133 2 longest_sequence fixed bin, 7 134 2 bindings (line_editor_binding_count refer 7 135 (line_editor_key_binding_info.binding_count)), 7 136 3 sequence char(line_editor_longest_sequence refer 7 137 (line_editor_key_binding_info.longest_sequence)) varying, 7 138 3 action fixed bin, 7 139 3 numarg_action fixed binary, 7 140 3 editor_routine entry (pointer, fixed bin(35)), 7 141 3 name char (64) varying unaligned, 7 142 3 description char (256) varying unaligned, 7 143 3 info_path unaligned, 7 144 4 info_dir char (168), 7 145 4 info_entry char (32); 7 146 7 147 7 148 dcl line_editor_key_binding_info_version_3 7 149 char(8) static options (constant) init ("lekbi003"); 7 150 7 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 7 152 2 version char (8), 7 153 2 flags, 7 154 3 entire_state bit (1) unaligned, 7 155 3 mbz bit (35) unaligned, 7 156 2 key_binding_info_ptr ptr, 7 157 2 entire_state_ptr ptr; 7 158 7 159 dcl get_editor_key_bindings_info_ptr ptr; 7 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 7 161 7 162 dcl 1 set_editor_key_bindings_info aligned 7 163 based (set_editor_key_bindings_info_ptr), 7 164 2 version char (8), 7 165 2 flags, 7 166 3 replace bit (1) unaligned, 7 167 3 update bit (1) unaligned, 7 168 3 mbz bit (34) unaligned, 7 169 2 key_binding_info_ptr ptr; 7 170 7 171 dcl set_editor_key_bindings_info_ptr ptr; 7 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 7 173 7 174 /* This should be moved to window_info.incl.pl1 when that include file is 7 175* created. JR 2/1/84 */ 7 176 7 177 dcl 1 window_edit_line_info 7 178 based (window_edit_line_info_ptr), 7 179 2 version char (8), 7 180 2 line_ptr ptr, 7 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 7 182 7 183 dcl window_edit_line_info_version_1 7 184 char (8) static options (constant) init ("wedl0001"); 7 185 7 186 dcl window_edit_line_info_ptr 7 187 ptr; 7 188 7 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 6 14 6 15 6 16 /* End include file: xmail_windows.incl.pl1 */ 264 265 266 267 /* BEGIN*/ 268 269 /* Make sure that xmail is not being recursively invoked. */ 270 271 if xmail_data_ptr ^= null 272 then do; 273 call com_err_ (0, NAME, "Previous invocation still active."); 274 goto EXIT; 275 end; 276 277 /* Establish cleanup handler */ 278 279 xmail_data_ptr = null (); 280 sci_ptr = null (); 281 xmail_dir_opened = "0"b; 282 video_needs_cleanup = "0"b; 283 messages_need_cleanup = "0"b; 284 old_modes = ""; 285 on condition (cleanup) call CLEANUP ("1"b); /* signal condition */ 286 287 /* Log usage (ignoring any errors) */ 288 289 call ssu_$standalone_invocation (sci_ptr, NAME, (xmail_version), null (), xmail$ssu_exit, code); 290 call ssu_$record_usage (sci_ptr, codeptr (xmail), code); 291 call ssu_$destroy_invocation (sci_ptr); 292 293 /***** Init common data structures. *****/ 294 295 auto_xmail_data.mail_dir = ""; 296 auto_xmail_data.first_label = MAIN_MENU; 297 auto_xmail_data.quit_label = QUIT; 298 auto_xmail_data.value_seg_pathname = ""; 299 auto_xmail_data.function_key_data_ptr = null; 300 301 /* Get person name and project. */ 302 303 call user_info_$whoami (person, project, ""); 304 auto_xmail_data.person = rtrim (person); 305 auto_xmail_data.project = rtrim (project); 306 307 xmail_data_ptr = addr (auto_xmail_data); 308 309 /* Set up xmail directory. */ 310 auto_xmail_data.error_seg_in_pdir = "0"b; 311 call xmail_dir_manager_$open_dir (code); 312 if code = xmail_err_$exit_now then do; 313 call xmail_dir_manager_$close_dir (); 314 xmail_data_ptr = null; 315 goto EXIT; 316 end; 317 else if code ^= 0 318 then goto COMPLAIN; 319 xmail_dir_opened = "1"b; /* for cleanup */ 320 321 /* Check for personalization options first and set defaults & flags */ 322 323 call xmail_value_$get_no_validate (ALWAYS_ESCAPE, answer_yn, code); 324 if code = 0 & answer_yn = YES 325 then use_default_fkeys = "1"b; 326 else use_default_fkeys = "0"b; 327 328 call xmail_value_$get_no_validate (MULTICS_MODE, answer_yn, code); 329 if code = 0 & answer_yn = YES 330 then multics_yn = "1"b; 331 else multics_yn = "0"b; 332 333 call xmail_value_$get_no_validate (LISTS_AS_MENUS, answer_yn, code); 334 if code = 0 & answer_yn = YES 335 then auto_xmail_data.lists_as_menus = "1"b; 336 else auto_xmail_data.lists_as_menus = "0"b; 337 338 call xmail_value_$get_no_validate (INTERACTIVE_MSGS, answer_yn, code); 339 if code = 0 & answer_yn = NO 340 then interactive_msgs_yn = "0"b; 341 else interactive_msgs_yn = "1"b; 342 343 call xmail_value_$get_no_validate (REMOVE_MENUS, answer_yn, code); 344 if code = 0 & answer_yn = YES 345 then auto_xmail_data.remove_menus = "1"b; 346 else auto_xmail_data.remove_menus = "0"b; 347 348 call xmail_value_$get_no_validate (CONFIRM_PRINT, answer_yn, code); 349 if code = 0 & answer_yn = NO 350 then auto_xmail_data.confirm_print = "0"b; 351 else auto_xmail_data.confirm_print = "1"b; 352 353 call xmail_value_$get_no_validate (MSGS_AS_MAIL, answer_yn, code); 354 if code = 0 & answer_yn = YES 355 then auto_xmail_data.msgs_as_mail = "1"b; 356 else auto_xmail_data.msgs_as_mail = "0"b; 357 358 /* Initialize general help switch and foreign mailbox switch */ 359 auto_xmail_data.general_help, auto_xmail_data.foreign_mailbox = "0"b; 360 361 /* Now check control arguments which can overide the settings for this 362* invocation of xmail. Also print obsolete warning message. */ 363 364 call cu_$arg_count (no_of_args, code); 365 if code ^= 0 366 then goto COMPLAIN; 367 368 if no_of_args > 0 369 then do arg_index = 1 to no_of_args; 370 call cu_$arg_ptr (arg_index, arg_ptr, arg_len, code); 371 if code ^= 0 372 then goto COMPLAIN; 373 374 if arg = "-mm" | arg = "-multics_mode" 375 then do; 376 multics_yn = "1"b; 377 call ioa_ ("Control argument ""-multics_mode"" is now obsolete." || PERSONALIZE_STATEMENT); 378 call timer_manager_$sleep (5, "11"b); 379 end; 380 381 else if arg = "-nim" | arg = "-no_interactive_messages" 382 then do; 383 interactive_msgs_yn = "0"b; 384 call ioa_ ("Control argument ""-no_interactive_messages"" is now obsolete." || PERSONALIZE_STATEMENT); 385 call timer_manager_$sleep (5, "11"b); 386 end; 387 388 else if arg = "-im" | arg = "-interactive_messages" 389 then do; 390 interactive_msgs_yn = "1"b; 391 call ioa_ ("Control argument ""-interactive_messages"" is now obsolete." || PERSONALIZE_STATEMENT); 392 call timer_manager_$sleep (5, "11"b); 393 end; 394 395 else if arg = "-esc" | arg = "-escape_sequences" 396 then do; 397 use_default_fkeys = "1"b; 398 call ioa_ ("Control argument ""-escape_sequences"" is now obsolete." || PERSONALIZE_STATEMENT); 399 call timer_manager_$sleep (5, "11"b); 400 end; 401 else do; 402 call com_err_ (error_table_$badopt, NAME, "^a^/^a", arg, HELP_LINE); 403 xmail_data_ptr = null; 404 goto EXIT; 405 end; 406 end; 407 408 auto_xmail_data.multics_mode = multics_yn; 409 auto_xmail_data.interactive_msgs = interactive_msgs_yn; 410 411 /* Check number of messages to decide if continuing */ 412 413 call mail_system_$get_message_counts ((xmail_data.mail_dir), "incoming", "1"b, total_message_count, ordinary_message_count, (0), code); /* ignore code */ 414 if total_message_count < 1 415 then do; 416 call ioa_$rsnnl ("^/You have no messages in the ""incoming"" mailbox.^/Do you still wish to enter executive_mail?", prompt_string, (0)); 417 call xmail_get_str_$yes_no (prompt_string, yes_sw); 418 if ^yes_sw 419 then do; 420 call xmail_dir_manager_$close_dir (); 421 xmail_data_ptr = null; 422 goto EXIT; 423 end; 424 end; 425 426 427 /* Get terminal data (function keys etc.). */ 428 429 auto_xmail_data.n_fkeys_used = N_FKEYS_USED + bin (auto_xmail_data.multics_mode, 1, 0); 430 431 ti.version = terminal_info_version; 432 call iox_$control (iox_$user_io, "terminal_info", addr (ti), code); 433 if code ^= 0 434 then goto COMPLAIN; 435 436 call ttt_info_$function_key_data (ti.term_type, null, function_key_data_ptr, code); 437 if code ^= 0 438 then use_default_fkeys = "1"b; 439 else if function_key_data.highest < auto_xmail_data.n_fkeys_used 440 then use_default_fkeys = "1"b; 441 442 if use_default_fkeys 443 then do; 444 if function_key_data_ptr ^= null () 445 then free function_key_data_ptr -> function_key_data; 446 auto_xmail_data.function_key_data_ptr = xmail_default_fkeys_ (); 447 auto_xmail_data.normal_usage = "(For help, press ESC, then ""?"")"; 448 end; 449 else do; 450 auto_xmail_data.function_key_data_ptr = function_key_data_ptr; 451 auto_xmail_data.normal_usage = "(For help, press F1)"; 452 end; 453 454 455 456 /* Window info */ 457 458 xmail_windows.min_lines_needed = MIN_LINES_NEEDED;/* For now. */ 459 xmail_windows.status.iocb, 460 xmail_windows.menu.iocb, 461 xmail_windows.bottom.iocb = null; 462 463 xmail_windows.status.position, 464 xmail_windows.menu.position, 465 xmail_windows.bottom.position = 0; 466 467 xmail_windows.initial_position = 0; 468 469 /* Find out if the video system is already on. */ 470 471 if video_data_$terminal_iocb ^= null 472 then video_was_on = "1"b; 473 else video_was_on = "0"b; 474 475 /***** Now really start setting things up. *****/ 476 477 /* Set up interactive message handling. */ 478 479 call xmail_im_mgr_$init; /* always init */ 480 481 if xmail_data.interactive_msgs then do; 482 messages_need_cleanup = "1"b; /* for cleanup */ 483 call xmail_im_mgr_$defer_messages; 484 end; 485 486 /* Find out if xmail has ever been invoked by this user before. */ 487 488 call xmail_value_$get_with_default ("lifetime_first_invocation", (YES), lifetime_first_invocation, code); 489 if code ^= 0 490 then do; 491 call xmail_error_$no_print (code, NAME, "l", "^a", INT_ERR); 492 lifetime_first_invocation = YES; 493 end; 494 495 /* Turn on the video system. */ 496 497 if ^video_was_on 498 then do; 499 call video_utils_$turn_on_login_channel (code, reason); 500 if code ^= 0 501 then do; 502 if code = error_table_$no_table 503 then call com_err_ (error_table_$invalid_device, NAME, "This command cannot operate with your current terminal type."); 504 else call com_err_ (code, NAME, "^a", reason); 505 goto ERROR_EXIT; 506 end; 507 end; 508 509 /* Set up needed windows. */ 510 511 call xmail_window_manager_$create_windows (code); 512 if code = xmail_err_$insuff_room_for_xmail 513 then do; 514 call com_err_ (code, NAME, "^/The minimum number of lines needed is ^d.", xmail_windows.min_lines_needed); 515 goto ERROR_EXIT; 516 end; 517 else if code ^= 0 518 then goto COMPLAIN; 519 video_needs_cleanup = "1"b; /* for cleanup */ 520 521 call iox_$modes (iox_$user_io, "", old_modes, code); 522 if code ^= 0 523 then call com_err_ (code, NAME, "Unable to get bottom window modes. ^a", INT_ERR); 524 else do; 525 if index (old_modes, FOLD_MODE) > 0 526 then do; 527 call iox_$modes (iox_$user_io, WRAP_MODE, old_modes, code); 528 if code ^= 0 529 then call com_err_ (code, NAME, "Unable to set wrap mode in bottom window. ^a", INT_ERR); 530 end; 531 end; 532 533 call xmail_sw_$initialize (); 534 535 on condition (program_interrupt) begin; 536 call window_$clear_window (iox_$user_io, code); 537 goto xmail_data.first_label; 538 end; 539 540 on condition (quit) 541 begin; 542 dcl xmail_window_manager_$reconnect entry (); 543 call xmail_window_manager_$reconnect (); 544 call window_$clear_window (iox_$user_io, code); 545 goto xmail_data.first_label; 546 end; 547 548 MAIN_MENU: 549 550 if lifetime_first_invocation = YES 551 then call xmail_Getting_Started_ (); 552 else call xmail_Executive_Mail_; 553 554 goto MAIN_MENU; 555 556 QUIT: 557 if lifetime_first_invocation = YES 558 then do; 559 call xmail_value_$set ("lifetime_first_invocation", (NO), "", code); 560 if code ^= 0 561 then call xmail_error_$no_print (code, NAME, "l", "^a", INT_ERR); 562 end; 563 call xmail_review_defers_ ("message", "defer", 30); 564 call xmail_review_defers_ ("reply", "reply", 30); 565 call CLEANUP ("0"b); /* not cleanup condition */ 566 goto EXIT; 567 568 COMPLAIN: 569 call com_err_ (code, NAME, "^a", INT_ERR); 570 571 ERROR_EXIT: 572 call CLEANUP ("0"b); /* not cleanup condition */ 573 574 EXIT: 575 return; 576 577 ssu_exit: entry; 578 579 /* This entry doesn't do anything but it is needed by the ssu standalone */ 580 /* invocation. It would be used by ssu_$print_message or 581*/* ssu_$abort_subsystem if it were ever called during the invocation. */ 582 583 return; 584 585 /* INTERNAL PROCEDURES */ 586 587 CLEANUP: proc (condition_signalled); 588 589 /* PARAMETERS */ 590 591 dcl condition_signalled bit (1); 592 dcl prompt char (46) init (" Press to continue") int static options (constant); 593 dcl 1 auto_query_info like query_info; 594 dcl been_thru_this_before bit (1) aligned; 595 dcl line char (80) var; 596 dcl iox_$user_output ptr ext static; 597 dcl command_query_ entry() options(variable); 598 dcl ENABLE_ESCAPE bit (2) aligned init ("11"b) int static options (constant); 599 600 /* input parameter */ 601 /* 1 = cleanup condition */ 602 /* 0 = no condition */ 603 /* BEGIN */ 604 605 if sci_ptr ^= null () 606 then call ssu_$destroy_invocation (sci_ptr); 607 if xmail_data_ptr = null then return; 608 if xmail_data.error_seg_in_pdir & ^condition_signalled then do; 609 610 call adjust_bit_count_ ((get_pdir_()),(ERROR_LOG_SEGMENT), "0"b, bit_count, code); 611 if code = 0 & bit_count > 0 then do; 612 call ioa_ ("^/ Xmail is closing down."); 613 call ioa_ ("^/ An xmail error log was created in your process"); 614 call ioa_ (" directory. It will only exist for the duration of your"); 615 call ioa_ (" process. If you wish to save the error_messages that were"); 616 call ioa_ (" written to the xmail.error segment, you should copy it from"); 617 call ioa_ (" your process directory to another directory before"); 618 call ioa_ (" you logout."); 619 620 auto_query_info.version = query_info_version_6; 621 auto_query_info.switches.yes_or_no_sw = "0"b; 622 auto_query_info.switches.suppress_name_sw = "1"b; 623 auto_query_info.switches.cp_escape_control = ENABLE_ESCAPE; 624 auto_query_info.switches.suppress_spacing = "1"b; 625 auto_query_info.switches.literal_sw = "0"b; 626 auto_query_info.switches.prompt_after_explanation = "0"b; 627 auto_query_info.switches.padding = "0"b; 628 auto_query_info.status_code = 0; 629 auto_query_info.query_code = 0; 630 auto_query_info.question_iocbp = null (); /* default: user_i/o */ 631 auto_query_info.answer_iocbp = null (); /* default: user_input */ 632 auto_query_info.repeat_time = 0; /* don't repeat */ 633 auto_query_info.explanation_ptr = null (); 634 auto_query_info.explanation_len = 0; 635 636 been_thru_this_before = "0"b; 637 do while ("1"b); 638 call iox_$control (iox_$user_output, "reset_more", null, (0)); /* ignore code */ 639 640 call command_query_ (addr (auto_query_info), line, "", "^[^/^]^a^2x", been_thru_this_before, prompt); 641 been_thru_this_before = "1"b; 642 643 if line = "" then goto CONTINUE; 644 end; 645 end; 646 end; 647 CONTINUE: 648 if xmail_dir_opened then call xmail_dir_manager_$close_dir (); 649 650 if video_needs_cleanup then do; 651 652 /* Reset fold mode if previously changed to wrap, do not ouput error 653* message if cleanup was signalled by condition */ 654 655 if index (old_modes, FOLD_MODE) > 0 656 then do; 657 call iox_$modes (iox_$user_io, FOLD_MODE, old_modes, code); 658 if code ^= 0 & ^condition_signalled 659 then call com_err_ (code, NAME, "Unable to reset fold mode in bottom window. ^a", INT_ERR); 660 end; 661 662 /* pass parameter to flag condition */ 663 664 call xmail_window_manager_$destroy_windows (condition_signalled); 665 if ^video_was_on then call video_utils_$turn_off_login_channel (0); 666 end; 667 668 if messages_need_cleanup & xmail_data.interactive_msgs then do; 669 if ^condition_signalled /* only print if not condition */ 670 then call xmail_im_mgr_$print_messages; 671 call xmail_im_mgr_$restore_original; /* restore users method of handling messages when leaving */ 672 end; 673 674 if xmail_data.function_key_data_ptr ^= null () 675 then free xmail_data.function_key_data_ptr -> function_key_data; 676 677 xmail_data_ptr = null; 678 679 680 end CLEANUP; 681 682 end xmail; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0735.8 xmail.pl1 >spec>install>MR12.2-1098>xmail.pl1 254 1 02/23/81 2146.3 function_key_data.incl.pl1 >ldd>include>function_key_data.incl.pl1 256 2 06/29/77 1624.0 terminal_info.incl.pl1 >ldd>include>terminal_info.incl.pl1 258 3 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 260 4 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 262 5 05/28/86 1117.7 xmail_responses.incl.pl1 >ldd>include>xmail_responses.incl.pl1 264 6 12/02/84 1132.9 xmail_windows.incl.pl1 >ldd>include>xmail_windows.incl.pl1 6-14 7 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. ALWAYS_ESCAPE 000160 constant char(21) initial packed unaligned dcl 235 set ref 323* CONFIRM_PRINT 000154 constant char(16) initial packed unaligned dcl 236 set ref 348* ENABLE_ESCAPE constant bit(2) initial dcl 598 ref 623 ERROR_LOG_SEGMENT 000151 constant char(11) initial packed unaligned dcl 237 ref 610 FOLD_MODE 000145 constant char(14) initial packed unaligned dcl 238 set ref 525 655 657* HELP_LINE 000134 constant char(36) initial packed unaligned dcl 239 set ref 402* INTERACTIVE_MSGS 000115 constant char(19) initial packed unaligned dcl 241 set ref 338* INT_ERR 000122 constant char(38) initial packed unaligned dcl 240 set ref 491* 522* 528* 560* 568* 658* LISTS_AS_MENUS 000110 constant char(17) initial packed unaligned dcl 242 set ref 333* MIN_LINES_NEEDED constant fixed bin(17,0) initial dcl 243 ref 458 MSGS_AS_MAIL 000104 constant char(15) initial packed unaligned dcl 244 set ref 353* MULTICS_MODE 000100 constant char(15) initial packed unaligned dcl 245 set ref 328* NAME 000074 constant char(14) initial packed unaligned dcl 246 set ref 273* 289* 402* 491* 502* 504* 514* 522* 528* 560* 568* 658* NO 004446 constant char(2) initial packed unaligned dcl 5-16 ref 339 349 559 N_FKEYS_USED constant fixed bin(17,0) initial dcl 247 ref 429 PERSONALIZE_STATEMENT 000031 constant char(139) initial packed unaligned dcl 248 ref 377 384 391 398 REMOVE_MENUS 000025 constant char(15) initial packed unaligned dcl 249 set ref 343* WRAP_MODE 000021 constant char(14) initial packed unaligned dcl 250 set ref 527* YES 000014 constant char(3) initial packed unaligned dcl 5-16 ref 324 329 334 344 354 488 492 548 556 actee 171 000362 automatic structure level 2 unaligned dcl 167 addr builtin function dcl 176 ref 307 432 432 640 640 adjust_bit_count_ 000010 constant entry external dcl 184 ref 610 answer_iocbp 6 000642 automatic pointer initial level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" set ref 3-7* answer_iocbp 6 000100 automatic pointer initial level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 593* 631* answer_yn 000100 automatic varying char(3) dcl 143 set ref 323* 324 328* 329 333* 334 338* 339 343* 344 348* 349 353* 354 arg based char packed unaligned dcl 172 set ref 374 374 381 381 388 388 395 395 402* arg_index 000102 automatic fixed bin(17,0) dcl 144 set ref 368* 370* arg_len 000103 automatic fixed bin(21,0) dcl 145 set ref 370* 374 374 381 381 388 388 395 395 402 402 arg_ptr 000104 automatic pointer dcl 146 set ref 370* 374 374 381 381 388 388 395 395 402 auto_query_info 000100 automatic structure level 1 unaligned dcl 593 set ref 640 640 auto_xmail_data 000362 automatic structure level 1 unaligned dcl 167 set ref 307 been_thru_this_before 000115 automatic bit(1) dcl 594 set ref 636* 640* 641* bin builtin function dcl 176 ref 429 bit_count 000106 automatic fixed bin(35,0) dcl 147 set ref 610* 611 bottom 32 000144 external static structure level 2 dcl 6-5 cleanup 000616 stack reference condition dcl 180 ref 285 code 000107 automatic fixed bin(35,0) dcl 148 set ref 289* 290* 311* 312 317 323* 324 328* 329 333* 334 338* 339 343* 344 348* 349 353* 354 364* 365 370* 371 413* 432* 433 436* 437 488* 489 491* 499* 500 502 504* 511* 512 514* 517 521* 522 522* 527* 528 528* 536* 544* 559* 560 560* 568* 610* 611 657* 658 658* codeptr builtin function dcl 176 ref 290 290 com_err_ 000012 constant entry external dcl 185 ref 273 402 502 504 514 522 528 568 658 command_query_ 000152 constant entry external dcl 597 ref 640 condition_signalled parameter bit(1) packed unaligned dcl 591 set ref 587 608 658 664* 669 confirm_print 213(03) 000362 automatic bit(1) level 3 packed packed unaligned dcl 167 set ref 349* 351* cp_escape_control 1(02) 000642 automatic bit(2) initial level 3 in structure "query_info" packed packed unaligned dcl 3-7 in procedure "executive_mail" set ref 3-7* cp_escape_control 1(02) 000100 automatic bit(2) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 593 in procedure "CLEANUP" set ref 593* 623* cu_$arg_count 000014 constant entry external dcl 186 ref 364 cu_$arg_ptr 000016 constant entry external dcl 187 ref 370 error_seg_in_pdir 213(11) based bit(1) level 3 in structure "xmail_data" packed packed unaligned dcl 4-54 in procedure "executive_mail" ref 608 error_seg_in_pdir 213(11) 000362 automatic bit(1) level 3 in structure "auto_xmail_data" packed packed unaligned dcl 167 in procedure "executive_mail" set ref 310* error_table_$badopt 000124 external static fixed bin(35,0) dcl 225 set ref 402* error_table_$invalid_device 000126 external static fixed bin(35,0) dcl 226 set ref 502* error_table_$no_table 000130 external static fixed bin(35,0) dcl 227 ref 502 explanation_len 14 000642 automatic fixed bin(21,0) initial level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" set ref 3-7* explanation_len 14 000100 automatic fixed bin(21,0) initial level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 593* 634* explanation_ptr 12 000100 automatic pointer initial level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 593* 633* explanation_ptr 12 000642 automatic pointer initial level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" set ref 3-7* first_label 54 based label variable level 2 in structure "xmail_data" dcl 4-54 in procedure "executive_mail" ref 537 545 first_label 54 000362 automatic label variable level 2 in structure "auto_xmail_data" dcl 167 in procedure "executive_mail" set ref 296* flags 213 000362 automatic structure level 2 in structure "auto_xmail_data" dcl 167 in procedure "executive_mail" flags 213 based structure level 2 in structure "xmail_data" dcl 4-54 in procedure "executive_mail" foreign_mailbox 213(06) 000362 automatic bit(1) level 3 packed packed unaligned dcl 167 set ref 359* function_key_data based structure level 1 dcl 1-7 ref 444 674 function_key_data_ptr 166 000362 automatic pointer level 3 in structure "auto_xmail_data" dcl 167 in procedure "executive_mail" set ref 299* 446* 450* function_key_data_ptr 166 based pointer level 3 in structure "xmail_data" dcl 4-54 in procedure "executive_mail" ref 674 674 function_key_data_ptr 000640 automatic pointer dcl 1-34 in procedure "executive_mail" set ref 436* 439 444 444 450 function_key_info 166 based structure level 2 in structure "xmail_data" dcl 4-54 in procedure "executive_mail" function_key_info 166 000362 automatic structure level 2 in structure "auto_xmail_data" unaligned dcl 167 in procedure "executive_mail" general_help 213(07) 000362 automatic bit(1) level 3 packed packed unaligned dcl 167 set ref 359* get_pdir_ 000020 constant entry external dcl 188 ref 610 highest 1 based fixed bin(17,0) level 2 dcl 1-7 ref 439 444 674 index builtin function dcl 176 ref 525 655 initial_position 000144 external static fixed bin(17,0) level 2 dcl 6-5 set ref 467* interactive_msgs 213(05) 000362 automatic bit(1) level 3 in structure "auto_xmail_data" packed packed unaligned dcl 167 in procedure "executive_mail" set ref 409* interactive_msgs 213(05) based bit(1) level 3 in structure "xmail_data" packed packed unaligned dcl 4-54 in procedure "executive_mail" ref 481 668 interactive_msgs_yn 000110 automatic bit(1) dcl 149 set ref 339* 341* 383* 390* 409 ioa_ 000022 constant entry external dcl 189 ref 377 384 391 398 612 613 614 615 616 617 618 ioa_$rsnnl 000024 constant entry external dcl 190 ref 416 iocb 2 000144 external static pointer level 3 in structure "xmail_windows" dcl 6-5 in procedure "executive_mail" set ref 459* iocb 22 000144 external static pointer level 3 in structure "xmail_windows" dcl 6-5 in procedure "executive_mail" set ref 459* iocb 32 000144 external static pointer level 3 in structure "xmail_windows" dcl 6-5 in procedure "executive_mail" set ref 459* iox_$control 000026 constant entry external dcl 191 ref 432 638 iox_$modes 000030 constant entry external dcl 192 ref 521 527 657 iox_$user_io 000132 external static pointer dcl 228 set ref 432* 521* 527* 536* 544* 657* iox_$user_output 000150 external static pointer dcl 596 set ref 638* key_info based structure level 1 packed packed unaligned dcl 1-28 lifetime_first_invocation 000112 automatic varying char(3) dcl 150 set ref 488* 492* 548 556 line 000116 automatic varying char(80) dcl 595 set ref 640* 643 lists_as_menus 213(01) 000362 automatic bit(1) level 3 packed packed unaligned dcl 167 set ref 334* 336* literal_sw 1(05) 000642 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 3-7 in procedure "executive_mail" set ref 3-7* literal_sw 1(05) 000100 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 593 in procedure "CLEANUP" set ref 593* 625* mail_dir 000362 automatic varying char(168) level 2 in structure "auto_xmail_data" dcl 167 in procedure "executive_mail" set ref 295* mail_dir based varying char(168) level 2 in structure "xmail_data" dcl 4-54 in procedure "executive_mail" ref 413 mail_system_$get_message_counts 000032 constant entry external dcl 193 ref 413 menu 22 000144 external static structure level 2 dcl 6-5 messages_need_cleanup 000114 automatic bit(1) dcl 151 set ref 283* 482* 668 min_lines_needed 1 000144 external static fixed bin(17,0) level 2 dcl 6-5 set ref 458* 514* msgs_as_mail 213(09) 000362 automatic bit(1) level 3 packed packed unaligned dcl 167 set ref 354* 356* multics_mode 213(04) 000362 automatic bit(1) level 3 packed packed unaligned dcl 167 set ref 408* 429 multics_yn 000115 automatic bit(1) dcl 152 set ref 329* 331* 376* 408 n_fkeys_used 170 000362 automatic fixed bin(17,0) level 3 dcl 167 set ref 429* 439 no_of_args 000116 automatic fixed bin(17,0) dcl 153 set ref 364* 368 368 normal_usage 142 000362 automatic char(80) level 2 packed packed unaligned dcl 167 set ref 447* 451* null builtin function dcl 176 ref 271 279 280 289 289 299 314 403 421 436 436 444 459 471 3-7 3-7 3-7 593 593 593 605 607 630 631 633 638 638 674 677 old_modes 000117 automatic char(256) packed unaligned dcl 154 set ref 284* 521* 525 527* 655 657* ordinary_message_count 000221 automatic fixed bin(17,0) dcl 156 set ref 413* padding 1(07) 000100 automatic bit(29) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 593 in procedure "CLEANUP" set ref 593* 627* padding 1(07) 000642 automatic bit(29) initial level 3 in structure "query_info" packed packed unaligned dcl 3-7 in procedure "executive_mail" set ref 3-7* person 000222 automatic char(32) packed unaligned dcl 157 in procedure "executive_mail" set ref 303* 304 person 171 000362 automatic varying char(32) level 3 in structure "auto_xmail_data" dcl 167 in procedure "executive_mail" set ref 304* position 4 000144 external static structure level 3 in structure "xmail_windows" dcl 6-5 in procedure "executive_mail" set ref 463* position 24 000144 external static structure level 3 in structure "xmail_windows" dcl 6-5 in procedure "executive_mail" set ref 463* position 34 000144 external static structure level 3 in structure "xmail_windows" dcl 6-5 in procedure "executive_mail" set ref 463* program_interrupt 000624 stack reference condition dcl 180 ref 535 project 000232 automatic char(32) packed unaligned dcl 158 in procedure "executive_mail" set ref 303* 305 project 202 000362 automatic varying char(32) level 3 in structure "auto_xmail_data" dcl 167 in procedure "executive_mail" set ref 305* prompt 000000 constant char(46) initial packed unaligned dcl 592 set ref 640* prompt_after_explanation 1(06) 000642 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 3-7 in procedure "executive_mail" set ref 3-7* prompt_after_explanation 1(06) 000100 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 593 in procedure "CLEANUP" set ref 593* 626* prompt_string 000242 automatic varying char(160) dcl 159 set ref 416* 417* query_code 3 000642 automatic fixed bin(35,0) initial level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" set ref 3-7* query_code 3 000100 automatic fixed bin(35,0) initial level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 593* 629* query_info 000642 automatic structure level 1 dcl 3-7 query_info_version_6 constant fixed bin(17,0) initial dcl 3-36 ref 620 question_iocbp 4 000642 automatic pointer initial level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" set ref 3-7* question_iocbp 4 000100 automatic pointer initial level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 593* 630* quit 000632 stack reference condition dcl 180 ref 540 quit_label 60 000362 automatic label variable level 2 dcl 167 set ref 297* reason 000313 automatic char(128) packed unaligned dcl 160 set ref 499* 504* remove_menus 213(02) 000362 automatic bit(1) level 3 packed packed unaligned dcl 167 set ref 344* 346* repeat_time 10 000100 automatic fixed bin(71,0) initial level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 593* 632* repeat_time 10 000642 automatic fixed bin(71,0) initial level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" set ref 3-7* rtrim builtin function dcl 176 ref 304 305 sci_ptr 000354 automatic pointer dcl 161 set ref 280* 289* 290* 291* 605 605* ssu_$destroy_invocation 000034 constant entry external dcl 194 ref 291 605 ssu_$record_usage 000036 constant entry external dcl 195 ref 290 ssu_$standalone_invocation 000040 constant entry external dcl 196 ref 289 status 2 000144 external static structure level 2 dcl 6-5 status_code 2 000100 automatic fixed bin(35,0) initial level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 593* 628* status_code 2 000642 automatic fixed bin(35,0) initial level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" set ref 3-7* suppress_name_sw 1(01) 000100 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 593 in procedure "CLEANUP" set ref 593* 622* suppress_name_sw 1(01) 000642 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 3-7 in procedure "executive_mail" set ref 3-7* suppress_spacing 1(04) 000100 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 593 in procedure "CLEANUP" set ref 593* 624* suppress_spacing 1(04) 000642 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 3-7 in procedure "executive_mail" set ref 3-7* switches 1 000100 automatic structure level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" switches 1 000642 automatic structure level 2 in structure "query_info" dcl 3-7 in procedure "executive_mail" term_type 2 000576 automatic char(32) level 2 packed packed unaligned dcl 168 set ref 436* terminal_info based structure level 1 dcl 2-6 terminal_info_version constant fixed bin(17,0) initial dcl 2-16 ref 431 ti 000576 automatic structure level 1 unaligned dcl 168 set ref 432 432 timer_manager_$sleep 000042 constant entry external dcl 197 ref 378 385 392 399 total_message_count 000220 automatic fixed bin(17,0) dcl 156 set ref 413* 414 ttt_info_$function_key_data 000044 constant entry external dcl 198 ref 436 use_default_fkeys 000356 automatic bit(1) dcl 162 set ref 324* 326* 397* 437* 439* 442 user_info_$whoami 000046 constant entry external dcl 199 ref 303 value_seg_pathname 64 000362 automatic varying char(168) level 2 dcl 167 set ref 298* version 000576 automatic fixed bin(17,0) level 2 in structure "ti" dcl 168 in procedure "executive_mail" set ref 431* version 000100 automatic fixed bin(17,0) level 2 in structure "auto_query_info" dcl 593 in procedure "CLEANUP" set ref 620* video_data_$terminal_iocb 000134 external static pointer dcl 229 ref 471 video_needs_cleanup 000357 automatic bit(1) dcl 163 set ref 282* 519* 650 video_utils_$turn_off_login_channel 000050 constant entry external dcl 200 ref 665 video_utils_$turn_on_login_channel 000052 constant entry external dcl 201 ref 499 video_was_on 000360 automatic bit(1) dcl 164 set ref 471* 473* 497 665 window_$clear_window 000054 constant entry external dcl 202 ref 536 544 window_position_info based structure level 1 unaligned dcl 7-25 xmail$ssu_exit 000056 constant entry external dcl 203 ref 289 289 xmail_Executive_Mail_ 000060 constant entry external dcl 204 ref 552 xmail_Getting_Started_ 000062 constant entry external dcl 205 ref 548 xmail_data based structure level 1 dcl 4-54 xmail_data_ptr 000142 external static pointer initial dcl 4-52 set ref 271 279* 307* 314* 403* 413 421* 481 537 545 607 608 668 674 674 677* xmail_default_fkeys_ 000064 constant entry external dcl 206 ref 446 xmail_dir_manager_$close_dir 000066 constant entry external dcl 207 ref 313 420 647 xmail_dir_manager_$open_dir 000070 constant entry external dcl 208 ref 311 xmail_dir_opened 000217 automatic bit(1) dcl 155 set ref 281* 319* 647 xmail_err_$exit_now 000136 external static fixed bin(35,0) dcl 230 ref 312 xmail_err_$insuff_room_for_xmail 000140 external static fixed bin(35,0) dcl 231 ref 512 xmail_error_$no_print 000072 constant entry external dcl 209 ref 491 560 xmail_get_str_$yes_no 000074 constant entry external dcl 210 ref 417 xmail_im_mgr_$defer_messages 000076 constant entry external dcl 211 ref 483 xmail_im_mgr_$init 000100 constant entry external dcl 212 ref 479 xmail_im_mgr_$print_messages 000102 constant entry external dcl 213 ref 669 xmail_im_mgr_$restore_original 000104 constant entry external dcl 214 ref 671 xmail_review_defers_ 000106 constant entry external dcl 215 ref 563 564 xmail_sw_$initialize 000110 constant entry external dcl 216 ref 533 xmail_value_$get_no_validate 000112 constant entry external dcl 217 ref 323 328 333 338 343 348 353 xmail_value_$get_with_default 000114 constant entry external dcl 218 ref 488 xmail_value_$set 000116 constant entry external dcl 219 ref 559 xmail_version 000015 constant varying char(10) initial dcl 4-84 ref 289 xmail_window_info_format based structure level 1 dcl 6-10 xmail_window_manager_$create_windows 000120 constant entry external dcl 220 ref 511 xmail_window_manager_$destroy_windows 000122 constant entry external dcl 221 ref 664 xmail_window_manager_$reconnect 000146 constant entry external dcl 542 ref 543 xmail_windows 000144 external static structure level 1 dcl 6-5 yes_or_no_sw 1 000642 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 3-7 in procedure "executive_mail" set ref 3-7* yes_or_no_sw 1 000100 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 593 in procedure "CLEANUP" set ref 593* 621* yes_sw 000361 automatic bit(1) dcl 165 set ref 417* 418 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A internal static char(1) initial packed unaligned dcl 5-16 ALL internal static char(3) initial packed unaligned dcl 5-16 ASK internal static char(3) initial packed unaligned dcl 5-16 DATE internal static char(4) initial packed unaligned dcl 5-16 F internal static char(1) initial packed unaligned dcl 5-16 FIRST internal static char(5) initial packed unaligned dcl 5-16 KEY_CTRL internal static fixed bin(17,0) initial dcl 1-22 KEY_CTRL_AND_SHIFT internal static fixed bin(17,0) initial dcl 1-22 KEY_PLAIN internal static fixed bin(17,0) initial dcl 1-22 KEY_SHIFT internal static fixed bin(17,0) initial dcl 1-22 L internal static char(1) initial packed unaligned dcl 5-16 LAST internal static char(4) initial packed unaligned dcl 5-16 LIST internal static char(2) initial packed unaligned dcl 5-16 N internal static char(1) initial packed unaligned dcl 5-16 NEW internal static char(3) initial packed unaligned dcl 5-16 NEXT internal static char(4) initial packed unaligned dcl 5-16 P internal static char(1) initial packed unaligned dcl 5-16 PREV internal static char(4) initial packed unaligned dcl 5-16 QUESTION internal static char(1) initial packed unaligned dcl 5-16 S internal static char(1) initial packed unaligned dcl 5-16 SEARCH internal static char(6) initial packed unaligned dcl 5-16 SEEN internal static char(4) initial packed unaligned dcl 5-16 SET internal static char(3) initial packed unaligned dcl 5-16 UNSEEN internal static char(6) initial packed unaligned dcl 5-16 Y internal static char(1) initial packed unaligned dcl 5-16 break_table_info based structure level 1 dcl 7-76 break_table_info_version internal static fixed bin(17,0) initial dcl 7-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 7-80 break_table_ptr automatic pointer dcl 7-75 function_key_data_highest automatic fixed bin(17,0) dcl 1-35 function_key_data_version_1 internal static fixed bin(17,0) initial dcl 1-36 function_key_seqs based char packed unaligned dcl 1-32 get_editor_key_bindings_info based structure level 1 dcl 7-151 get_editor_key_bindings_info_ptr automatic pointer dcl 7-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 7-160 key_info_ptr automatic pointer dcl 1-38 line_editor_binding_count automatic fixed bin(17,0) dcl 7-121 line_editor_key_binding_info based structure level 1 dcl 7-129 line_editor_key_binding_info_ptr automatic pointer dcl 7-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 7-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 7-123 more_handler_info based structure level 1 dcl 7-83 more_handler_info_ptr automatic pointer dcl 7-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 7-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 7-94 more_prompt_info based structure level 1 dcl 7-108 more_prompt_info_ptr automatic pointer dcl 7-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 7-114 more_responses_info based structure level 1 dcl 7-59 more_responses_info_ptr automatic pointer dcl 7-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 7-67 more_responses_version internal static fixed bin(17,0) initial dcl 7-67 query_info_version_3 internal static fixed bin(17,0) initial dcl 3-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 3-34 query_info_version_5 internal static fixed bin(17,0) initial dcl 3-35 set_editor_key_bindings_info based structure level 1 dcl 7-162 set_editor_key_bindings_info_ptr automatic pointer dcl 7-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 7-172 terminal_info_ptr automatic pointer dcl 2-15 token_characters_info based structure level 1 dcl 7-97 token_characters_info_ptr automatic pointer dcl 7-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 7-106 window_edit_line_info based structure level 1 unaligned dcl 7-177 window_edit_line_info_ptr automatic pointer dcl 7-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 7-183 window_position_info_ptr automatic pointer dcl 7-37 window_position_info_version internal static fixed bin(17,0) initial dcl 7-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 7-35 window_status_info based structure level 1 dcl 7-45 window_status_info_ptr automatic pointer dcl 7-43 window_status_version internal static fixed bin(17,0) initial dcl 7-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 7-52 NAMES DECLARED BY EXPLICIT CONTEXT. CLEANUP 003604 constant entry internal dcl 587 ref 285 565 571 COMPLAIN 003533 constant label dcl 568 ref 317 365 371 433 517 CONTINUE 004223 constant label dcl 647 ref 643 ERROR_EXIT 003562 constant label dcl 571 ref 505 515 EXIT 003572 constant label dcl 574 ref 274 315 404 422 566 MAIN_MENU 003324 constant label dcl 548 ref 296 554 QUIT 003345 constant label dcl 556 ref 297 executive_mail 001010 constant entry external dcl 52 ssu_exit 003574 constant entry external dcl 577 xmail 001020 constant entry external dcl 52 ref 290 290 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5364 5540 4447 5374 Length 6226 4447 154 452 714 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME executive_mail 586 external procedure is an external procedure. on unit on line 285 72 on unit on unit on line 535 70 on unit on unit on line 540 70 on unit CLEANUP 168 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME CLEANUP 000100 auto_query_info CLEANUP 000115 been_thru_this_before CLEANUP 000116 line CLEANUP executive_mail 000100 answer_yn executive_mail 000102 arg_index executive_mail 000103 arg_len executive_mail 000104 arg_ptr executive_mail 000106 bit_count executive_mail 000107 code executive_mail 000110 interactive_msgs_yn executive_mail 000112 lifetime_first_invocation executive_mail 000114 messages_need_cleanup executive_mail 000115 multics_yn executive_mail 000116 no_of_args executive_mail 000117 old_modes executive_mail 000217 xmail_dir_opened executive_mail 000220 total_message_count executive_mail 000221 ordinary_message_count executive_mail 000222 person executive_mail 000232 project executive_mail 000242 prompt_string executive_mail 000313 reason executive_mail 000354 sci_ptr executive_mail 000356 use_default_fkeys executive_mail 000357 video_needs_cleanup executive_mail 000360 video_was_on executive_mail 000361 yes_sw executive_mail 000362 auto_xmail_data executive_mail 000576 ti executive_mail 000640 function_key_data_ptr executive_mail 000642 query_info executive_mail THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_2 enable_op shorten_stack ext_entry int_entry set_chars_eis index_chars_eis op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ com_err_ command_query_ cu_$arg_count cu_$arg_ptr get_pdir_ ioa_ ioa_$rsnnl iox_$control iox_$modes mail_system_$get_message_counts ssu_$destroy_invocation ssu_$record_usage ssu_$standalone_invocation timer_manager_$sleep ttt_info_$function_key_data user_info_$whoami video_utils_$turn_off_login_channel video_utils_$turn_on_login_channel window_$clear_window xmail$ssu_exit xmail_Executive_Mail_ xmail_Getting_Started_ xmail_default_fkeys_ xmail_dir_manager_$close_dir xmail_dir_manager_$open_dir xmail_error_$no_print xmail_get_str_$yes_no xmail_im_mgr_$defer_messages xmail_im_mgr_$init xmail_im_mgr_$print_messages xmail_im_mgr_$restore_original xmail_review_defers_ xmail_sw_$initialize xmail_value_$get_no_validate xmail_value_$get_with_default xmail_value_$set xmail_window_manager_$create_windows xmail_window_manager_$destroy_windows xmail_window_manager_$reconnect THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$invalid_device error_table_$no_table iox_$user_io iox_$user_output video_data_$terminal_iocb xmail_data_ptr xmail_err_$exit_now xmail_err_$insuff_room_for_xmail xmail_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 3 7 000755 52 001007 271 001026 273 001033 274 001057 279 001060 280 001062 281 001063 282 001064 283 001065 284 001066 285 001071 289 001117 290 001170 291 001206 295 001215 296 001216 297 001221 298 001224 299 001225 303 001227 304 001247 305 001267 307 001307 310 001312 311 001314 312 001322 313 001326 314 001332 315 001335 317 001336 319 001340 323 001342 324 001362 326 001374 328 001375 329 001416 331 001430 333 001431 334 001452 336 001464 338 001466 339 001507 341 001520 343 001522 344 001543 346 001555 348 001557 349 001600 351 001612 353 001614 354 001635 356 001647 359 001651 364 001655 365 001666 368 001670 370 001701 371 001716 374 001720 376 001732 377 001734 378 001753 379 001770 381 001771 383 002001 384 002002 385 002021 386 002036 388 002037 390 002047 391 002051 392 002070 393 002105 395 002106 397 002116 398 002120 399 002137 400 002154 402 002155 403 002213 404 002216 406 002217 408 002221 409 002226 413 002233 414 002311 416 002315 417 002342 418 002357 420 002362 421 002367 422 002372 429 002373 431 002400 432 002402 433 002434 436 002436 437 002464 439 002471 442 002477 444 002501 446 002514 447 002523 448 002526 450 002527 451 002531 458 002534 459 002540 463 002544 467 002563 471 002564 473 002573 479 002574 481 002600 482 002606 483 002610 488 002614 489 002647 491 002651 492 002706 497 002712 499 002714 500 002731 502 002733 504 002762 505 003010 511 003011 512 003020 514 003024 515 003054 517 003055 519 003057 521 003061 522 003105 525 003140 527 003147 528 003174 533 003226 535 003233 536 003247 537 003260 540 003265 543 003301 544 003305 545 003317 548 003324 552 003337 554 003344 556 003345 559 003352 560 003407 563 003446 564 003475 565 003522 566 003532 568 003533 571 003562 574 003572 577 003573 583 003602 587 003603 593 003611 605 003641 607 003654 608 003661 610 003674 611 003727 612 003734 613 003750 614 003764 615 004000 616 004014 617 004030 618 004044 620 004061 621 004063 622 004065 623 004067 624 004071 625 004073 626 004075 627 004077 628 004101 629 004102 630 004103 631 004105 632 004106 633 004110 634 004112 636 004113 638 004114 640 004150 641 004213 643 004215 644 004222 647 004223 650 004233 655 004236 657 004245 658 004272 664 004333 665 004343 668 004356 669 004367 671 004401 674 004406 677 004424 680 004427 ----------------------------------------------------------- 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