COMPILATION LISTING OF SEGMENT xmail_sw_ 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.6 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 /****^ HISTORY COMMENTS: 13* 1) change(86-02-27,Blair), approve(86-02-27,MCR7358), 14* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 15* 85-03-08 JGBacks: Deleted two unused entrypoints $update_actee and 16* $update_date, plus variables, external entries, and the clock builtin 17* used by them. Format statement was also removed because it was wrong. 18* END HISTORY COMMENTS */ 19 20 21 xmail_sw_: 22 initialize: proc (); 23 24 /* BEGIN DESCRIPTION 25*history: 26* 27* Written before June 81 by S. Krupp 28* 29* Modified June 81 by P. Kyzivat during extensive changes to xmail 30* 31* 83-07-27 Dave Schimke: Delete dcls for unreferenced items: code, 32* convert_date_to_binary_, timer_manager_$alarm_call, and 33* timer_manager_$reset_alarm_call. 34* 35* 83-10-15 DJ Schimke: Cleanup the code to satisfy audit. 36* 37*END DESCRIPTION 38**/ 39 40 /* ENTRIES */ 41 42 dcl window_display_ entry (ptr, (*) char (*), fixed bin (35)); 43 dcl xmail_error_$no_print entry () options (variable); 44 45 /* BASED */ 46 47 dcl display_window (xmail_windows.status.height) char (window_image_width) based (window_image_ptr); 48 dcl window_image (3) char (window_image_width) based (window_image_ptr); 49 50 /* BUILTINS */ 51 52 dcl (addr, copy, divide, length, ltrim, min, string, rtrim) builtin; 53 54 /* CONSTANTS */ 55 56 dcl LOG char (1) int static options (constant) init ("l"); 57 dcl NAME char (9) int static options (constant) init ("xmail_sw_"); 58 59 60 /* INTERNAL STATIC */ 61 62 dcl file_field_len fixed bin int static; 63 dcl file_info_field_len fixed bin int static; 64 dcl pos_field_len fixed bin int static; 65 dcl usage_field_len fixed bin int static; 66 dcl window_image_ptr ptr int static; 67 dcl window_image_width fixed bin int static; 68 dcl static_window_image (3) char (132) unal static; 69 70 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 72 /* */ 73 /* This entry is called only once per xmail invocation to initialize the status window. */ 74 /* It sets all the internal static variables used in the other entry points. */ 75 /* */ 76 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 77 78 79 static_window_image (*) = ""; 80 window_image_ptr = addr (static_window_image); 81 window_image_width = min (length (static_window_image (1)), 82 xmail_windows.status.width); 83 string (window_image) = ""; 84 85 file_field_len, file_info_field_len = 0; 86 usage_field_len = window_image_width - (file_field_len + file_info_field_len); 87 pos_field_len = window_image_width; 88 89 return; 90 91 update_file: entry (str); 92 93 dcl str char (*); 94 95 if str ^= "" then file_field_len = 20; 96 97 call UPDATE (1, 1, file_field_len, str); /* file name goes on line 1, col 1 */ 98 99 if str = "" then file_field_len = 0; 100 101 return; 102 103 update_file_info: entry (str); 104 105 if str ^= "" then file_info_field_len = 20; 106 107 begin; 108 109 dcl field char (file_info_field_len); 110 dcl trimmed_value char (length (str)) var; 111 dcl trimmed_len fixed bin; 112 dcl starting_col fixed bin; 113 114 starting_col = window_image_width - file_info_field_len + 1; 115 116 trimmed_value = ltrim (rtrim (str)); 117 trimmed_len = length (trimmed_value); 118 119 if trimmed_len < file_info_field_len 120 then do; 121 call RIGHT_JUSTIFY ((trimmed_value), field); 122 call UPDATE (1, starting_col, file_info_field_len, field); 123 end; 124 else call UPDATE (1, starting_col, file_info_field_len, str); 125 126 if str = "" then file_info_field_len = 0; 127 128 return; 129 130 end; /* begin */ 131 132 update_position: entry (str); 133 134 begin; 135 136 dcl field char (pos_field_len); 137 dcl trimmed_value char (length (str)) var; 138 dcl trimmed_len fixed bin; 139 140 trimmed_value = ltrim (rtrim (str)); 141 trimmed_len = length (trimmed_value); 142 143 if trimmed_len < pos_field_len 144 then do; 145 call CENTER ((trimmed_value), field); 146 call UPDATE (2, 1, pos_field_len, field); 147 end; 148 else call UPDATE (2, 1, pos_field_len, str); 149 150 return; 151 152 end; /* begin */ 153 154 update_usage: entry (str); 155 156 dcl used_cols fixed bin; 157 dcl rused_cols fixed bin; 158 159 if file_field_len ^= 0 & file_info_field_len ^= 0 160 then used_cols = file_field_len + file_info_field_len; 161 else used_cols = 2 * (file_field_len + file_info_field_len); 162 rused_cols = divide (used_cols, 2, 17, 0); 163 164 usage_field_len = window_image_width - used_cols; 165 166 begin; 167 168 dcl field char (usage_field_len); 169 dcl trimmed_value char (length (str)) var; 170 dcl trimmed_len fixed bin; 171 dcl starting_col fixed bin; 172 173 starting_col = window_image_width - (rused_cols + usage_field_len) + 1; 174 175 trimmed_value = ltrim (rtrim (str)); 176 trimmed_len = length (trimmed_value); 177 178 if trimmed_len < usage_field_len 179 then do; 180 call CENTER ((trimmed_value), field); 181 call UPDATE (1, starting_col, usage_field_len, field); 182 end; 183 else call UPDATE (1, starting_col, usage_field_len, str); 184 185 return; 186 187 end; /* begin */ 188 189 redisplay: entry (); 190 191 dcl code fixed bin (35); 192 193 call window_display_ (xmail_windows.status.iocb, display_window, code); 194 if code ^= 0 then call xmail_error_$no_print (code, NAME, LOG); 195 return; 196 197 CENTER: proc (P_str, P_field); 198 199 dcl (P_str, P_field) char (*); 200 dcl (field_len, str_len, n_pad, l_pad) fixed bin; 201 202 field_len = length (P_field); 203 str_len = length (P_str); 204 205 n_pad = field_len - str_len; 206 l_pad = divide (n_pad, 2, 17, 0); 207 P_field = copy (" ", l_pad) || P_str; 208 209 end CENTER; 210 211 RIGHT_JUSTIFY: proc (P_str, P_field); 212 213 dcl (P_str, P_field) char (*); 214 dcl (field_len, str_len, n_pad) fixed bin; 215 216 field_len = length (P_field); 217 str_len = length (P_str); 218 219 n_pad = field_len - str_len; 220 221 P_field = copy (" ", n_pad) || P_str; 222 223 224 end RIGHT_JUSTIFY; 225 226 UPDATE: proc (line, col, len, new_value); 227 228 dcl (line, col, len) fixed bin, 229 new_value char (*); 230 dcl short_new_value defined (new_value) char (len), 231 trunc_new_value defined (new_value) 232 char (len - length (TRUNCATION_STRING)); 233 dcl TRUNCATION_STRING init (" ...") char (4) static options (constant); 234 dcl (length, rtrim) builtin; 235 236 if len >= length (new_value) 237 then call RAW_UPDATE (line, col, len, new_value); 238 else if len <= length (TRUNCATION_STRING) | len >= length (rtrim (new_value)) 239 then call RAW_UPDATE (line, col, len, short_new_value); 240 else do; 241 call RAW_UPDATE (line, col, 242 length (trunc_new_value), trunc_new_value); 243 call RAW_UPDATE (line, 244 col + length (trunc_new_value), 245 length (TRUNCATION_STRING), TRUNCATION_STRING); 246 end; 247 248 249 end UPDATE; 250 251 RAW_UPDATE: proc (line, col, len, new_value); 252 253 dcl (line, col, len) fixed bin, 254 new_value char (*); 255 256 dcl field_p ptr, 257 field_l fixed bin, 258 field char (field_l) based (field_p); 259 260 261 dcl (addr, char, substr) builtin; 262 263 field_p = addr (substr (window_image (line), col)); 264 field_l = len; 265 if char (new_value, len) ^= field 266 then field = new_value; 267 268 end RAW_UPDATE; 269 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 */ 270 271 2 1 /* Begin include file: xmail_windows.incl.pl1 */ 2 2 /* Created 6/24/81 by Paul Kyzivat */ 2 3 /* Mofified 6/20/84 by DJ Schimke to add the mm_status window */ 2 4 2 5 dcl 1 xmail_windows aligned external static, 2 6 2 initial_position fixed bin, 2 7 2 min_lines_needed fixed bin, 2 8 2 (status, mm_status, menu, bottom) aligned like xmail_window_info_format; 2 9 2 10 dcl 1 xmail_window_info_format aligned based, 2 11 2 iocb ptr, 2 12 2 position aligned like window_position_info; 2 13 3 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 3 2 /* format: style3 */ 3 3 3 4 /* Modified 26 January 1982 by William York to add the set_more_handler 3 5* and reset_more_handler control orders. */ 3 6 /* Modified October 1982 by WMY to add set and get_token_characters, 3 7* set and get_more_prompt. */ 3 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 3 9* structure. */ 3 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 3 11* partial screen width windows. */ 3 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 3 13* This should be removed when window_info.incl.pl1 is created. */ 3 14 /* Modified 29 February 1984 by Barmar to add version 1 3 15* get_editor_key_bindings_info. */ 3 16 /* Modified 1 March 1984 by Barmar to add version 1 3 17* set_editor_key_bindings_info. */ 3 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 3 19* line_editor_key_bindings_info, which includes the name, description, and 3 20* info path */ 3 21 3 22 /* structure for the set_window_info and get_window_info 3 23* control orders. */ 3 24 3 25 dcl 1 window_position_info 3 26 based (window_position_info_ptr), 3 27 2 version fixed bin, 3 28 2 origin, 3 29 3 column fixed bin, 3 30 3 line fixed bin, 3 31 2 extent, 3 32 3 width fixed bin, 3 33 3 height fixed bin; 3 34 3 35 dcl (window_position_info_version, window_position_info_version_1) 3 36 fixed bin internal static init (1) options (constant); 3 37 dcl window_position_info_ptr 3 38 pointer; 3 39 3 40 /* structure for the set_window_status and get_window_status 3 41* control orders */ 3 42 3 43 declare window_status_info_ptr 3 44 pointer; 3 45 declare 1 window_status_info 3 46 aligned based (window_status_info_ptr), 3 47 2 version fixed bin, 3 48 2 status_string bit (36) aligned; /* string (window_status) */ 3 49 /* see window_status.incl.pl1 for the contents of this string */ 3 50 3 51 3 52 declare (window_status_version, window_status_version_1) 3 53 fixed bin internal static init (1) options (constant); 3 54 3 55 /* info structure for the set_more_responses and get_more_responses control 3 56* orders */ 3 57 3 58 3 59 dcl 1 more_responses_info 3 60 aligned based (more_responses_info_ptr), 3 61 2 version fixed bin, 3 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 3 63 2 n_noes fixed bin, 3 64 2 yeses char (32) unaligned, 3 65 2 noes char (32) unaligned; 3 66 3 67 dcl (more_responses_info_version_1, more_responses_version) 3 68 fixed bin internal static init (1) options (constant); 3 69 dcl more_responses_info_ptr 3 70 pointer; 3 71 3 72 /* structure for the set_break_table and get_break_table 3 73* control orders */ 3 74 3 75 declare break_table_ptr pointer; 3 76 declare 1 break_table_info aligned based (break_table_ptr), 3 77 2 version fixed bin, 3 78 2 breaks (0:127) bit (1) unaligned; 3 79 3 80 declare (break_table_info_version, break_table_info_version_1) 3 81 fixed bin init (1) internal static options (constant); 3 82 3 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 3 84 2 version fixed bin, 3 85 2 flags unaligned, 3 86 3 old_handler_valid 3 87 bit(1), 3 88 3 pad bit(35), 3 89 2 more_handler entry (pointer, bit(1) aligned), 3 90 2 old_more_handler entry (pointer, bit(1) aligned); 3 91 3 92 declare more_handler_info_ptr pointer; 3 93 3 94 declare (more_handler_info_version, more_handler_info_version_3) 3 95 fixed bin internal static options (constant) init (3); 3 96 3 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 3 98 2 version char(8), 3 99 2 token_character_count 3 100 fixed bin, 3 101 2 token_characters 3 102 char (128) unaligned; 3 103 3 104 declare token_characters_info_ptr pointer; 3 105 3 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 3 107 3 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 3 109 2 version char(8), 3 110 2 more_prompt char(80); 3 111 3 112 declare more_prompt_info_ptr pointer; 3 113 3 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 3 115 3 116 /* Line editor stuff ... */ 3 117 3 118 dcl line_editor_key_binding_info_ptr 3 119 pointer; 3 120 3 121 dcl line_editor_binding_count 3 122 fixed bin; 3 123 dcl line_editor_longest_sequence 3 124 fixed bin; 3 125 /* For each binding, action defines what to do for that sequence. Constants 3 126* are defined in window_editor_values.incl.pl1. Only if action is set to 3 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 3 128 3 129 dcl 1 line_editor_key_binding_info 3 130 aligned based (line_editor_key_binding_info_ptr), 3 131 2 version char(8), 3 132 2 binding_count fixed bin, 3 133 2 longest_sequence fixed bin, 3 134 2 bindings (line_editor_binding_count refer 3 135 (line_editor_key_binding_info.binding_count)), 3 136 3 sequence char(line_editor_longest_sequence refer 3 137 (line_editor_key_binding_info.longest_sequence)) varying, 3 138 3 action fixed bin, 3 139 3 numarg_action fixed binary, 3 140 3 editor_routine entry (pointer, fixed bin(35)), 3 141 3 name char (64) varying unaligned, 3 142 3 description char (256) varying unaligned, 3 143 3 info_path unaligned, 3 144 4 info_dir char (168), 3 145 4 info_entry char (32); 3 146 3 147 3 148 dcl line_editor_key_binding_info_version_3 3 149 char(8) static options (constant) init ("lekbi003"); 3 150 3 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 3 152 2 version char (8), 3 153 2 flags, 3 154 3 entire_state bit (1) unaligned, 3 155 3 mbz bit (35) unaligned, 3 156 2 key_binding_info_ptr ptr, 3 157 2 entire_state_ptr ptr; 3 158 3 159 dcl get_editor_key_bindings_info_ptr ptr; 3 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 3 161 3 162 dcl 1 set_editor_key_bindings_info aligned 3 163 based (set_editor_key_bindings_info_ptr), 3 164 2 version char (8), 3 165 2 flags, 3 166 3 replace bit (1) unaligned, 3 167 3 update bit (1) unaligned, 3 168 3 mbz bit (34) unaligned, 3 169 2 key_binding_info_ptr ptr; 3 170 3 171 dcl set_editor_key_bindings_info_ptr ptr; 3 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 3 173 3 174 /* This should be moved to window_info.incl.pl1 when that include file is 3 175* created. JR 2/1/84 */ 3 176 3 177 dcl 1 window_edit_line_info 3 178 based (window_edit_line_info_ptr), 3 179 2 version char (8), 3 180 2 line_ptr ptr, 3 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 3 182 3 183 dcl window_edit_line_info_version_1 3 184 char (8) static options (constant) init ("wedl0001"); 3 185 3 186 dcl window_edit_line_info_ptr 3 187 ptr; 3 188 3 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 2 14 2 15 2 16 /* End include file: xmail_windows.incl.pl1 */ 272 273 4 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 4 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 4 3 4 4 /* format: style3 */ 4 5 4 6 declare window_$bell entry (pointer, fixed binary (35)); 4 7 declare window_$clear_region 4 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 4 9 declare window_$clear_to_end_of_line 4 10 entry (pointer, fixed binary (35)); 4 11 declare window_$clear_to_end_of_window 4 12 entry (pointer, fixed binary (35)); 4 13 declare window_$clear_window 4 14 entry (pointer, fixed binary (35)); 4 15 declare window_$delete_chars 4 16 entry (pointer, fixed binary, fixed binary (35)); 4 17 declare window_$get_cursor_position 4 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 4 19 4 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 4 21 4 22 declare window_$get_echoed_chars 4 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 4 24 fixed binary (35)); 4 25 declare window_$get_unechoed_chars 4 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 4 27 fixed binary (35)); 4 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 4 29 declare window_$overwrite_text 4 30 entry (pointer, character (*), fixed binary (35)); 4 31 declare window_$position_cursor 4 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 4 33 4 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 4 35 4 36 declare window_$position_cursor_rel 4 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 4 38 4 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 4 40* code); */ 4 41 4 42 declare window_$scroll_region 4 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 4 44 declare window_$sync entry (pointer, fixed binary (35)); 4 45 4 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 4 47 4 48 declare window_$write_raw_text 4 49 entry (pointer, character (*), fixed binary (35)); 4 50 4 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 4 52 4 53 declare window_$write_sync_read 4 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 4 55 character (1) var, fixed binary (35)); 4 56 4 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 4 58 4 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 4 60 4 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 4 62 4 63 declare window_$change_column 4 64 entry (pointer, fixed binary, fixed binary (35)); 4 65 4 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 4 67 declare ( 4 68 window_$get_one_unechoed, 4 69 window_$get_one_unechoed_char 4 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 4 71 4 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 4 73 4 74 declare window_$destroy entry (pointer, fixed binary (35)); 4 75 4 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 4 77 4 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 4 79* buffer_len, n_returned, code); */ 4 80 4 81 4 82 /* end include file window_dcls.incl.pl1 */ 274 275 276 end xmail_sw_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0745.6 xmail_sw_.pl1 >spec>install>MR12.2-1098>xmail_sw_.pl1 270 1 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 272 2 12/02/84 1132.9 xmail_windows.incl.pl1 >ldd>include>xmail_windows.incl.pl1 2-14 3 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 274 4 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.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. LOG 000004 constant char(1) initial packed unaligned dcl 56 set ref 194* NAME 000001 constant char(9) initial packed unaligned dcl 57 set ref 194* P_field parameter char packed unaligned dcl 213 in procedure "RIGHT_JUSTIFY" set ref 211 216 221* P_field parameter char packed unaligned dcl 199 in procedure "CENTER" set ref 197 202 207* P_str parameter char packed unaligned dcl 213 in procedure "RIGHT_JUSTIFY" ref 211 217 221 P_str parameter char packed unaligned dcl 199 in procedure "CENTER" ref 197 203 207 TRUNCATION_STRING 000000 constant char(4) initial packed unaligned dcl 233 set ref 230 238 243 243 243* addr builtin function dcl 261 in procedure "RAW_UPDATE" ref 263 addr builtin function dcl 52 in procedure "initialize" ref 80 char builtin function dcl 261 ref 265 code 000102 automatic fixed bin(35,0) dcl 191 set ref 193* 194 194* col parameter fixed bin(17,0) dcl 253 in procedure "RAW_UPDATE" ref 251 263 col parameter fixed bin(17,0) dcl 228 in procedure "UPDATE" set ref 226 236* 238* 241* 243 copy builtin function dcl 52 ref 207 221 display_window based char array packed unaligned dcl 47 set ref 193* divide builtin function dcl 52 ref 162 206 extent 7 000166 external static structure level 4 dcl 2-5 field 000100 automatic char packed unaligned dcl 168 in begin block on line 166 set ref 180* 181* field 000100 automatic char packed unaligned dcl 109 in begin block on line 107 set ref 121* 122* field 000100 automatic char packed unaligned dcl 136 in begin block on line 134 set ref 145* 146* field based char packed unaligned dcl 256 in procedure "RAW_UPDATE" set ref 265 265* field_l 000114 automatic fixed bin(17,0) dcl 256 set ref 264* 265 265 field_len 000100 automatic fixed bin(17,0) dcl 214 in procedure "RIGHT_JUSTIFY" set ref 216* 219 field_len 000100 automatic fixed bin(17,0) dcl 200 in procedure "CENTER" set ref 202* 205 field_p 000112 automatic pointer dcl 256 set ref 263* 265 265 file_field_len 000010 internal static fixed bin(17,0) dcl 62 set ref 85* 86 95* 97* 99* 159 159 161 file_info_field_len 000011 internal static fixed bin(17,0) dcl 63 set ref 85* 86 105* 109 114 119 122* 124* 126* 159 159 161 height 10 000166 external static fixed bin(17,0) level 5 dcl 2-5 ref 193 iocb 2 000166 external static pointer level 3 dcl 2-5 set ref 193* l_pad 000103 automatic fixed bin(17,0) dcl 200 set ref 206* 207 len parameter fixed bin(17,0) dcl 228 in procedure "UPDATE" set ref 226 230 230 236 236* 238 238 238* len parameter fixed bin(17,0) dcl 253 in procedure "RAW_UPDATE" ref 251 264 265 length builtin function dcl 52 in procedure "initialize" ref 81 110 117 137 141 169 176 202 203 216 217 length builtin function dcl 234 in procedure "UPDATE" ref 230 236 238 238 241 241 243 243 243 line parameter fixed bin(17,0) dcl 253 in procedure "RAW_UPDATE" ref 251 263 line parameter fixed bin(17,0) dcl 228 in procedure "UPDATE" set ref 226 236* 238* 241* 243* ltrim builtin function dcl 52 ref 116 140 175 min builtin function dcl 52 ref 81 n_pad 000102 automatic fixed bin(17,0) dcl 214 in procedure "RIGHT_JUSTIFY" set ref 219* 221 n_pad 000102 automatic fixed bin(17,0) dcl 200 in procedure "CENTER" set ref 205* 206 new_value parameter char packed unaligned dcl 253 in procedure "RAW_UPDATE" ref 251 265 265 new_value parameter char packed unaligned dcl 228 in procedure "UPDATE" set ref 226 236 236* 238 238 238 241 241 241 241 241 241 243 243 pos_field_len 000012 internal static fixed bin(17,0) dcl 64 set ref 87* 136 143 146* 148* position 4 000166 external static structure level 3 dcl 2-5 rtrim builtin function dcl 234 in procedure "UPDATE" ref 238 rtrim builtin function dcl 52 in procedure "initialize" ref 116 140 175 rused_cols 000101 automatic fixed bin(17,0) dcl 157 set ref 162* 173 short_new_value defined char packed unaligned dcl 230 set ref 238* starting_col 000101 automatic fixed bin(17,0) dcl 112 in begin block on line 107 set ref 114* 122* 124* starting_col 000101 automatic fixed bin(17,0) dcl 171 in begin block on line 166 set ref 173* 181* 183* static_window_image 000017 internal static char(132) array packed unaligned dcl 68 set ref 79* 80 81 status 2 000166 external static structure level 2 dcl 2-5 str parameter char packed unaligned dcl 93 set ref 91 95 97* 99 103 105 110 116 124* 126 132 137 140 148* 154 169 175 183* str_len 000101 automatic fixed bin(17,0) dcl 214 in procedure "RIGHT_JUSTIFY" set ref 217* 219 str_len 000101 automatic fixed bin(17,0) dcl 200 in procedure "CENTER" set ref 203* 205 string builtin function dcl 52 set ref 83* substr builtin function dcl 261 ref 263 trimmed_len 000100 automatic fixed bin(17,0) dcl 170 in begin block on line 166 set ref 176* 178 trimmed_len 000100 automatic fixed bin(17,0) dcl 111 in begin block on line 107 set ref 117* 119 trimmed_len 000100 automatic fixed bin(17,0) dcl 138 in begin block on line 134 set ref 141* 143 trimmed_value 000100 automatic varying char dcl 169 in begin block on line 166 set ref 175* 176 180 trimmed_value 000100 automatic varying char dcl 137 in begin block on line 134 set ref 140* 141 145 trimmed_value 000100 automatic varying char dcl 110 in begin block on line 107 set ref 116* 117 121 trunc_new_value defined char packed unaligned dcl 230 set ref 241 241 241* 243 usage_field_len 000013 internal static fixed bin(17,0) dcl 65 set ref 86* 164* 168 173 178 181* 183* used_cols 000100 automatic fixed bin(17,0) dcl 156 set ref 159* 161* 162 164 width 7 000166 external static fixed bin(17,0) level 5 dcl 2-5 ref 81 window_display_ 000162 constant entry external dcl 42 ref 193 window_image based char array packed unaligned dcl 48 set ref 83* 263 window_image_ptr 000014 internal static pointer dcl 66 set ref 80* 83 193 263 window_image_width 000016 internal static fixed bin(17,0) dcl 67 set ref 81* 83 83 86 87 114 164 173 193 193 193 263 263 263 window_position_info based structure level 1 unaligned dcl 3-25 xmail_error_$no_print 000164 constant entry external dcl 43 ref 194 xmail_window_info_format based structure level 1 dcl 2-10 xmail_windows 000166 external static structure level 1 dcl 2-5 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. break_table_info based structure level 1 dcl 3-76 break_table_info_version internal static fixed bin(17,0) initial dcl 3-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 3-80 break_table_ptr automatic pointer dcl 3-75 get_editor_key_bindings_info based structure level 1 dcl 3-151 get_editor_key_bindings_info_ptr automatic pointer dcl 3-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 3-160 line_editor_binding_count automatic fixed bin(17,0) dcl 3-121 line_editor_key_binding_info based structure level 1 dcl 3-129 line_editor_key_binding_info_ptr automatic pointer dcl 3-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 3-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 3-123 more_handler_info based structure level 1 dcl 3-83 more_handler_info_ptr automatic pointer dcl 3-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 3-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 3-94 more_prompt_info based structure level 1 dcl 3-108 more_prompt_info_ptr automatic pointer dcl 3-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 3-114 more_responses_info based structure level 1 dcl 3-59 more_responses_info_ptr automatic pointer dcl 3-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 3-67 more_responses_version internal static fixed bin(17,0) initial dcl 3-67 set_editor_key_bindings_info based structure level 1 dcl 3-162 set_editor_key_bindings_info_ptr automatic pointer dcl 3-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 3-172 token_characters_info based structure level 1 dcl 3-97 token_characters_info_ptr automatic pointer dcl 3-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 3-106 window_$bell 000000 constant entry external dcl 4-6 window_$change_column 000000 constant entry external dcl 4-63 window_$change_line 000000 constant entry external dcl 4-59 window_$clear_region 000000 constant entry external dcl 4-7 window_$clear_to_end_of_line 000000 constant entry external dcl 4-9 window_$clear_to_end_of_window 000000 constant entry external dcl 4-11 window_$clear_window 000000 constant entry external dcl 4-13 window_$create 000000 constant entry external dcl 4-72 window_$delete_chars 000000 constant entry external dcl 4-15 window_$destroy 000000 constant entry external dcl 4-74 window_$edit_line 000000 constant entry external dcl 4-76 window_$get_cursor_position 000000 constant entry external dcl 4-17 window_$get_echoed_chars 000000 constant entry external dcl 4-22 window_$get_one_unechoed 000000 constant entry external dcl 4-67 window_$get_one_unechoed_char 000000 constant entry external dcl 4-67 window_$get_unechoed_chars 000000 constant entry external dcl 4-25 window_$insert_text 000000 constant entry external dcl 4-28 window_$overwrite_text 000000 constant entry external dcl 4-29 window_$position_cursor 000000 constant entry external dcl 4-31 window_$position_cursor_rel 000000 constant entry external dcl 4-36 window_$scroll_region 000000 constant entry external dcl 4-42 window_$sync 000000 constant entry external dcl 4-44 window_$write_raw_text 000000 constant entry external dcl 4-48 window_$write_sync_read 000000 constant entry external dcl 4-53 window_edit_line_info based structure level 1 unaligned dcl 3-177 window_edit_line_info_ptr automatic pointer dcl 3-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 3-183 window_position_info_ptr automatic pointer dcl 3-37 window_position_info_version internal static fixed bin(17,0) initial dcl 3-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 3-35 window_status_info based structure level 1 dcl 3-45 window_status_info_ptr automatic pointer dcl 3-43 window_status_version internal static fixed bin(17,0) initial dcl 3-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 3-52 xmail_data based structure level 1 dcl 1-54 xmail_data_ptr external static pointer initial dcl 1-52 xmail_version internal static varying char(10) initial dcl 1-84 NAMES DECLARED BY EXPLICIT CONTEXT. CENTER 001235 constant entry internal dcl 197 ref 145 180 RAW_UPDATE 001564 constant entry internal dcl 251 ref 236 238 241 243 RIGHT_JUSTIFY 001314 constant entry internal dcl 211 ref 121 UPDATE 001371 constant entry internal dcl 226 ref 97 122 124 146 148 181 183 initialize 000020 constant entry external dcl 21 redisplay 001147 constant entry external dcl 189 update_file 000106 constant entry external dcl 91 update_file_info 000176 constant entry external dcl 103 update_position 000450 constant entry external dcl 132 update_usage 000676 constant entry external dcl 154 xmail_sw_ 000027 constant entry external dcl 21 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2004 2174 1633 2014 Length 2472 1633 170 261 150 152 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME initialize 106 external procedure is an external procedure. begin block on line 107 112 begin block uses auto adjustable storage. begin block on line 134 112 begin block uses auto adjustable storage. begin block on line 166 112 begin block uses auto adjustable storage. CENTER 71 internal procedure is called during a stack extension. RIGHT_JUSTIFY 70 internal procedure is called during a stack extension. UPDATE 102 internal procedure is called by several nonquick procedures. RAW_UPDATE internal procedure shares stack frame of internal procedure UPDATE. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 file_field_len initialize 000011 file_info_field_len initialize 000012 pos_field_len initialize 000013 usage_field_len initialize 000014 window_image_ptr initialize 000016 window_image_width initialize 000017 static_window_image initialize STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME CENTER 000100 field_len CENTER 000101 str_len CENTER 000102 n_pad CENTER 000103 l_pad CENTER RIGHT_JUSTIFY 000100 field_len RIGHT_JUSTIFY 000101 str_len RIGHT_JUSTIFY 000102 n_pad RIGHT_JUSTIFY UPDATE 000112 field_p RAW_UPDATE 000114 field_l RAW_UPDATE begin block on line 107 000100 trimmed_value begin block on line 107 000100 field begin block on line 107 000100 trimmed_len begin block on line 107 000101 starting_col begin block on line 107 begin block on line 134 000100 trimmed_len begin block on line 134 000100 field begin block on line 134 000100 trimmed_value begin block on line 134 begin block on line 166 000100 trimmed_len begin block on line 166 000100 field begin block on line 166 000100 trimmed_value begin block on line 166 000101 starting_col begin block on line 166 initialize 000100 used_cols initialize 000101 rused_cols initialize 000102 code initialize THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars enter_begin_block call_ext_out_desc call_int_this_desc call_int_other_desc begin_return_mac return_mac alloc_auto_adj shorten_stack ext_entry ext_entry_desc int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. window_display_ xmail_error_$no_print THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. xmail_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 21 000017 79 000034 80 000051 81 000053 83 000061 85 000070 86 000072 87 000100 89 000102 91 000103 95 000121 97 000133 99 000162 101 000173 103 000174 105 000211 107 000223 109 000226 110 000236 121 000253 122 000256 114 000261 116 000265 117 000323 119 000325 121 000327 122 000354 123 000403 124 000404 126 000431 128 000443 132 000445 134 000463 136 000466 137 000476 145 000513 146 000516 140 000521 141 000557 143 000561 145 000563 146 000610 147 000641 148 000642 150 000671 154 000673 159 000711 161 000721 162 000725 164 000727 166 000732 168 000735 169 000745 180 000762 181 000765 173 000770 175 000777 176 001035 178 001037 180 001041 181 001066 182 001115 183 001116 185 001143 189 001145 193 001154 194 001210 195 001233 197 001234 202 001255 203 001256 205 001260 206 001263 207 001265 209 001311 211 001313 216 001334 217 001335 219 001337 221 001342 224 001366 226 001370 230 001404 238 001411 241 001414 236 001417 238 001445 241 001507 243 001533 249 001563 251 001564 263 001575 264 001611 265 001613 268 001631 ----------------------------------------------------------- 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