COMPILATION LISTING OF SEGMENT xmail_update_mlist_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0745.4 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 13 /****^ HISTORY COMMENTS: 14* 1) change(86-04-16,Blair), approve(86-04-16,MCR7358), 15* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 16* Remove unreferenced constants. 17* END HISTORY COMMENTS */ 18 19 20 xmail_update_mlist_: proc (P_dir, P_file); 21 22 /* BEGIN DESCRIPTION 23* 24*History: Author unknown 25* 26* 83-10-26 DJ Schimke: Added quit condition handler with a call to 27* xmail_window_manager_$quit_handler to special-case the reconnect condition 28* which should NOT interrupt processing after the quit. phx 13227 This entry 29* also prompts when not at a reconnect condition so that unintentionally 30* hitting the BREAK won't throw away any pending work. phx 13018 31* 32* 84-09-24 JG Backs: Added code before and after the call to emacs_ to test 33* if menus should be removed before editing (personalization option Remove 34* Menus While Editing). If option is in effect, calls to new entrypoints, 35* $suppress_menu and $restore_menu in xmail_window_manager_ are made. Also 36* added test in quit handler to make sure restore menus is done if quit in 37* editor. 38* 39*END DESCRIPTION 40**/ 41 42 /* PARAMETERS */ 43 44 dcl (P_dir, P_file) char (*); 45 46 /* AUTOMATIC */ 47 48 dcl code fixed bin (35); 49 dcl restore_menu_needed bit (1) aligned; /* if remove menu */ 50 dcl seg_pname char (168); 51 52 /* BUILTINS */ 53 54 dcl (codeptr, null, rtrim) builtin; 55 56 /* ENTRIES */ 57 58 dcl com_err_$suppress_name entry () options (variable); 59 dcl emacs_ entry (ptr, char (*), char (*), ptr, fixed bin (35)); 60 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)); 61 dcl hcs_$make_ptr entry (ptr, char (*), char (*), ptr, fixed bin (35)); 62 dcl ioa_ entry () options (variable); 63 dcl xmail_redisplay_$menu entry (); 64 dcl xmail_window_manager_$quit_handler entry () returns (bit (1) aligned); 65 dcl xmail_window_manager_$reconnect entry (); 66 dcl xmail_window_manager_$restore_menu entry (); 67 dcl xmail_window_manager_$suppress_menu entry (); 68 69 /* INTERNAL STATIC */ 70 71 dcl ext_dir char (168) int static; 72 dcl ext_file char (32) int static; 73 dcl ext_pname char (168) int static; 74 dcl ext_ptr ptr init (null) int static; 75 76 /* EXTERNAL STATIC */ 77 78 dcl iox_$user_io ptr ext static; 79 dcl xmail_err_$int_prog_err fixed bin (35) ext static; 80 81 /* CONSTANTS */ 82 83 dcl EXTENSION_ENAME char (22) init ("xmail_emacs_ext_mlist_") int static options (constant); 84 dcl ME_CHAR char (19) init ("xmail_update_mlist_") int static options (constant); 85 dcl ME_ENTRY entry variable init (xmail_update_mlist_); 86 87 /* CONDITIONS */ 88 89 dcl (quit) condition; 90 91 /* INCLUDE FILES */ 92 1 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 1 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 1 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 1 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 10* Adding switch to indicate request for menu display came from general help. 1 11* This is so general help menu will be displayed in top screen. 1 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 1 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 14* Add switch to indicate whether or not it is permissible to process mail 1 15* in other users' mailboxes (foreign_mailbox). 1 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 1 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 18* Add bit to indicate whether or not this is a true cleanup condition. 1 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 1 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 21* Rearrange to group all the bit flags together in one word with a pad. 1 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 1 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 1 25* you keep around a pointer to a structure which no longer exists. 1 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 1 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 1 28* Add a field to indicate whether or not we should process interactive msgs. 1 29* Increment version to 4.1 so default value will get set. 1 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 1 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 1 32* Add a field to indicate whether or not we're processing a reply so that we 1 33* will be able to rebuild the screens properly after a disconnect occurs. 1 34* Error_list #114. 1 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 1 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 1 37* Add a bit to indicate whether or not the error segment had to be created 1 38* in the pdir (because we didn't have sma access to the mlsys_dir). 1 39* END HISTORY COMMENTS */ 1 40 1 41 1 42 /* Written 5/13/81 by Paul H. Kyzivat */ 1 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 1 44* and to add n_fkeys_used */ 1 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 1 46* varying string. */ 1 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 1 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 1 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 1 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 1 51 1 52 dcl xmail_data_ptr external static ptr init (null); 1 53 1 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 1 55 2 mail_dir char (168) varying, 1 56 2 first_label label, 1 57 2 quit_label label, 1 58 2 value_seg_pathname char (168) varying, 1 59 2 moved_user_io ptr, 1 60 2 normal_usage char (80) unal, 1 61 2 function_key_info, 1 62 3 function_key_data_ptr ptr, 1 63 3 n_fkeys_used fixed bin, 1 64 2 actee, 1 65 3 person char(32) varying, 1 66 3 project char(32) varying, 1 67 2 flags aligned, 1 68 3 mail_in_incoming bit (1) unal, 1 69 3 lists_as_menus bit (1) unal, /* personalization */ 1 70 3 remove_menus bit (1) unal, /* personalization */ 1 71 3 confirm_print bit (1) unal, /* personalization */ 1 72 3 multics_mode bit (1) unal, /* personalization */ 1 73 3 interactive_msgs bit (1) unal, /* personalization */ 1 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 1 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 1 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 1 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 1 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 1 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 1 80 3 pad bit (24) unal; 1 81 1 82 1 83 1 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 1 85 1 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 93 94 95 /* BEGIN */ 96 97 restore_menu_needed = "0"b; 98 if ext_ptr = null 99 then do; 100 call hcs_$make_ptr (codeptr (ME_ENTRY), EXTENSION_ENAME, "", ext_ptr, code); 101 if code ^= 0 then call update_mlist_err (xmail_err_$int_prog_err, "Trying to locate extension."); 102 call hcs_$fs_get_path_name (ext_ptr, ext_dir, (0), ext_file, code); 103 if code ^= 0 then call update_mlist_err (xmail_err_$int_prog_err, "Trying to get extension pathname"); 104 ext_pname = rtrim (ext_dir) || ">" || rtrim (EXTENSION_ENAME); 105 end; 106 107 on condition (quit) 108 begin; 109 if xmail_window_manager_$quit_handler () 110 then do; 111 if restore_menu_needed 112 then do; 113 call xmail_window_manager_$restore_menu; 114 call xmail_redisplay_$menu; 115 end; 116 go to EXIT; 117 end; 118 end; 119 120 seg_pname = rtrim (P_dir) || ">" || rtrim (P_file); 121 122 call ioa_ ("... Please wait for editor ..."); 123 124 /* Check personalization option to remove and restore menus while editing */ 125 126 if xmail_data.remove_menus 127 then do; 128 call xmail_window_manager_$suppress_menu (); 129 restore_menu_needed = "1"b; 130 end; 131 132 call emacs_ (iox_$user_io, seg_pname, ext_pname, null, code); 133 134 if restore_menu_needed 135 then do; 136 call xmail_window_manager_$restore_menu (); 137 call xmail_redisplay_$menu; 138 restore_menu_needed = "0"b; 139 end; 140 141 if code ^= 0 then call xmail_window_manager_$reconnect (); 142 143 EXIT: 144 145 return; 146 147 148 /* INTERNAL PROCEDURES */ 149 150 update_mlist_err: proc (P_code, P_str); 151 152 dcl P_code fixed bin (35); 153 dcl P_str char (*); 154 155 call com_err_$suppress_name (P_code, ME_CHAR); 156 go to EXIT; 157 158 end update_mlist_err; 159 160 end xmail_update_mlist_; 161 162 163 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0745.4 xmail_update_mlist_.pl1 >spec>install>MR12.2-1098>xmail_update_mlist_.pl1 93 1 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.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. EXTENSION_ENAME 000005 constant char(22) initial packed unaligned dcl 83 set ref 100* 104 ME_CHAR 000000 constant char(19) initial packed unaligned dcl 84 set ref 155* ME_ENTRY 000154 automatic entry variable initial dcl 85 set ref 85* 100 100 P_code parameter fixed bin(35,0) dcl 152 set ref 150 155* P_dir parameter char packed unaligned dcl 44 ref 20 120 P_file parameter char packed unaligned dcl 44 ref 20 120 P_str parameter char packed unaligned dcl 153 ref 150 code 000100 automatic fixed bin(35,0) dcl 48 set ref 100* 101 102* 103 132* 141 codeptr builtin function dcl 54 ref 100 100 com_err_$suppress_name 000146 constant entry external dcl 58 ref 155 emacs_ 000150 constant entry external dcl 59 ref 132 ext_dir 000010 internal static char(168) packed unaligned dcl 71 set ref 102* 104 ext_file 000062 internal static char(32) packed unaligned dcl 72 set ref 102* ext_pname 000072 internal static char(168) packed unaligned dcl 73 set ref 104* 132* ext_ptr 000144 internal static pointer initial dcl 74 set ref 98 100* 102* flags 213 based structure level 2 dcl 1-54 hcs_$fs_get_path_name 000152 constant entry external dcl 60 ref 102 hcs_$make_ptr 000154 constant entry external dcl 61 ref 100 ioa_ 000156 constant entry external dcl 62 ref 122 iox_$user_io 000172 external static pointer dcl 78 set ref 132* null builtin function dcl 54 ref 98 132 132 quit 000160 stack reference condition dcl 89 ref 107 remove_menus 213(02) based bit(1) level 3 packed packed unaligned dcl 1-54 ref 126 restore_menu_needed 000101 automatic bit(1) dcl 49 set ref 97* 111 129* 134 138* rtrim builtin function dcl 54 ref 104 104 120 120 seg_pname 000102 automatic char(168) packed unaligned dcl 50 set ref 120* 132* xmail_data based structure level 1 dcl 1-54 xmail_data_ptr 000176 external static pointer initial dcl 1-52 ref 126 xmail_err_$int_prog_err 000174 external static fixed bin(35,0) dcl 79 set ref 101* 103* xmail_redisplay_$menu 000160 constant entry external dcl 63 ref 114 137 xmail_window_manager_$quit_handler 000162 constant entry external dcl 64 ref 109 xmail_window_manager_$reconnect 000164 constant entry external dcl 65 ref 141 xmail_window_manager_$restore_menu 000166 constant entry external dcl 66 ref 113 136 xmail_window_manager_$suppress_menu 000170 constant entry external dcl 67 ref 128 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. xmail_version internal static varying char(10) initial dcl 1-84 NAMES DECLARED BY EXPLICIT CONTEXT. EXIT 000556 constant label dcl 143 set ref 116 156 update_mlist_err 000557 constant entry internal dcl 150 ref 101 103 xmail_update_mlist_ 000067 constant entry external dcl 20 ref 85 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1022 1222 613 1032 Length 1444 613 200 205 206 136 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_update_mlist_ 176 external procedure is an external procedure. on unit on line 107 70 on unit update_mlist_err internal procedure shares stack frame of external procedure xmail_update_mlist_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 ext_dir xmail_update_mlist_ 000062 ext_file xmail_update_mlist_ 000072 ext_pname xmail_update_mlist_ 000144 ext_ptr xmail_update_mlist_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xmail_update_mlist_ 000100 code xmail_update_mlist_ 000101 restore_menu_needed xmail_update_mlist_ 000102 seg_pname xmail_update_mlist_ 000154 ME_ENTRY xmail_update_mlist_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op shorten_stack ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_$suppress_name emacs_ hcs_$fs_get_path_name hcs_$make_ptr ioa_ xmail_redisplay_$menu xmail_window_manager_$quit_handler xmail_window_manager_$reconnect xmail_window_manager_$restore_menu xmail_window_manager_$suppress_menu THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io xmail_data_ptr xmail_err_$int_prog_err LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 20 000063 85 000107 97 000113 98 000114 100 000120 101 000151 102 000173 103 000225 104 000247 105 000322 107 000323 109 000337 111 000350 113 000353 114 000360 116 000365 118 000370 120 000371 122 000450 126 000465 128 000473 129 000477 132 000501 134 000532 136 000534 137 000541 138 000546 141 000547 143 000556 150 000557 155 000570 156 000606 ----------------------------------------------------------- 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