COMPILATION LISTING OF SEGMENT xmail_dyn_menu_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0749.2 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-01-07,LJAdams), approve(86-04-15,MCR7358), 15* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 16* Added screen headers for General Help Topics screen. 17* END HISTORY COMMENTS */ 18 19 20 xmail_dyn_menu_: proc (); 21 22 /* Author unknown. 23* 24* 83-07-05 DJ Schimke: Deleted dcl for unreferenced ME_CHAR. 25* 26* 83-10-11 DJ Schimke: Added free entry point to free storage used by 27* the dynamic menus. This entry should be called by cleanup procedures 28* wherever dynamic menus are created. 29**/ 30 /* Parameter */ 31 32 dcl P_areap ptr; 33 dcl P_choice fixed bin; 34 dcl P_code fixed bin (35); 35 dcl P_dyn_menup ptr; 36 dcl P_dyn_menu_reqp ptr; 37 dcl P_fkey bit (1) aligned; 38 dcl P_index fixed bin; 39 dcl P_names (*) char (*) aligned; 40 dcl P_trailer char (*); 41 42 /* Automatic */ 43 44 dcl area_ptr ptr; 45 dcl dyn_menup ptr; 46 dcl free_slots_per_menu fixed bin; 47 dcl last_menu_num fixed bin; 48 dcl menu_no fixed bin; 49 dcl n_slots_per_menu fixed bin; 50 dcl n_menus fixed bin; 51 dcl slots_avail fixed bin; 52 dcl slots_needed fixed bin; 53 dcl trailer_included bit (1) aligned; 54 55 /* Based */ 56 57 dcl based_area area based (area_ptr); 58 59 dcl 1 dyn_menu aligned based (dyn_menup), 60 2 nth_menu fixed bin, 61 2 menu_array (0:n_menus - 1 refer (dyn_menu.nth_menu)), 62 3 location ptr, 63 3 first_option fixed bin, 64 3 option_count fixed bin; 65 66 /* Entries */ 67 68 dcl ioa_$rsnnl entry () options (variable); 69 70 /* Static */ 71 72 dcl OPTION_CODES (61) char (1) unal static options (constant) init 73 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 74 "a", "b", "c", "d", "e", "f", "g", "h", "i", 75 "j", "k", "l", "m", "n", "o", "p", "q", "r", 76 "s", "t", "u", "v", "w", "x", "y", "z", 77 "A", "B", "C", "D", "E", "F", "G", "H", "I", 78 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 79 "S", "T", "U", "V", "W", "X", "Y", "Z"); 80 81 /* Builtin */ 82 83 dcl (addr, divide, hbound, null, rtrim) builtin; 84 85 86 create: entry (P_names, P_dyn_menup, P_dyn_menu_reqp, P_areap, P_code); 87 88 trailer_included = "0"b; 89 go to MAIN; 90 91 create_w_trailer: entry (P_names, P_trailer, P_dyn_menup, P_dyn_menu_reqp, P_areap, P_code); 92 93 trailer_included = "1"b; 94 95 MAIN: 96 97 P_dyn_menup = null; 98 dyn_menu_reqp = P_dyn_menu_reqp; 99 P_code = 0; 100 101 area_ptr = P_areap; 102 103 slots_avail = 2 * (xmail_windows.bottom.height - 1); /* 2 columns, 1 header, no trailers */ 104 slots_needed = hbound (P_names, 1); 105 n_slots_per_menu = slots_avail; 106 if ^trailer_included 107 then free_slots_per_menu = slots_avail; 108 else free_slots_per_menu = slots_avail - 1; 109 n_menus = divide (slots_needed + free_slots_per_menu - 1, free_slots_per_menu, 17, 0); 110 111 allocate dyn_menu in (based_area); 112 113 begin; 114 115 dcl choice_array (slots_avail) char (32) varying; 116 dcl done_with_names bit (1) aligned; 117 dcl name_count fixed bin; 118 dcl header (1) char (xmail_windows.bottom.width) varying; 119 dcl header2 (1) char (xmail_windows.bottom.width) varying; 120 dcl option_no fixed bin; 121 dcl trailer (1) char (xmail_windows.bottom.width) varying; 122 123 dcl 1 actual_menu_format aligned like menu_format; 124 dcl 1 actual_menu_requirements aligned like menu_requirements; 125 126 dcl choices (option_no) char (32) varying based (addr (choice_array)); 127 128 actual_menu_format.version = menu_format_version_1; 129 actual_menu_format.max_width = xmail_windows.bottom.width; 130 actual_menu_format.max_height = xmail_windows.bottom.height; 131 actual_menu_format.n_columns = 2; 132 actual_menu_format.center_headers = "1"b; 133 actual_menu_format.center_trailers = "1"b; 134 actual_menu_format.pad = "0"b; 135 actual_menu_format.pad_char = "-"; 136 137 actual_menu_requirements.version = menu_requirements_version_1; 138 139 trailer = ""; 140 141 name_count = 0; 142 done_with_names = "0"b; 143 144 do menu_no = 0 to dyn_menu.nth_menu; 145 146 do option_no = 1 to n_slots_per_menu while (^done_with_names); 147 148 if option_no = n_slots_per_menu & trailer_included 149 then choices (option_no) = P_trailer; 150 else do; 151 choices (option_no) = rtrim (P_names (name_count + 1)); 152 name_count = name_count + 1; 153 end; 154 if name_count = hbound (P_names, 1) 155 then do; 156 if trailer_included 157 then do; 158 option_no = option_no + 1; 159 choices (option_no) = P_trailer; 160 end; 161 done_with_names = "1"b; 162 end; 163 end; 164 165 option_no = option_no - 1; 166 dyn_menu.menu_array (menu_no).option_count = option_no; 167 dyn_menu.menu_array (menu_no).first_option = menu_no * n_slots_per_menu + 1; 168 169 if xmail_data.general_help then do; 170 header2 = " General Help Topics "; 171 172 173 call menu_$create (choices, header2, trailer, addr (actual_menu_format), OPTION_CODES, area_ptr, addr (actual_menu_requirements), dyn_menu.menu_array (menu_no).location, P_code); 174 if P_code ^= 0 then return; 175 end; 176 else do; 177 call ioa_$rsnnl ("Choices (menu ^d of ^d)", header (1), (0), menu_no + 1, n_menus); 178 actual_menu_format.pad_char = " "; 179 call menu_$create (choices, header, trailer, addr (actual_menu_format), OPTION_CODES, area_ptr, addr (actual_menu_requirements), dyn_menu.menu_array (menu_no).location, P_code); 180 if P_code ^= 0 then return; 181 end; 182 end; /* do menu_no = ... */ 183 184 end; /* begin */ 185 186 if dyn_menu_reqp ^= null 187 then do; 188 dyn_menu_req.options_per_menu = slots_avail; 189 dyn_menu_req.options_last_menu = dyn_menu.menu_array (n_menus - 1).option_count; 190 dyn_menu_req.n_menus = n_menus; 191 end; 192 193 P_dyn_menup = dyn_menup; 194 195 return; /* create */ 196 197 display: entry (P_dyn_menup, P_index, P_code); 198 199 P_code = 0; 200 dyn_menup = P_dyn_menup; 201 202 call menu_$display (xmail_windows.bottom.iocb, dyn_menu.menu_array (P_index).location, P_code); 203 204 return; /* display */ 205 206 free: entry (P_dyn_menup, P_code); 207 208 P_code = 0; 209 dyn_menup = P_dyn_menup; 210 211 do menu_no = 0 to dyn_menu.nth_menu while (P_code = 0); 212 call menu_$destroy (dyn_menu.menu_array (menu_no).location, P_code); 213 end; 214 return; /* free */ 215 216 get_choice: entry (P_dyn_menup, P_index, P_choice, P_fkey, P_code); 217 218 P_code = 0; 219 dyn_menup = P_dyn_menup; 220 221 call menu_$get_choice (xmail_windows.bottom.iocb, dyn_menu.menu_array (P_index).location, xmail_data.function_key_data_ptr, P_fkey, P_choice, P_code); 222 223 return; /* get_choice */ 224 225 226 info: entry (P_dyn_menup, P_dyn_menu_reqp, P_code); 227 228 P_code = 0; 229 dyn_menu_reqp = P_dyn_menu_reqp; 230 dyn_menup = P_dyn_menup; 231 last_menu_num = dyn_menu.nth_menu; 232 233 dyn_menu_req.options_per_menu = dyn_menu.menu_array (0).option_count; 234 dyn_menu_req.options_last_menu = dyn_menu.menu_array (last_menu_num).option_count; 235 dyn_menu_req.n_menus = last_menu_num + 1; 236 237 return; /* info */ 238 239 1 1 /* Begin include file: xmail_windows.incl.pl1 */ 1 2 /* Created 6/24/81 by Paul Kyzivat */ 1 3 /* Mofified 6/20/84 by DJ Schimke to add the mm_status window */ 1 4 1 5 dcl 1 xmail_windows aligned external static, 1 6 2 initial_position fixed bin, 1 7 2 min_lines_needed fixed bin, 1 8 2 (status, mm_status, menu, bottom) aligned like xmail_window_info_format; 1 9 1 10 dcl 1 xmail_window_info_format aligned based, 1 11 2 iocb ptr, 1 12 2 position aligned like window_position_info; 1 13 2 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 2 2 /* format: style3 */ 2 3 2 4 /* Modified 26 January 1982 by William York to add the set_more_handler 2 5* and reset_more_handler control orders. */ 2 6 /* Modified October 1982 by WMY to add set and get_token_characters, 2 7* set and get_more_prompt. */ 2 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 2 9* structure. */ 2 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 2 11* partial screen width windows. */ 2 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 2 13* This should be removed when window_info.incl.pl1 is created. */ 2 14 /* Modified 29 February 1984 by Barmar to add version 1 2 15* get_editor_key_bindings_info. */ 2 16 /* Modified 1 March 1984 by Barmar to add version 1 2 17* set_editor_key_bindings_info. */ 2 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 2 19* line_editor_key_bindings_info, which includes the name, description, and 2 20* info path */ 2 21 2 22 /* structure for the set_window_info and get_window_info 2 23* control orders. */ 2 24 2 25 dcl 1 window_position_info 2 26 based (window_position_info_ptr), 2 27 2 version fixed bin, 2 28 2 origin, 2 29 3 column fixed bin, 2 30 3 line fixed bin, 2 31 2 extent, 2 32 3 width fixed bin, 2 33 3 height fixed bin; 2 34 2 35 dcl (window_position_info_version, window_position_info_version_1) 2 36 fixed bin internal static init (1) options (constant); 2 37 dcl window_position_info_ptr 2 38 pointer; 2 39 2 40 /* structure for the set_window_status and get_window_status 2 41* control orders */ 2 42 2 43 declare window_status_info_ptr 2 44 pointer; 2 45 declare 1 window_status_info 2 46 aligned based (window_status_info_ptr), 2 47 2 version fixed bin, 2 48 2 status_string bit (36) aligned; /* string (window_status) */ 2 49 /* see window_status.incl.pl1 for the contents of this string */ 2 50 2 51 2 52 declare (window_status_version, window_status_version_1) 2 53 fixed bin internal static init (1) options (constant); 2 54 2 55 /* info structure for the set_more_responses and get_more_responses control 2 56* orders */ 2 57 2 58 2 59 dcl 1 more_responses_info 2 60 aligned based (more_responses_info_ptr), 2 61 2 version fixed bin, 2 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 2 63 2 n_noes fixed bin, 2 64 2 yeses char (32) unaligned, 2 65 2 noes char (32) unaligned; 2 66 2 67 dcl (more_responses_info_version_1, more_responses_version) 2 68 fixed bin internal static init (1) options (constant); 2 69 dcl more_responses_info_ptr 2 70 pointer; 2 71 2 72 /* structure for the set_break_table and get_break_table 2 73* control orders */ 2 74 2 75 declare break_table_ptr pointer; 2 76 declare 1 break_table_info aligned based (break_table_ptr), 2 77 2 version fixed bin, 2 78 2 breaks (0:127) bit (1) unaligned; 2 79 2 80 declare (break_table_info_version, break_table_info_version_1) 2 81 fixed bin init (1) internal static options (constant); 2 82 2 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 2 84 2 version fixed bin, 2 85 2 flags unaligned, 2 86 3 old_handler_valid 2 87 bit(1), 2 88 3 pad bit(35), 2 89 2 more_handler entry (pointer, bit(1) aligned), 2 90 2 old_more_handler entry (pointer, bit(1) aligned); 2 91 2 92 declare more_handler_info_ptr pointer; 2 93 2 94 declare (more_handler_info_version, more_handler_info_version_3) 2 95 fixed bin internal static options (constant) init (3); 2 96 2 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 2 98 2 version char(8), 2 99 2 token_character_count 2 100 fixed bin, 2 101 2 token_characters 2 102 char (128) unaligned; 2 103 2 104 declare token_characters_info_ptr pointer; 2 105 2 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 2 107 2 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 2 109 2 version char(8), 2 110 2 more_prompt char(80); 2 111 2 112 declare more_prompt_info_ptr pointer; 2 113 2 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 2 115 2 116 /* Line editor stuff ... */ 2 117 2 118 dcl line_editor_key_binding_info_ptr 2 119 pointer; 2 120 2 121 dcl line_editor_binding_count 2 122 fixed bin; 2 123 dcl line_editor_longest_sequence 2 124 fixed bin; 2 125 /* For each binding, action defines what to do for that sequence. Constants 2 126* are defined in window_editor_values.incl.pl1. Only if action is set to 2 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 2 128 2 129 dcl 1 line_editor_key_binding_info 2 130 aligned based (line_editor_key_binding_info_ptr), 2 131 2 version char(8), 2 132 2 binding_count fixed bin, 2 133 2 longest_sequence fixed bin, 2 134 2 bindings (line_editor_binding_count refer 2 135 (line_editor_key_binding_info.binding_count)), 2 136 3 sequence char(line_editor_longest_sequence refer 2 137 (line_editor_key_binding_info.longest_sequence)) varying, 2 138 3 action fixed bin, 2 139 3 numarg_action fixed binary, 2 140 3 editor_routine entry (pointer, fixed bin(35)), 2 141 3 name char (64) varying unaligned, 2 142 3 description char (256) varying unaligned, 2 143 3 info_path unaligned, 2 144 4 info_dir char (168), 2 145 4 info_entry char (32); 2 146 2 147 2 148 dcl line_editor_key_binding_info_version_3 2 149 char(8) static options (constant) init ("lekbi003"); 2 150 2 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 2 152 2 version char (8), 2 153 2 flags, 2 154 3 entire_state bit (1) unaligned, 2 155 3 mbz bit (35) unaligned, 2 156 2 key_binding_info_ptr ptr, 2 157 2 entire_state_ptr ptr; 2 158 2 159 dcl get_editor_key_bindings_info_ptr ptr; 2 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 2 161 2 162 dcl 1 set_editor_key_bindings_info aligned 2 163 based (set_editor_key_bindings_info_ptr), 2 164 2 version char (8), 2 165 2 flags, 2 166 3 replace bit (1) unaligned, 2 167 3 update bit (1) unaligned, 2 168 3 mbz bit (34) unaligned, 2 169 2 key_binding_info_ptr ptr; 2 170 2 171 dcl set_editor_key_bindings_info_ptr ptr; 2 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 2 173 2 174 /* This should be moved to window_info.incl.pl1 when that include file is 2 175* created. JR 2/1/84 */ 2 176 2 177 dcl 1 window_edit_line_info 2 178 based (window_edit_line_info_ptr), 2 179 2 version char (8), 2 180 2 line_ptr ptr, 2 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 2 182 2 183 dcl window_edit_line_info_version_1 2 184 char (8) static options (constant) init ("wedl0001"); 2 185 2 186 dcl window_edit_line_info_ptr 2 187 ptr; 2 188 2 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 1 14 1 15 1 16 /* End include file: xmail_windows.incl.pl1 */ 240 241 3 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 3 2* declarations for the menu_ subroutines MTB 493 3 3* James R. Davis 26 Jan 81 to 20 Februrary 81 3 4**/ 3 5 3 6 /* format: off */ 3 7 3 8 dcl menu_$create entry ( 3 9 (*) char (*) varying, /* input: choices */ 3 10 (*) char (*) varying, /* input: headers */ 3 11 (*) char (*) varying, /* input: trailers */ 3 12 pointer, /* input: to format info */ 3 13 (*) char (1) unal, /* input: keys to use */ 3 14 pointer, /* input: to area */ 3 15 pointer, /* input: to needs str. */ 3 16 pointer, /* to menu: output */ 3 17 fixed bin (35) /* code */ 3 18 ); 3 19 3 20 dcl menu_$display entry ( 3 21 pointer, /* window */ 3 22 pointer, /* menu */ 3 23 fixed bin (35) /* code */ 3 24 ); 3 25 3 26 dcl menu_$get_choice entry ( 3 27 pointer, /* window */ 3 28 pointer, /* menu */ 3 29 pointer, /* to function key info */ 3 30 bit (1) aligned, /* function key hi: output */ 3 31 fixed bin, /* output: selection number */ 3 32 fixed bin (35) /* output: code */ 3 33 ); 3 34 3 35 dcl menu_$describe entry ( 3 36 pointer, /* menu */ 3 37 pointer, /* needs */ 3 38 fixed bin (35) /* code */ 3 39 ); 3 40 3 41 dcl menu_$destroy entry ( 3 42 pointer, /* menu */ 3 43 fixed bin (35) /* code */ 3 44 ); 3 45 3 46 dcl menu_$store entry ( 3 47 character (*), 3 48 character (*), 3 49 character (*), 3 50 bit (1) aligned, 3 51 pointer, 3 52 fixed bin (35)); 3 53 3 54 dcl menu_$retrieve entry ( 3 55 character (*), 3 56 character (*), 3 57 character (*), 3 58 pointer, 3 59 pointer, 3 60 fixed bin (35)); 3 61 dcl menu_$delete entry ( 3 62 character (*), 3 63 character (*), 3 64 character (*), 3 65 fixed binary (35)); 3 66 3 67 dcl menu_$list entry ( 3 68 character (*), 3 69 character (*), 3 70 character (*), 3 71 pointer, 3 72 fixed bin, 3 73 pointer, 3 74 fixed bin (35)); 3 75 3 76 dcl 1 menu_format aligned based (menu_format_ptr), 3 77 2 version fixed bin, 3 78 2 constraints, 3 79 3 max_width fixed bin, 3 80 3 max_height fixed bin, 3 81 2 n_columns fixed bin, 3 82 2 flags, 3 83 3 center_headers bit (1) unal, 3 84 3 center_trailers bit (1) unal, 3 85 3 pad bit (34) unal, 3 86 2 pad_char char (1); 3 87 3 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 3 89 2 version fixed bin, 3 90 2 lines_needed fixed bin, 3 91 2 width_needed fixed bin, 3 92 2 n_options fixed bin; 3 93 3 94 dcl menu_format_ptr pointer; 3 95 dcl menu_requirements_ptr pointer; 3 96 3 97 dcl (menu_format_version_1, menu_requirements_version_1) 3 98 fixed bin internal static init (1) options (constant); 3 99 3 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 3 101 options (constant) init 3 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 3 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 3 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 3 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 3 106 3 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 242 243 4 1 dcl 1 dyn_menu_req aligned based(dyn_menu_reqp), 4 2 2 options_per_menu fixed bin, 4 3 2 options_last_menu fixed bin, 4 4 2 n_menus fixed bin; 4 5 4 6 dcl dyn_menu_reqp ptr; 245 5 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 5 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 5 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 5 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 10* Adding switch to indicate request for menu display came from general help. 5 11* This is so general help menu will be displayed in top screen. 5 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 5 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 14* Add switch to indicate whether or not it is permissible to process mail 5 15* in other users' mailboxes (foreign_mailbox). 5 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 5 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 18* Add bit to indicate whether or not this is a true cleanup condition. 5 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 5 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 21* Rearrange to group all the bit flags together in one word with a pad. 5 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 5 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 5 25* you keep around a pointer to a structure which no longer exists. 5 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 5 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 5 28* Add a field to indicate whether or not we should process interactive msgs. 5 29* Increment version to 4.1 so default value will get set. 5 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 5 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 5 32* Add a field to indicate whether or not we're processing a reply so that we 5 33* will be able to rebuild the screens properly after a disconnect occurs. 5 34* Error_list #114. 5 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 5 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 5 37* Add a bit to indicate whether or not the error segment had to be created 5 38* in the pdir (because we didn't have sma access to the mlsys_dir). 5 39* END HISTORY COMMENTS */ 5 40 5 41 5 42 /* Written 5/13/81 by Paul H. Kyzivat */ 5 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 5 44* and to add n_fkeys_used */ 5 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 5 46* varying string. */ 5 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 5 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 5 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 5 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 5 51 5 52 dcl xmail_data_ptr external static ptr init (null); 5 53 5 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 5 55 2 mail_dir char (168) varying, 5 56 2 first_label label, 5 57 2 quit_label label, 5 58 2 value_seg_pathname char (168) varying, 5 59 2 moved_user_io ptr, 5 60 2 normal_usage char (80) unal, 5 61 2 function_key_info, 5 62 3 function_key_data_ptr ptr, 5 63 3 n_fkeys_used fixed bin, 5 64 2 actee, 5 65 3 person char(32) varying, 5 66 3 project char(32) varying, 5 67 2 flags aligned, 5 68 3 mail_in_incoming bit (1) unal, 5 69 3 lists_as_menus bit (1) unal, /* personalization */ 5 70 3 remove_menus bit (1) unal, /* personalization */ 5 71 3 confirm_print bit (1) unal, /* personalization */ 5 72 3 multics_mode bit (1) unal, /* personalization */ 5 73 3 interactive_msgs bit (1) unal, /* personalization */ 5 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 5 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 5 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 5 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 5 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 5 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 5 80 3 pad bit (24) unal; 5 81 5 82 5 83 5 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 5 85 5 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 246 247 248 end xmail_dyn_menu_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0749.2 xmail_dyn_menu_.pl1 >spec>install>MR12.2-1098>xmail_dyn_menu_.pl1 240 1 12/02/84 1132.9 xmail_windows.incl.pl1 >ldd>include>xmail_windows.incl.pl1 1-14 2 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 242 3 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 244 4 06/08/82 1329.4 xmail_dyn_menu_dcls.incl.pl1 >ldd>include>xmail_dyn_menu_dcls.incl.pl1 246 5 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. OPTION_CODES 000000 constant char(1) initial array packed unaligned dcl 72 set ref 173* 179* P_areap parameter pointer dcl 32 ref 86 91 101 P_choice parameter fixed bin(17,0) dcl 33 set ref 216 221* P_code parameter fixed bin(35,0) dcl 34 set ref 86 91 99* 173* 174 179* 180 197 199* 202* 206 208* 211 212* 216 218* 221* 226 228* P_dyn_menu_reqp parameter pointer dcl 36 ref 86 91 98 226 229 P_dyn_menup parameter pointer dcl 35 set ref 86 91 95* 193* 197 200 206 209 216 219 226 230 P_fkey parameter bit(1) dcl 37 set ref 216 221* P_index parameter fixed bin(17,0) dcl 38 ref 197 202 216 221 P_names parameter char array dcl 39 ref 86 91 104 151 154 P_trailer parameter char packed unaligned dcl 40 ref 91 148 159 actual_menu_format 000103 automatic structure level 1 dcl 123 set ref 173 173 179 179 actual_menu_requirements 000111 automatic structure level 1 dcl 124 set ref 173 173 179 179 addr builtin function dcl 83 ref 148 151 159 173 173 173 173 173 179 179 179 179 179 area_ptr 000100 automatic pointer dcl 44 set ref 101* 111 173* 179* based_area based area(1024) dcl 57 ref 111 bottom 32 000012 external static structure level 2 dcl 1-5 center_headers 4 000103 automatic bit(1) level 3 packed packed unaligned dcl 123 set ref 132* center_trailers 4(01) 000103 automatic bit(1) level 3 packed packed unaligned dcl 123 set ref 133* choice_array 000100 automatic varying char(32) array dcl 115 set ref 148 151 159 173 179 choices based varying char(32) array dcl 126 set ref 148* 151* 159* 173* 179* constraints 1 000103 automatic structure level 2 dcl 123 divide builtin function dcl 83 ref 109 done_with_names 000100 automatic bit(1) dcl 116 set ref 142* 146 161* dyn_menu based structure level 1 dcl 59 set ref 111 dyn_menu_req based structure level 1 dcl 4-1 dyn_menu_reqp 000114 automatic pointer dcl 4-6 set ref 98* 186 188 189 190 229* 233 234 235 dyn_menup 000102 automatic pointer dcl 45 set ref 111* 144 166 167 173 179 189 193 200* 202 209* 211 212 219* 221 230* 231 233 234 extent 37 000012 external static structure level 4 dcl 1-5 first_option 4 based fixed bin(17,0) array level 3 dcl 59 set ref 167* flags 4 000103 automatic structure level 2 in structure "actual_menu_format" dcl 123 in begin block on line 113 flags 213 based structure level 2 in structure "xmail_data" dcl 5-54 in procedure "xmail_dyn_menu_" free_slots_per_menu 000104 automatic fixed bin(17,0) dcl 46 set ref 106* 108* 109 109 function_key_data_ptr 166 based pointer level 3 dcl 5-54 set ref 221* function_key_info 166 based structure level 2 dcl 5-54 general_help 213(07) based bit(1) level 3 packed packed unaligned dcl 5-54 ref 169 hbound builtin function dcl 83 ref 104 154 header 000102 automatic varying char array dcl 118 set ref 177* 179* header2 000102 automatic varying char array dcl 119 set ref 170* 173* height 40 000012 external static fixed bin(17,0) level 5 dcl 1-5 ref 103 130 ioa_$rsnnl 000010 constant entry external dcl 68 ref 177 iocb 32 000012 external static pointer level 3 dcl 1-5 set ref 202* 221* last_menu_num 000105 automatic fixed bin(17,0) dcl 47 set ref 231* 234 235 location 2 based pointer array level 3 dcl 59 set ref 173* 179* 202* 212* 221* max_height 2 000103 automatic fixed bin(17,0) level 3 dcl 123 set ref 130* max_width 1 000103 automatic fixed bin(17,0) level 3 dcl 123 set ref 129* menu_$create 000014 constant entry external dcl 3-8 ref 173 179 menu_$destroy 000022 constant entry external dcl 3-41 ref 212 menu_$display 000016 constant entry external dcl 3-20 ref 202 menu_$get_choice 000020 constant entry external dcl 3-26 ref 221 menu_array 2 based structure array level 2 dcl 59 menu_format based structure level 1 dcl 3-76 menu_format_version_1 constant fixed bin(17,0) initial dcl 3-97 ref 128 menu_no 000106 automatic fixed bin(17,0) dcl 48 set ref 144* 166 167 167 173 177 179* 211* 212* menu_requirements based structure level 1 dcl 3-88 menu_requirements_version_1 constant fixed bin(17,0) initial dcl 3-97 ref 137 n_columns 3 000103 automatic fixed bin(17,0) level 2 dcl 123 set ref 131* n_menus 2 based fixed bin(17,0) level 2 in structure "dyn_menu_req" dcl 4-1 in procedure "xmail_dyn_menu_" set ref 190* 235* n_menus 000110 automatic fixed bin(17,0) dcl 50 in procedure "xmail_dyn_menu_" set ref 109* 111 111 177* 189 190 n_slots_per_menu 000107 automatic fixed bin(17,0) dcl 49 set ref 105* 146 148 167 name_count 000101 automatic fixed bin(17,0) dcl 117 set ref 141* 151 152* 152 154 nth_menu based fixed bin(17,0) level 2 dcl 59 set ref 111* 144 211 231 null builtin function dcl 83 ref 95 186 option_count 5 based fixed bin(17,0) array level 3 dcl 59 set ref 166* 189 233 234 option_no 000102 automatic fixed bin(17,0) dcl 120 set ref 146* 148 148 151 158* 158 159* 165* 165 166 173 179 options_last_menu 1 based fixed bin(17,0) level 2 dcl 4-1 set ref 189* 234* options_per_menu based fixed bin(17,0) level 2 dcl 4-1 set ref 188* 233* pad 4(02) 000103 automatic bit(34) level 3 packed packed unaligned dcl 123 set ref 134* pad_char 5 000103 automatic char(1) level 2 dcl 123 set ref 135* 178* position 34 000012 external static structure level 3 dcl 1-5 rtrim builtin function dcl 83 ref 151 slots_avail 000111 automatic fixed bin(17,0) dcl 51 set ref 103* 105 106 108 115 188 slots_needed 000112 automatic fixed bin(17,0) dcl 52 set ref 104* 109 trailer 000103 automatic varying char array dcl 121 set ref 139* 173* 179* trailer_included 000113 automatic bit(1) dcl 53 set ref 88* 93* 106 148 156 version 000103 automatic fixed bin(17,0) level 2 in structure "actual_menu_format" dcl 123 in begin block on line 113 set ref 128* version 000111 automatic fixed bin(17,0) level 2 in structure "actual_menu_requirements" dcl 124 in begin block on line 113 set ref 137* width 37 000012 external static fixed bin(17,0) level 5 dcl 1-5 ref 118 119 121 129 window_position_info based structure level 1 unaligned dcl 2-25 xmail_data based structure level 1 dcl 5-54 xmail_data_ptr 000024 external static pointer initial dcl 5-52 ref 169 221 xmail_window_info_format based structure level 1 dcl 1-10 xmail_windows 000012 external static structure level 1 dcl 1-5 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. MENU_OPTION_KEYS internal static char(1) initial array packed unaligned dcl 3-100 break_table_info based structure level 1 dcl 2-76 break_table_info_version internal static fixed bin(17,0) initial dcl 2-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 2-80 break_table_ptr automatic pointer dcl 2-75 get_editor_key_bindings_info based structure level 1 dcl 2-151 get_editor_key_bindings_info_ptr automatic pointer dcl 2-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 2-160 line_editor_binding_count automatic fixed bin(17,0) dcl 2-121 line_editor_key_binding_info based structure level 1 dcl 2-129 line_editor_key_binding_info_ptr automatic pointer dcl 2-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 2-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 2-123 menu_$delete 000000 constant entry external dcl 3-61 menu_$describe 000000 constant entry external dcl 3-35 menu_$list 000000 constant entry external dcl 3-67 menu_$retrieve 000000 constant entry external dcl 3-54 menu_$store 000000 constant entry external dcl 3-46 menu_format_ptr automatic pointer dcl 3-94 menu_requirements_ptr automatic pointer dcl 3-95 more_handler_info based structure level 1 dcl 2-83 more_handler_info_ptr automatic pointer dcl 2-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 2-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 2-94 more_prompt_info based structure level 1 dcl 2-108 more_prompt_info_ptr automatic pointer dcl 2-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 2-114 more_responses_info based structure level 1 dcl 2-59 more_responses_info_ptr automatic pointer dcl 2-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 2-67 more_responses_version internal static fixed bin(17,0) initial dcl 2-67 set_editor_key_bindings_info based structure level 1 dcl 2-162 set_editor_key_bindings_info_ptr automatic pointer dcl 2-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 2-172 token_characters_info based structure level 1 dcl 2-97 token_characters_info_ptr automatic pointer dcl 2-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 2-106 window_edit_line_info based structure level 1 unaligned dcl 2-177 window_edit_line_info_ptr automatic pointer dcl 2-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 2-183 window_position_info_ptr automatic pointer dcl 2-37 window_position_info_version internal static fixed bin(17,0) initial dcl 2-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 2-35 window_status_info based structure level 1 dcl 2-45 window_status_info_ptr automatic pointer dcl 2-43 window_status_version internal static fixed bin(17,0) initial dcl 2-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 2-52 xmail_version internal static varying char(10) initial dcl 5-84 NAMES DECLARED BY EXPLICIT CONTEXT. MAIN 000165 constant label dcl 95 ref 89 create 000076 constant entry external dcl 86 create_w_trailer 000132 constant entry external dcl 91 display 001131 constant entry external dcl 197 free 001173 constant entry external dcl 206 get_choice 001245 constant entry external dcl 216 info 001317 constant entry external dcl 226 xmail_dyn_menu_ 000063 constant entry external dcl 20 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1520 1546 1356 1530 Length 2052 1356 26 270 142 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_dyn_menu_ 112 external procedure is an external procedure. begin block on line 113 186 begin block uses auto adjustable storage. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 113 000100 choice_array begin block on line 113 000100 done_with_names begin block on line 113 000101 name_count begin block on line 113 000102 header begin block on line 113 000102 header2 begin block on line 113 000102 option_no begin block on line 113 000103 trailer begin block on line 113 000103 actual_menu_format begin block on line 113 000111 actual_menu_requirements begin block on line 113 xmail_dyn_menu_ 000100 area_ptr xmail_dyn_menu_ 000102 dyn_menup xmail_dyn_menu_ 000104 free_slots_per_menu xmail_dyn_menu_ 000105 last_menu_num xmail_dyn_menu_ 000106 menu_no xmail_dyn_menu_ 000107 n_slots_per_menu xmail_dyn_menu_ 000110 n_menus xmail_dyn_menu_ 000111 slots_avail xmail_dyn_menu_ 000112 slots_needed xmail_dyn_menu_ 000113 trailer_included xmail_dyn_menu_ 000114 dyn_menu_reqp xmail_dyn_menu_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. enter_begin_block leave_begin_block call_ext_out_desc call_ext_out begin_return_mac return_mac alloc_auto_adj ext_entry ext_entry_desc op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_$rsnnl menu_$create menu_$destroy menu_$display menu_$get_choice THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. xmail_data_ptr xmail_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 20 000062 86 000070 88 000122 89 000123 91 000124 93 000163 95 000165 98 000167 99 000172 101 000173 103 000176 104 000204 105 000210 106 000212 108 000216 109 000220 111 000224 113 000236 115 000241 118 000250 119 000263 121 000274 173 000305 177 000325 179 000331 128 000351 129 000353 130 000355 131 000357 132 000361 133 000363 134 000365 135 000367 137 000371 139 000373 141 000406 142 000407 144 000410 146 000420 148 000431 151 000455 152 000525 154 000526 156 000533 158 000535 159 000536 161 000554 163 000556 165 000560 166 000562 167 000571 169 000577 170 000606 173 000632 174 000725 175 000732 177 000733 178 000776 179 001000 180 001073 182 001100 184 001103 186 001104 188 001110 189 001112 190 001120 193 001122 195 001124 197 001125 199 001143 200 001144 202 001147 204 001166 206 001167 208 001205 209 001206 211 001211 212 001221 213 001235 214 001237 216 001240 218 001257 219 001260 221 001263 223 001312 226 001313 228 001333 229 001334 230 001337 231 001342 233 001344 234 001346 235 001352 237 001355 ----------------------------------------------------------- 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