COMPILATION LISTING OF SEGMENT sdm_file_requests_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 05/22/86 1043.1 mst Thu 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 /* format: off */ 11 12 /* The send_mail write, append, and preface requests */ 13 14 /* Created: 12 January 1979 by G. Palter */ 15 /* Modified: 15 January 1979 by G. Palter to not cause faults when there is no header */ 16 /* Modified: 16 March 1979 by G. Palter to not write the message if there is some text in it */ 17 /* Modified: 2 June 1980 by G. Palter to fix bug #0304 -- the "write", "append", and "preface" requests should validate 18* the name of the segment. For example, they should reject the name "x." */ 19 /* Modified: September 1983 by G. Palter as part of the conversion to the new mail system interface */ 20 21 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 22 23 24 sdm_file_requests_: 25 procedure (P_sci_ptr, P_sdm_invocation_ptr); 26 27 return; /* not an entrypoint */ 28 29 30 /* Parameters */ 31 32 dcl P_sci_ptr pointer parameter; 33 dcl P_sdm_invocation_ptr pointer parameter; 34 35 36 /* Local copies of parameters */ 37 38 dcl sci_ptr pointer; 39 40 41 /* Remaining declarations */ 42 43 dcl argument character (argument_lth) unaligned based (argument_ptr); 44 dcl argument_ptr pointer; 45 dcl argument_lth fixed binary (21); 46 dcl (n_arguments, argument_idx) fixed binary; 47 48 dcl message_buffer character (4 * sys_info$max_seg_size) unaligned based (message_buffer_ptr); 49 dcl message_text character (message_text_lth) unaligned based (message_buffer_ptr); 50 dcl message_buffer_ptr pointer; 51 dcl message_text_lth fixed binary (21); 52 53 dcl 1 local_fmo aligned like format_message_options; 54 55 dcl file_dirname character (168); 56 dcl file_ename character (32); 57 dcl file_ptr pointer; 58 dcl file_uid bit (36) aligned; 59 60 dcl file_creation_mode fixed binary; 61 dcl file_insertion_mode fixed binary; 62 63 dcl have_filename bit (1) aligned; 64 65 dcl code fixed binary (35); 66 67 dcl sys_info$max_seg_size fixed binary (19) external; 68 69 /* format: off */ 70 dcl (error_table_$action_not_performed, error_table_$badopt, error_table_$noarg, error_table_$nostars, 71 error_table_$too_many_args,mlsys_et_$empty_message, mlsys_et_$message_too_large) 72 fixed binary (35) external; 73 /* format: on */ 74 75 dcl check_star_name_$entry entry (character (*), fixed binary (35)); 76 dcl cu_$arg_list_ptr entry () returns (pointer); 77 dcl emf_writing_util_$close entry (pointer, bit (36) aligned, fixed binary (35)); 78 dcl emf_writing_util_$open 79 entry (pointer, character (*), character (*), fixed binary, pointer, bit (36) aligned, fixed binary (35)); 80 dcl emf_writing_util_$write entry (pointer, bit (36) aligned, character (*), fixed binary, fixed binary (35)); 81 dcl expand_pathname_$add_suffix entry (character (*), character (*), character (*), character (*), fixed binary (35)); 82 dcl ioa_$general_rs 83 entry (pointer, fixed binary, fixed binary, character (*), fixed binary (21), bit (1) aligned, bit (1) aligned); 84 dcl mlsys_utils_$format_address_field 85 entry (character (*) varying, pointer, fixed binary, pointer, fixed binary (21), fixed binary (21), 86 fixed binary (35)); 87 dcl mlsys_utils_$format_address_list_field 88 entry (character (*) varying, pointer, fixed binary, pointer, fixed binary (21), fixed binary (21), 89 fixed binary (35)); 90 dcl mlsys_utils_$format_date_time_field 91 entry (character (*) varying, fixed binary (71), bit (1) aligned, fixed binary, pointer, fixed binary (21), 92 fixed binary (21), fixed binary (35)); 93 dcl mlsys_utils_$format_message 94 entry (pointer, pointer, pointer, fixed binary (21), fixed binary (21), fixed binary (35)); 95 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 96 dcl ssu_$abort_line entry () options (variable); 97 dcl ssu_$arg_count entry (pointer, fixed binary); 98 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 99 dcl ssu_$get_request_name entry (pointer) returns (character (32)); 100 dcl ssu_$get_temp_segment entry (pointer, character (*), pointer); 101 dcl ssu_$release_temp_segment entry (pointer, pointer); 102 103 dcl cleanup condition; 104 105 dcl (addr, index, length, max, min, null, substr) builtin; 106 107 /* The "write" request: adds the printed representation of the message to the end of the specified file which is created 108* if necessary without asking the user's permission */ 109 110 write_request: 111 entry (P_sci_ptr, P_sdm_invocation_ptr); 112 113 call setup_request (); 114 if n_arguments = 0 then call ssu_$abort_line (sci_ptr, 0, "Usage: write path {-control_args}"); 115 116 on condition (cleanup) call cleanup_request (); 117 118 have_filename = "0"b; 119 120 file_creation_mode = SILENTLY_CREATE_FILE; 121 file_insertion_mode = APPEND_FILE; /* default is "-extend" */ 122 123 do argument_idx = 1 to n_arguments; 124 call ssu_$arg_ptr (sci_ptr, argument_idx, argument_ptr, argument_lth); 125 126 if index (argument, "-") = 1 then /* a control argument ... */ 127 if (argument = "-truncate") | (argument = "-tc") then file_insertion_mode = TRUNCATE_FILE; 128 else if argument = "-extend" then file_insertion_mode = APPEND_FILE; 129 130 else call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a""", argument); 131 132 else if have_filename then 133 call ssu_$abort_line (sci_ptr, error_table_$too_many_args, "Only one pathname may be specified."); 134 135 else do; 136 have_filename = "1"b; 137 call expand_pathname_$add_suffix (argument, "mail", file_dirname, file_ename, code); 138 if code ^= 0 then call ssu_$abort_line (sci_ptr, code, "^a", argument); 139 call check_star_name_$entry (file_ename, code); 140 if (code ^= 0) then /* validate syntax of the entryname ... */ 141 if (code = 1) | (code = 2) then /* ... and reject starnames */ 142 call ssu_$abort_line (sci_ptr, error_table_$nostars, "^a", 143 pathname_ (file_dirname, file_ename)); 144 else call ssu_$abort_line (sci_ptr, code, "^a", pathname_ (file_dirname, file_ename)); 145 end; 146 end; 147 148 if ^have_filename then call ssu_$abort_line (sci_ptr, error_table_$noarg, "Pathname of output file."); 149 150 call process_message (); /* do it */ 151 152 call cleanup_request (); 153 154 return; 155 156 /* The "append" request: adds the printed representation of the message to the end of the specified file. The user is 157* asked for permission to create the file if it doesn't exist */ 158 159 append_request: 160 entry (P_sci_ptr, P_sdm_invocation_ptr); 161 162 call setup_request (); 163 164 file_insertion_mode = APPEND_FILE; /* ... at the end */ 165 166 go to APPEND_PREFACE_COMMON; 167 168 169 /* The "preface" request: adds the printed representation of the message to the beginning of the specified file. The user 170* is asked for permission to create the file if it doesn't exist */ 171 172 preface_request: 173 entry (P_sci_ptr, P_sdm_invocation_ptr); 174 175 call setup_request (); 176 177 file_insertion_mode = PREFACE_FILE; /* ... at the beginning */ 178 179 180 /* Process the append/preface request */ 181 182 APPEND_PREFACE_COMMON: 183 file_creation_mode = QUERY_TO_CREATE_FILE; 184 185 if n_arguments ^= 1 then /* print an appropriate error message */ 186 if n_arguments = 0 then 187 call ssu_$abort_line (sci_ptr, 0, "Usage: ^a path", ssu_$get_request_name (sci_ptr)); 188 else call ssu_$abort_line (sci_ptr, error_table_$too_many_args, "Only one pathname may be specified."); 189 190 call ssu_$arg_ptr (sci_ptr, 1, argument_ptr, argument_lth); 191 192 if index (argument, "-") = 1 then call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a""", argument); 193 194 call expand_pathname_$add_suffix (argument, "mail", file_dirname, file_ename, code); 195 if code ^= 0 then call ssu_$abort_line (sci_ptr, code, "^a", argument); 196 197 call check_star_name_$entry (file_ename, code); 198 if (code ^= 0) then /* validate syntax of the entryname ... */ 199 if (code = 1) | (code = 2) then /* ... and reject starnames */ 200 call ssu_$abort_line (sci_ptr, error_table_$nostars, "^a", pathname_ (file_dirname, file_ename)); 201 else call ssu_$abort_line (sci_ptr, code, "^a", pathname_ (file_dirname, file_ename)); 202 203 call process_message (); /* do it */ 204 205 call cleanup_request (); 206 207 return; 208 209 /* Performs initialization common to all requests */ 210 211 setup_request: 212 procedure (); 213 214 sci_ptr = P_sci_ptr; 215 call ssu_$arg_count (sci_ptr, n_arguments); 216 217 sdm_invocation_ptr = P_sdm_invocation_ptr; 218 message_ptr = sdm_invocation.message_ptr; 219 220 file_ptr, message_buffer_ptr = null (); /* for cleanup handler */ 221 222 return; 223 224 end setup_request; 225 226 227 228 /* Closes the file opened by this request and releases the message buffer */ 229 230 cleanup_request: 231 procedure (); 232 233 if message_buffer_ptr ^= null () then call ssu_$release_temp_segment (sci_ptr, message_buffer_ptr); 234 235 if file_ptr ^= null () then call emf_writing_util_$close (file_ptr, file_uid, (0)); 236 237 return; 238 239 end cleanup_request; 240 241 /* Actually performs most of the work of the above requests */ 242 243 process_message: 244 procedure (); 245 246 if is_empty_message () then /* no sense in writing something without text */ 247 call ssu_$abort_line (sci_ptr, mlsys_et_$empty_message); 248 249 250 /* Open the file for writing */ 251 252 call emf_writing_util_$open (sci_ptr, file_dirname, file_ename, file_creation_mode, file_ptr, file_uid, code); 253 if code ^= 0 then /* couldn't open thje file ... */ 254 if code = error_table_$action_not_performed then 255 call ssu_$abort_line (sci_ptr, 0); /* ... and user answered "no" to the query to create it */ 256 else call ssu_$abort_line (sci_ptr, code, "^a", pathname_ (file_dirname, file_ename)); 257 258 259 /* Create the printed representation of the message using the default formatting mode */ 260 261 local_fmo.version = FORMAT_MESSAGE_OPTIONS_VERSION_1; 262 local_fmo.line_length = min (max (sdm_invocation.fill_width, 31), 72); 263 local_fmo.envelope_formatting_mode, local_fmo.header_formatting_mode, 264 local_fmo.redistributions_list_formatting_mode = DEFAULT_FORMATTING_MODE; 265 local_fmo.include_body = "1"b; 266 267 call ssu_$get_temp_segment (sdm_invocation.sci_ptr, "message_text", message_buffer_ptr); 268 message_text_lth = 0; /* nothing in the buffer yet */ 269 270 call add_to_buffer (" #1^[ (^d line^[s^] in body)^]:", (message.body.total_lines ^= -1), 271 message.body.total_lines, (message.body.total_lines ^= 1)); 272 273 if sdm_invocation.acknowledge then do; /* acknowledgements always come to us (for now) */ 274 call mlsys_utils_$format_address_field (ACKNOWLEDGE_TO_FIELDNAME, 275 sdm_data_$default_from_field -> address_list.addresses (1), local_fmo.line_length, message_buffer_ptr, 276 length (message_buffer), message_text_lth, code); 277 if code ^= 0 then 278 call ssu_$abort_line (sci_ptr, mlsys_et_$message_too_large, 279 "Preparing the message to be written to ^a.", pathname_ (file_dirname, file_ename)); 280 call add_to_buffer (""); 281 end; 282 283 call mlsys_utils_$format_date_time_field (DATE_TIME_CREATED_FIELDNAME, sdm_invocation.date_time_body_modified, 284 "1"b, local_fmo.line_length, message_buffer_ptr, length (message_buffer), message_text_lth, code); 285 if code ^= 0 then 286 call ssu_$abort_line (sci_ptr, mlsys_et_$message_too_large, "Preparing the message to be written to ^a.", 287 pathname_ (file_dirname, file_ename)); 288 call add_to_buffer (""); 289 290 if is_empty_list (message.from) then do; /* no From field present: display the default */ 291 call mlsys_utils_$format_address_list_field (FROM_FIELDNAME, sdm_data_$default_from_field, 292 local_fmo.line_length, message_buffer_ptr, length (message_buffer), message_text_lth, code); 293 if code ^= 0 then 294 call ssu_$abort_line (sci_ptr, mlsys_et_$message_too_large, 295 "Preparing the message to be written to ^a.", pathname_ (file_dirname, file_ename)); 296 call add_to_buffer (""); 297 end; 298 299 call mlsys_utils_$format_message (message_ptr, addr (local_fmo), message_buffer_ptr, length (message_buffer), 300 message_text_lth, code); 301 if code ^= 0 then 302 call ssu_$abort_line (sci_ptr, mlsys_et_$message_too_large, "Preparing the message to be written to ^a.", 303 pathname_ (file_dirname, file_ename)); 304 305 call add_to_buffer (" ---(1)---^2/^|"); 306 307 308 /* Write the message into the file */ 309 310 call emf_writing_util_$write (file_ptr, file_uid, message_text, file_insertion_mode, code); 311 312 if code ^= 0 then call ssu_$abort_line (sci_ptr, code, "^a", pathname_ (file_dirname, file_ename)); 313 314 sdm_invocation.message_state = PROCESSED_MESSAGE; /* OK to quit without query now */ 315 316 return; 317 318 319 /* Internal to process_message: formats the given text and adds it to the message buffer */ 320 321 add_to_buffer: 322 procedure () options (variable); 323 324 dcl internal_buffer character (256); /* always called with relatively short messages */ 325 dcl internal_buffer_used fixed binary (21); 326 327 call ioa_$general_rs (cu_$arg_list_ptr (), 1, 2, internal_buffer, internal_buffer_used, "0"b, "1"b); 328 329 begin; 330 dcl rest_of_message_buffer character (length (message_buffer) - message_text_lth) unaligned 331 defined (message_buffer) position (message_text_lth + 1); 332 333 if internal_buffer_used > length (rest_of_message_buffer) then 334 call ssu_$abort_line (sci_ptr, mlsys_et_$message_too_large, 335 "Preparing the message to be written to ^a.", pathname_ (file_dirname, file_ename)); 336 337 substr (rest_of_message_buffer, 1, internal_buffer_used) = 338 substr (internal_buffer, 1, internal_buffer_used); 339 end; 340 341 message_text_lth = message_text_lth + internal_buffer_used; 342 343 return; 344 345 end add_to_buffer; 346 347 end process_message; 348 349 /* Determines if the given address list is empty */ 350 351 is_empty_list: 352 procedure (p_address_list_ptr) returns (bit (1) aligned); 353 354 dcl p_address_list_ptr pointer parameter; 355 356 if p_address_list_ptr = null () then /* if there's no data at all, it's empty */ 357 return ("1"b); 358 359 else return ((p_address_list_ptr -> address_list.n_addresses = 0)); 360 361 end is_empty_list; 362 363 364 365 /* Determines if the message is empty */ 366 367 is_empty_message: 368 procedure () returns (bit (1) aligned); 369 370 dcl idx fixed binary; 371 372 do idx = 1 to message.n_body_sections; 373 message_body_section_ptr = addr (message.body_sections (idx)); 374 if message_body_section.section_type = MESSAGE_PREFORMATTED_BODY_SECTION then 375 if message_preformatted_body_section.text_lth > 0 then 376 return ("0"b); /* any non-zero length section => the message isn't empty */ 377 else ; 378 else /*** if message_body_section.section_type = MESSAGE_BIT_STRING_BODY_SECTION then */ 379 if message_bit_string_body_section.bit_string_lth > 0 then return ("0"b); 380 end; /* any non-zero length section => the message isn't empty */ 381 382 /*** Control arrives here iff all sections in the body are empty */ 383 return ("1"b); 384 385 end is_empty_message; 386 1 1 /* BEGIN INCLUDE FILE ... sdm_invocation.incl.pl1 */ 1 2 /* Created: August 1983 by G. Palter from portions of emf_info.incl.pl1 */ 1 3 1 4 /* Definition of a single invocation of send_mail */ 1 5 1 6 dcl 1 sdm_invocation aligned based (sdm_invocation_ptr), 1 7 2 type character (8), /* defines this structure as a send_mail invocation */ 1 8 2 sci_ptr pointer, /* -> subsystem utilities invocation data */ 1 9 2 area_ptr pointer, /* -> area to be used by the subsystem */ 1 10 1 11 2 message_info, /* information about the message being constructed */ 1 12 3 message_ptr pointer, /* ... -> the actual message */ 1 13 3 message_state fixed binary, /* ... unprocessed/modified/processed: controls quit query */ 1 14 3 date_time_body_modified fixed binary (71), /* ... last date/time the message body was changed: used to 1 15* display Date/Message-ID fields before transmission */ 1 16 1 17 2 fill_width fixed binary, /* default line length for message filling */ 1 18 2 flags, 1 19 3 brief bit (1) unaligned, /* ON => suppress "Mail delivered..." messages */ 1 20 3 acknowledge bit (1) unaligned, /* ON => user wants acknowledgement from recipients */ 1 21 3 notify bit (1) unaligned, /* ON => send each recipient a notification of delivery */ 1 22 3 fill bit (1) unaligned, /* ON => fill message body whenever modified */ 1 23 3 debug_mode bit (1) unaligned, /* ON => debugging features enabled */ 1 24 3 auto_write bit (1) unaligned, 1 25 3 pad bit (30) unaligned, /* ON => qedx request automatically rewrites on quit (sigh) */ 1 26 1 27 2 rdm_invocation_ptr pointer, /* -> description of read_mail invocation whose reply request 1 28* created this send_mail invocation */ 1 29 1 30 2 original_messages_ptr pointer, /* -> current list of original messages from which the 1 31* In-Reply-To field is to be regenerated after use of 1 32* qedx/apply -header */ 1 33 1 34 2 abort_code fixed binary (35); /* indicates whether send_mail exited with unsent message */ 1 35 1 36 dcl SDM_INVOCATION character (8) static options (constant) initial ("sdm_0008"); 1 37 1 38 dcl sdm_invocation_ptr pointer; 1 39 1 40 dcl sdm_area area based (sdm_invocation.area_ptr); 1 41 1 42 1 43 /* Possible message states: indicate whether the message has been modified in some way since it was last successfully 1 44* transmitted, logged, saved, or writen. This state is used by the quit request to control whether it should query the 1 45* user for permission to exit send_mail */ 1 46 1 47 dcl (UNPROCESSED_MESSAGE initial (-1), /* message has never been transmitted/logged/saved/written */ 1 48 1 49 MODIFIED_MESSAGE initial (1), /* message was transmitted/logged/saved/written but has been 1 50* modified since the last such operation */ 1 51 1 52 PROCESSED_MESSAGE initial (0)) /* message was transmitted/logged/saved/written and hasn't 1 53* been modified since that operation: OK to quit without 1 54* having to ask for the user's permission */ 1 55 fixed binary static options (constant); 1 56 1 57 /* END INCLUDE FILE ... sdm_invocation.incl.pl1 */ 387 388 2 1 /* BEGIN INCLUDE FILE ... sdm_data.incl.pl1 */ 2 2 /* Created: 20 December 1978 by G. Palter */ 2 3 /* Modified: 17 September 1982 by G. Palter to add sdm_data_$ec_suffix and sdm_data_$ec_search_list */ 2 4 /* Modified: August 1983 by G. Palter as part of send_mail conversion */ 2 5 2 6 2 7 /* Constant data used by the send_mail subsystem */ 2 8 2 9 dcl sdm_data_$version character (32) varying external; /* current version of the subsystem */ 2 10 2 11 dcl sdm_data_$info_directory character (168) external; /* directory containing self-documenation */ 2 12 2 13 dcl sdm_data_$special_message character (256) varying external; 2 14 /* message to print on each invocation if not null */ 2 15 2 16 dcl sdm_data_$ec_suffix character (32) external; /* exec_com suffix for send_mail */ 2 17 dcl sdm_data_$ec_search_list character (32) external; /* exec_com search list */ 2 18 2 19 dcl 1 sdm_data_$default_options like send_mail_options aligned external; 2 20 /* default options to control send_mail */ 2 21 2 22 2 23 /* Static data used by the send_mail subsystem */ 2 24 2 25 dcl sdm_data_$first_invocation bit (1) aligned external; /* ON => this is the first invocation in this process */ 2 26 2 27 dcl sdm_data_$default_from_field pointer external; /* -> an address list to be used when asked to display the 2 28* From field and it has not been explicitly set by the user: 2 29* this list contains exactly 1 address -- the user's mail 2 30* table address (or default mailbox address if anonymous) */ 2 31 2 32 /* END INCLUDE FILE ... sdm_data.incl.pl1 */ 389 390 3 1 /* BEGIN INCLUDE FILE ... send_mail_options.incl.pl1 */ 3 2 /* Created: 28 December 1978 by G. Palter */ 3 3 /* Modified: 25 April 1980 by G. Palter for version 2 -- abbrev processing */ 3 4 /* Modified: 27 January 1981 by G. Palter for version 3 -- increased prompt string length */ 3 5 /* Modified: 16 February 1982 by G. Palter for version 4 -- default profile in addition to current profile */ 3 6 /* Modified: 17 September 1982 by G. Palter for version 5 -- new definition of -fill, -debug, and making -fill/-rql 3 7* dependent on mode of message input (terminal/file) */ 3 8 /* Modified: August 1983 by G. Palter for version 6 -- elimination of -header and -message_id (always ON), elimination of 3 9* -no_abort as the command line -abort/-no_abort no longer sets the default for the send request control argument, 3 10* addition of -auto_write/-no_auto_write as required by the MCR boards, and addition of options pertaining to 3 11* treatment of the original message(s) text when invoked by a reply request */ 3 12 3 13 /* User settable options of the send_mail subsystem */ 3 14 3 15 dcl 1 send_mail_options aligned based (send_mail_options_ptr), 3 16 2 version character (8) unaligned, 3 17 3 18 2 fill_width fixed binary, /* default width for filling */ 3 19 3 20 2 prompt_control aligned, /* controls how send_mail prompts */ 3 21 3 prompt_string character (64) varying, /* ... user-supplied string */ 3 22 3 flags aligned, 3 23 4 prompt_control bit (2) unaligned, /* ... default prompt/use above string/don't prompt */ 3 24 4 pad bit (34) unaligned, 3 25 3 26 2 default_profile_ptr pointer, /* -> default profile to be used if flags.abbrev is ON */ 3 27 2 profile_ptr pointer, /* -> profile to be used if flags.abbrev is ON */ 3 28 3 29 2 original_text_control aligned, /* controls send_mail's treatment of original message text */ 3 30 3 original_text_indentation fixed binary, /* ... # of columns to indent the text if requested */ 3 31 3 flags, 3 32 4 include_original_text bit (1) unaligned, /* ... ON => text from message(s) being answered is to be 3 33* included in the reply before the actual answer */ 3 34 4 indent_original_text bit (1) unaligned, /* ... ON => the original text is to be indented */ 3 35 4 fill_original_text bit (1) unaligned, /* ... ON => the original text is to be re-filled */ 3 36 4 pad bit (33) unaligned, 3 37 3 38 2 flags aligned, 3 39 3 acknowledge bit (1) unaligned, /* ON => user wants acknowledgement from recipients */ 3 40 3 brief bit (1) unaligned, /* ON => suppress "Mail delivered..." messages */ 3 41 3 notify bit (1) unaligned, /* ON => send each recipient a wakeup */ 3 42 3 abbrev bit (1) unaligned, /* ON => use abbrev processing in this invocation */ 3 43 3 debug bit (1) unaligned, /* ON => enable debugging features */ 3 44 3 auto_write bit (1) unaligned, /* ON => qedx request automatically rewrites on quit (sigh) */ 3 45 3 fill_control bit (2) unaligned, /* default/explicit -fill/explicit -no_fill */ 3 46 3 request_loop_control bit (2) unaligned, /* default/explicit -rql/explicit -nrql */ 3 47 3 pad bit (26) unaligned; 3 48 3 49 dcl send_mail_options_ptr pointer; 3 50 3 51 dcl SEND_MAIL_OPTIONS_VERSION_6 character (8) static options (constant) initial ("sdmopt06"); 3 52 3 53 3 54 /* Prompt control options */ 3 55 3 56 dcl (DEFAULT_PROMPT initial ("00"b), /* use default subsystem prompt */ 3 57 USE_PROMPT_STRING initial ("01"b), /* use prompt string supplied by user (via -prompt STR) */ 3 58 NO_PROMPT initial ("10"b)) /* disable subsystem prompt */ 3 59 bit (2) static options (constant); 3 60 3 61 3 62 /* Fill control options */ 3 63 3 64 dcl (DEFAULT_FILL initial ("00"b), /* fill if terminal input; do not fill if file input */ 3 65 FILL initial ("01"b), /* user specified -fill */ 3 66 NO_FILL initial ("10"b)) /* user specified -no_fill */ 3 67 bit (2) static options (constant); 3 68 3 69 3 70 /* Request loop control options */ 3 71 3 72 dcl (DEFAULT_REQUEST_LOOP initial ("00"b), /* enter loop if file input; do not enter if terminal input */ 3 73 REQUEST_LOOP initial ("01"b), /* user specified -request_loop */ 3 74 NO_REQUEST_LOOP initial ("10"b)) /* user specified -no_request_loop */ 3 75 bit (2) static options (constant); 3 76 3 77 /* END INCLUDE FILE ... send_mail_options.incl.pl1 */ 391 392 4 1 /* BEGIN INCLUDE FILE ... emf_writing_modes.incl.pl1 */ 4 2 /* Created: 12 January 1979 by G. Palter */ 4 3 4 4 /* Constants defining the various modes of operation of emf_writing_util_ */ 4 5 4 6 dcl (DONT_CREATE_FILE initial (0), /* do not create the file and issue an error message */ 4 7 QUERY_TO_CREATE_FILE initial (1), /* ask the user for permission to create the file */ 4 8 CREATE_AND_ANNOUNCE_FILE initial (2), /* create the file and inform the user of this action */ 4 9 SILENTLY_CREATE_FILE initial (3), /* create the file but don't inform the user */ 4 10 4 11 TRUNCATE_FILE initial (1), /* truncate the file if it already exists */ 4 12 APPEND_FILE initial (2), /* add the text to the end of the file */ 4 13 PREFACE_FILE initial (3)) /* insert the text at the beginning of the file */ 4 14 4 15 fixed binary static options (constant); 4 16 4 17 /* END INCLUDE FILE ... emf_writing_modes.incl.pl1 */ 393 394 5 1 /* BEGIN INCLUDE FILE ... mlsys_format_options.incl.pl1 */ 5 2 /* Created: June 1983 by G. Palter */ 5 3 5 4 /* Options for the mlsys_utils_$format_message and mlsys_utils_$print_message entrypoints */ 5 5 5 6 dcl 1 format_message_options aligned based (format_message_options_ptr), 5 7 2 version character (8) unaligned, 5 8 2 line_length fixed binary, /* line length to be used to format/print the message */ 5 9 2 envelope_formatting_mode fixed binary, /* level of detail to be displayed for the envelope ... */ 5 10 2 header_formatting_mode fixed binary, /* ... for the message ... */ 5 11 2 redistributions_list_formatting_mode fixed binary, /* ... and for the redistributions list ... */ 5 12 2 include_body bit (1) aligned; /* ON => include message body when formatting/printing; 5 13* OFF => exclude the message body */ 5 14 5 15 dcl FORMAT_MESSAGE_OPTIONS_VERSION_1 character (8) static options (constant) initial ("mlsfmo01"); 5 16 5 17 dcl format_message_options_ptr pointer; 5 18 5 19 5 20 /* Defined formatting modes */ 5 21 5 22 dcl (NONE_FORMATTING_MODE initial (0), /* exclude this part of the message */ 5 23 BRIEF_FORMATTING_MODE initial (1), /* include only minimal information from this part of the 5 24* message; not valid for the envelope */ 5 25 DEFAULT_FORMATTING_MODE initial (2), /* include default amount of information from this part */ 5 26 LONG_FORMATTING_MODE initial (3)) /* include all information from this part of the message */ 5 27 fixed binary static options (constant); 5 28 5 29 /* END INCLUDE FILE ... mlsys_format_options.incl.pl1 */ 395 396 6 1 /* BEGIN INCLUDE FILE ... mlsys_message.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(85-12-19,Herbst), approve(86-03-25,MCR7367), 6 6* audit(86-04-28,Margolin), install(86-05-22,MR12.0-1059): 6 7* Added seen switch to message. 6 8* END HISTORY COMMENTS */ 6 9 6 10 6 11 /* Created: June 1983 by G. Palter */ 6 12 6 13 /* Definition of a message as used by the Multics Mail System */ 6 14 6 15 dcl 1 message aligned based (message_ptr), 6 16 2 version character (8) unaligned, 6 17 2 reserved bit (144), /* for exclusive use of the mail system */ 6 18 2 n_reply_references fixed binary, /* # of messages for which this is a reply */ 6 19 2 n_user_fields fixed binary, /* # of non-standard header fields in this message */ 6 20 2 n_redistributions fixed binary, /* # of times this message has been forwarded */ 6 21 2 n_body_sections fixed binary, /* # of sections in the body */ 6 22 2 flags, 6 23 3 interactive bit (1) unaligned, /* ON => this is an interactive message */ 6 24 3 can_be_deleted bit (1) unaligned, /* ON => the user can delete this message if desired */ 6 25 3 marked_for_deletion bit (1) unaligned, /* ON => message will be deleted when mailbox is closed */ 6 26 3 must_be_acknowledged bit (1) unaligned, /* ON => an ACK should be generated when message is read */ 6 27 3 seen bit (1) unaligned, /* ON => user has printed message at least once */ 6 28 3 reserved bit (31) unaligned, /* for use by the mail system */ 6 29 2 pad bit (36), 6 30 2 envelope like message_envelope, /* who/when/how the message was mailed & delivered */ 6 31 2 header, 6 32 3 message_id bit (72), /* ID of this message (same value for all copies) */ 6 33 3 access_class bit (72), /* AIM access class of this message */ 6 34 3 date_time_created fixed binary (71), /* date/time this message was composed */ 6 35 3 from pointer, /* -> address list of author(s) of the message */ 6 36 3 reply_to pointer, /* -> address list of recipients for reply (if not authors) */ 6 37 3 to pointer, /* -> address list of primary recipients */ 6 38 3 cc pointer, /* -> address list of secondary recipients */ 6 39 3 bcc pointer, /* -> address list of blind recipients */ 6 40 3 subject like message_text_field, /* subject of the message */ 6 41 3 reply_references pointer, /* -> list of messages for which this message is a reply */ 6 42 3 user_fields_list pointer, /* -> list of user-defined fields in this message */ 6 43 2 redistributions_list pointer, /* -> redistributions list for this message */ 6 44 2 body, 6 45 3 total_lines fixed binary (21), /* total # of lines in the body or -1 if indeterminate */ 6 46 3 pad bit (36), 6 47 3 body_sections (message_n_body_sections refer (message.n_body_sections)) like message_body_section; 6 48 6 49 dcl MESSAGE_VERSION_2 character (8) static options (constant) initial ("mlsmsg02"); 6 50 6 51 dcl message_subject character (message.header.subject.text_lth) unaligned based (message.header.subject.text_ptr); 6 52 6 53 dcl message_ptr pointer; 6 54 6 55 dcl (message_n_body_sections, message_trace_n_relays, message_n_redistributions, message_n_user_fields, 6 56 message_references_list_n_references) 6 57 fixed binary; /* for exclusive use of the mail system */ 6 58 6 59 /* Definition of a message envelope: describes when, by whom, and by what route the message was mailed */ 6 60 6 61 dcl 1 message_envelope aligned based (message_envelope_ptr), 6 62 2 date_time_mailed fixed binary (71), /* date/time this message was entered into the mail system */ 6 63 2 sender pointer, /* -> address of entity that mailed the message */ 6 64 2 trace pointer, /* -> message_trace describing how it got here */ 6 65 2 date_time_delivered fixed binary (71), /* date/time this message was delivered */ 6 66 2 delivered_by pointer, /* -> address of entity that delivered the message */ 6 67 2 acknowledge_to pointer; /* -> address of entity to receive ACK when message is read */ 6 68 6 69 dcl message_envelope_ptr pointer; 6 70 6 71 6 72 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the message envelope */ 6 73 6 74 dcl 1 message_envelope_parameter aligned based (message_envelope_parameter_ptr), 6 75 2 pad pointer, /* forces even word alignment */ 6 76 2 version character (8) unaligned, 6 77 2 envelope like message_envelope; 6 78 6 79 dcl MESSAGE_ENVELOPE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsenv02"); 6 80 6 81 dcl message_envelope_parameter_ptr pointer; 6 82 6 83 6 84 /* Definition of a message trace: describes the route and each relay operation by which a message was passed through the 6 85* networks to reach this recipient */ 6 86 6 87 dcl 1 message_trace aligned based (message_trace_ptr), 6 88 2 version character (8) unaligned, 6 89 2 reserved bit (144), /* ... exclusively for use by the mail system */ 6 90 2 implicit_route pointer, /* -> an address_route which defines the route it took */ 6 91 2 pad bit (36), 6 92 2 n_relays fixed binary, /* # of relay operations required to reach this site */ 6 93 2 relays (message_trace_n_relays refer (message_trace.n_relays)), 6 94 3 date_time_relayed fixed binary (71), /* ... when this relay operation took place */ 6 95 3 sending_host character (256) varying, /* ... the host which relayed the message */ 6 96 3 receiving_host character (256) varying, /* ... the host which received it */ 6 97 3 communications_media character (32) unaligned, /* ... medium over which relay took place (ARPA, Tymnet) */ 6 98 3 communications_protocol character (32) unaligned,/* ... low-level protocol used (TCP, X.25) */ 6 99 3 mail_protocol character (32) unaligned, /* ... mailer protocol used (SMTP, NBS) */ 6 100 3 relay_id bit (72), /* ... unique ID assigned by receiving system or ""b */ 6 101 3 relay_recipient pointer; /* ... -> address of recipient as given by sending system */ 6 102 6 103 dcl MESSAGE_TRACE_VERSION_2 character (8) static options (constant) initial ("mlstrc02"); 6 104 6 105 dcl message_trace_ptr pointer; 6 106 6 107 /* Definition of a message's redistributions list */ 6 108 6 109 dcl 1 message_redistributions_list aligned based (message.redistributions_list), 6 110 2 version character (8) unaligned, 6 111 2 reserved bit (144), /* ... exclusively for use by the mail system */ 6 112 2 pad bit (36), 6 113 2 n_redistributions fixed binary, /* # of redistributions */ 6 114 2 redistributions (message_n_redistributions refer (message_redistributions_list.n_redistributions)) 6 115 like message_redistribution; /* the redistributions: oldest first */ 6 116 6 117 dcl MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsrl002"); 6 118 6 119 6 120 /* Definition of a single redistribution (forwarding) of a message */ 6 121 6 122 dcl 1 message_redistribution aligned based (message_redistribution_ptr), 6 123 2 envelope like message_envelope, 6 124 2 header, 6 125 3 message_id bit (72), /* ID of this redistribution (same for all copies) */ 6 126 3 date_time_created fixed binary (71), /* date/time when this redistribution was made */ 6 127 3 from pointer, /* -> address list of authors of this redistribution */ 6 128 3 to pointer, /* -> address list of recipients of the redistribution */ 6 129 3 comment like message_text_field; /* optional comment associated with the redistribution */ 6 130 6 131 dcl message_redistribution_comment character (message_redistribution.comment.text_lth) unaligned 6 132 based (message_redistribution.comment.text_ptr); 6 133 6 134 dcl message_redistribution_ptr pointer; 6 135 6 136 6 137 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the redistributions of a message */ 6 138 6 139 dcl 1 message_redistribution_parameter aligned based (message_redistribution_parameter_ptr), 6 140 2 pad pointer, /* forces even word alignment */ 6 141 2 version character (8) unaligned, 6 142 2 redistribution like message_redistribution; 6 143 6 144 dcl MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsdist2"); 6 145 6 146 dcl message_redistribution_parameter_ptr pointer; 6 147 6 148 /* Definition of the list of user-defined fields in a message */ 6 149 6 150 dcl 1 message_user_fields_list aligned based (message.user_fields_list), 6 151 2 version character (8) unaligned, 6 152 2 reserved bit (144), /* ... exclusively for use by the mail system */ 6 153 2 pad bit (36), 6 154 2 n_user_fields fixed binary, /* # of user-defined fields in the message */ 6 155 2 user_fields (message_n_user_fields refer (message_user_fields_list.n_user_fields)) 6 156 like message_user_field; /* the actual user-defined fields */ 6 157 6 158 dcl MESSAGE_USER_FIELDS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsufl02"); 6 159 6 160 6 161 /* Definition of a user defined message header field */ 6 162 6 163 dcl 1 message_user_field aligned based (message_user_field_ptr), 6 164 2 header, 6 165 3 field_id bit (36) aligned, /* identifies the purpose of this field */ 6 166 3 field_type fixed binary, /* type of data contained in this field */ 6 167 2 field_type_variable bit (144); /* the actual data (see below) */ 6 168 6 169 dcl message_user_field_ptr pointer; 6 170 6 171 6 172 /* Defined types of user defined fields */ 6 173 6 174 dcl (MESSAGE_TEXT_USER_FIELD initial (1), /* content of the field is a text string */ 6 175 MESSAGE_ADDRESS_LIST_USER_FIELD initial (2), /* content of the field is an address list */ 6 176 MESSAGE_DATE_USER_FIELD initial (3), /* content of the field is a date/time */ 6 177 MESSAGE_INTEGER_USER_FIELD initial (4)) /* content of the filed is a fixed binary value */ 6 178 fixed binary static options (constant); 6 179 6 180 6 181 /* Structures used to access the data for the different types of user defined fields */ 6 182 6 183 dcl 1 message_text_user_field aligned based (message_user_field_ptr), 6 184 2 header like message_user_field.header, 6 185 2 text like message_text_field; /* the message text */ 6 186 6 187 dcl message_text_user_field_text character (message_text_user_field.text.text_lth) unaligned 6 188 based (message_text_user_field.text.text_ptr); 6 189 6 190 dcl 1 message_address_list_user_field aligned based (message_user_field_ptr), 6 191 2 header like message_user_field.header, 6 192 2 address_list_ptr pointer, /* -> the address list */ 6 193 2 pad bit (72); 6 194 6 195 dcl 1 message_date_user_field aligned based (message_user_field_ptr), 6 196 2 header like message_user_field.header, 6 197 2 date_time fixed binary (71), /* the clock reading */ 6 198 2 pad bit (72); 6 199 6 200 dcl 1 message_integer_user_field aligned based (message_user_field_ptr), 6 201 2 header like message_user_field.header, 6 202 2 value fixed binary (35), /* the integer value */ 6 203 2 pad bit (108); 6 204 6 205 6 206 /* Structure used in calls to mail_system_ entrypoints which manipulate the user-defined fields of a message */ 6 207 6 208 dcl 1 message_user_field_parameter aligned based (message_user_field_parameter_ptr), 6 209 2 pad pointer, /* forces even word alignment */ 6 210 2 version character (8) unaligned, 6 211 2 user_field like message_user_field; 6 212 6 213 dcl MESSAGE_USER_FIELD_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsudf02"); 6 214 6 215 dcl message_user_field_parameter_ptr pointer; 6 216 6 217 /* Definition of a list of message references used as the value of message header fields (eg: In-Reply-To) */ 6 218 6 219 dcl 1 message_references_list aligned based (message_references_list_ptr), 6 220 2 version character (8) unaligned, 6 221 2 reserved bit (144), /* ... exclusively for use by the mail system */ 6 222 2 pad bit (36), 6 223 2 n_references fixed binary, /* # of references in this list */ 6 224 2 references (message_references_list_n_references refer (message_references_list.n_references)) 6 225 like message_reference; /* the references themselves */ 6 226 6 227 dcl MESSAGE_REFERENCES_LIST_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 6 228 6 229 dcl message_references_list_ptr pointer; 6 230 6 231 6 232 /* Definition of a reference to another message */ 6 233 6 234 dcl 1 message_reference aligned based (message_reference_ptr), 6 235 2 message_id bit (72), /* ID of the other message */ 6 236 2 date_time_created fixed binary (71), /* date/time the other message was created */ 6 237 2 from pointer, /* -> address list of authors of the other message */ 6 238 2 subject like message_text_field; /* subject of the other message */ 6 239 6 240 dcl message_reference_subject character (message_reference.subject.text_lth) unaligned 6 241 based (message_reference.subject.text_ptr); 6 242 6 243 dcl message_reference_ptr pointer; 6 244 6 245 6 246 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate message references */ 6 247 6 248 dcl 1 message_reference_parameter aligned based (message_reference_parameter_ptr), 6 249 2 pad pointer, /* forces even word alignment */ 6 250 2 version character (8) unaligned, 6 251 2 reference like message_reference; 6 252 6 253 dcl MESSAGE_REFERENCE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 6 254 6 255 dcl message_reference_parameter_ptr pointer; 6 256 6 257 6 258 /* Definition of a text field in a message (Subject, Comment, or a user defined field) */ 6 259 6 260 dcl 1 message_text_field aligned based (message_text_field_ptr), 6 261 2 text_ptr pointer, /* -> the actual text */ 6 262 2 text_lth fixed binary (21), /* length of said text */ 6 263 2 flags, 6 264 3 multiline_text bit (1) unaligned, /* ON => the text of this field may span multiple lines; 6 265* OFF => the text will always be a single line */ 6 266 3 reserved bit (35) unaligned; /* for exclusive use of the mail system */ 6 267 6 268 dcl message_text_field_text character (message_text_field.text_lth) unaligned based (message_text_field.text_ptr); 6 269 6 270 dcl message_text_field_ptr pointer; 6 271 6 272 /* Definition of a section of the body of a message */ 6 273 6 274 dcl 1 message_body_section aligned based (message_body_section_ptr), 6 275 2 header, 6 276 3 section_type fixed binary, /* type of "text" stored in this section */ 6 277 3 section_n_lines fixed binary (21), /* # of lines in this section or -1 if indeterminate */ 6 278 2 section_type_variable bit (144); /* the actual data (see below) */ 6 279 6 280 dcl message_body_section_ptr pointer; 6 281 6 282 6 283 /* Defined types of message body sections */ 6 284 6 285 dcl (MESSAGE_PREFORMATTED_BODY_SECTION initial (1), /* text formatted by the authors/sender */ 6 286 MESSAGE_BIT_STRING_BODY_SECTION initial (2)) /* arbitrary bit string */ 6 287 fixed binary static options (constant); 6 288 6 289 6 290 /* Structures used to access the data for the different types of message body sections */ 6 291 6 292 dcl 1 message_preformatted_body_section aligned based (message_body_section_ptr), 6 293 2 header like message_body_section.header, 6 294 2 text_ptr pointer, /* -> the text */ 6 295 2 text_lth fixed binary (21), /* length of said text in characters */ 6 296 2 reserved bit (36); /* for exclusive use of the mail system */ 6 297 6 298 dcl message_preformatted_body_section_text character (message_preformatted_body_section.text_lth) unaligned 6 299 based (message_preformatted_body_section.text_ptr); 6 300 6 301 dcl 1 message_bit_string_body_section aligned based (message_body_section_ptr), 6 302 2 header like message_body_section.header, 6 303 2 bit_string_ptr pointer, /* -> the bit string */ 6 304 2 bit_string_lth fixed binary (24), /* length of said bit string in bits (obviously) */ 6 305 2 reserved bit (36); /* for exclusive use of the mail system */ 6 306 6 307 dcl message_bit_string_body_section_bit_string bit (message_bit_string_body_section.bit_string_lth) unaligned 6 308 based (message_bit_string_body_section.bit_string_ptr); 6 309 6 310 6 311 /* Structure used in calls to mail_system_ entrypoints which manipulate the sections of a message's body */ 6 312 6 313 dcl 1 message_body_section_parameter aligned based (message_body_section_parameter_ptr), 6 314 2 pad pointer, /* forces even word alignment */ 6 315 2 version character (8) unaligned, 6 316 2 section like message_body_section; 6 317 6 318 dcl MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsmbs02"); 6 319 6 320 dcl message_body_section_parameter_ptr pointer; 6 321 6 322 /* END INCLUDE FILE ... mlsys_message.incl.pl1 */ 397 398 7 1 /* BEGIN INCLUDE FILE ... mlsys_address_list.incl.pl1 */ 7 2 /* Created: June 1983 by G. Palter */ 7 3 7 4 /* Definition of an address list -- a collection of addresses used as the value of certain message fields, etc. */ 7 5 7 6 dcl 1 address_list aligned based (address_list_ptr), 7 7 2 version character (8) unaligned, 7 8 2 reserved bit (144), /* ... exclusively for use by the mail system */ 7 9 2 n_addresses fixed binary, /* # of address in this list */ 7 10 2 addresses (address_list_n_addresses refer (address_list.n_addresses)) pointer; 7 11 7 12 dcl ADDRESS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsals02"); 7 13 7 14 dcl address_list_ptr pointer; 7 15 7 16 dcl address_list_n_addresses fixed binary; /* reserved exclusively for use by the mail system */ 7 17 7 18 /* END INCLUDE FILE ... mlsys_address_list.incl.pl1 */ 399 400 8 1 /* BEGIN INCLUDE FILE ... mlsys_field_names.incl.pl1 */ 8 2 /* Created: June 1983 by G. Palter */ 8 3 8 4 /* Standard names for all message envelope, header, and redistributions list fields supported by the mail system */ 8 5 8 6 dcl (ACCESS_CLASS_FIELDNAME initial ("Access-Class"), 8 7 ACKNOWLEDGE_TO_FIELDNAME initial ("Acknowledge-To"), 8 8 BCC_FIELDNAME initial ("bcc"), 8 9 CC_FIELDNAME initial ("cc"), 8 10 DATE_TIME_CREATED_FIELDNAME initial ("Date"), 8 11 DATE_TIME_DELIVERED_FIELDNAME initial ("Delivery-Date"), 8 12 DATE_TIME_MAILED_FIELDNAME initial ("Posted-Date"), 8 13 DELIVERED_BY_FIELDNAME initial ("Delivery-By"), 8 14 FROM_FIELDNAME initial ("From"), 8 15 IMPLICIT_ROUTE_FIELDNAME initial ("Route"), 8 16 MESSAGE_ID_FIELDNAME initial ("Message-ID"), 8 17 RELAY_FIELDNAME initial ("Relayed"), 8 18 REPLY_REFERENCES_FIELDNAME initial ("In-Reply-To"), 8 19 REPLY_TO_FIELDNAME initial ("Reply-To"), 8 20 SENDER_FIELDNAME initial ("Sender"), 8 21 SUBJECT_FIELDNAME initial ("Subject"), 8 22 TO_FIELDNAME initial ("To"), 8 23 8 24 8 25 /* Prefix to apply to a field name to produce the field name of the equivalent field in the redistributions list. Ie: 8 26* 8 27* call mlsys_utils_$print_address_field 8 28* (REDISTRIBUTED_PREFIX || FROM_FIELDNAME, ...) */ 8 29 8 30 REDISTRIBUTED_PREFIX initial ("Redistributed-"), 8 31 8 32 8 33 /* Fields in a redistribution which do not have a corresponding non-redistributed field */ 8 34 8 35 REDISTRIBUTED_COMMENT_FIELDNAME initial ("Redistributed-Comment")) 8 36 8 37 character (32) varying static options (constant); 8 38 8 39 8 40 /* END INCLUDE FILE ... mlsys_field_names.incl.pl1 */ 401 402 403 end sdm_file_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/22/86 1010.8 sdm_file_requests_.pl1 >spec>install>1059>sdm_file_requests_.pl1 387 1 10/27/83 2104.2 sdm_invocation.incl.pl1 >ldd>include>sdm_invocation.incl.pl1 389 2 10/27/83 2104.3 sdm_data.incl.pl1 >ldd>include>sdm_data.incl.pl1 391 3 10/27/83 2104.2 send_mail_options.incl.pl1 >ldd>include>send_mail_options.incl.pl1 393 4 10/27/83 2104.3 emf_writing_modes.incl.pl1 >ldd>include>emf_writing_modes.incl.pl1 395 5 10/27/83 2104.2 mlsys_format_options.incl.pl1 >ldd>include>mlsys_format_options.incl.pl1 397 6 05/22/86 1005.9 mlsys_message.incl.pl1 >spec>install>1059>mlsys_message.incl.pl1 399 7 10/27/83 2104.2 mlsys_address_list.incl.pl1 >ldd>include>mlsys_address_list.incl.pl1 401 8 10/27/83 2104.2 mlsys_field_names.incl.pl1 >ldd>include>mlsys_field_names.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. ACKNOWLEDGE_TO_FIELDNAME 000022 constant varying char(32) initial dcl 8-6 set ref 274* APPEND_FILE constant fixed bin(17,0) initial dcl 4-6 ref 121 128 164 DATE_TIME_CREATED_FIELDNAME 000011 constant varying char(32) initial dcl 8-6 set ref 283* DEFAULT_FORMATTING_MODE constant fixed bin(17,0) initial dcl 5-22 ref 263 FORMAT_MESSAGE_OPTIONS_VERSION_1 000034 constant char(8) initial unaligned dcl 5-15 ref 261 FROM_FIELDNAME 000000 constant varying char(32) initial dcl 8-6 set ref 291* MESSAGE_PREFORMATTED_BODY_SECTION constant fixed bin(17,0) initial dcl 6-285 ref 374 PREFACE_FILE constant fixed bin(17,0) initial dcl 4-6 ref 177 PROCESSED_MESSAGE constant fixed bin(17,0) initial dcl 1-47 ref 314 P_sci_ptr parameter pointer dcl 32 ref 24 110 159 172 214 P_sdm_invocation_ptr parameter pointer dcl 33 ref 24 110 159 172 217 QUERY_TO_CREATE_FILE constant fixed bin(17,0) initial dcl 4-6 ref 182 SILENTLY_CREATE_FILE constant fixed bin(17,0) initial dcl 4-6 ref 120 TRUNCATE_FILE constant fixed bin(17,0) initial dcl 4-6 ref 126 acknowledge 15(01) based bit(1) level 3 packed unaligned dcl 1-6 ref 273 addr builtin function dcl 105 ref 299 299 373 address_list based structure level 1 dcl 7-6 addresses 10 based pointer array level 2 dcl 7-6 set ref 274* argument based char unaligned dcl 43 set ref 126 126 126 128 130* 137* 138* 192 192* 194* 195* argument_idx 000106 automatic fixed bin(17,0) dcl 46 set ref 123* 124* argument_lth 000104 automatic fixed bin(21,0) dcl 45 set ref 124* 126 126 126 128 130 130 137 137 138 138 190* 192 192 192 194 194 195 195 argument_ptr 000102 automatic pointer dcl 44 set ref 124* 126 126 126 128 130 137 138 190* 192 192 194 195 bit_string_lth 4 based fixed bin(24,0) level 2 dcl 6-301 ref 378 body 62 based structure level 2 dcl 6-15 body_sections 64 based structure array level 3 dcl 6-15 set ref 373 check_star_name_$entry 000030 constant entry external dcl 75 ref 139 197 cleanup 000214 stack reference condition dcl 103 ref 116 code 000212 automatic fixed bin(35,0) dcl 65 set ref 137* 138 138* 139* 140 140 140 144* 194* 195 195* 197* 198 198 198 201* 252* 253 253 256* 274* 277 283* 285 291* 293 299* 301 310* 312 312* cu_$arg_list_ptr 000032 constant entry external dcl 76 ref 327 327 date_time_body_modified 12 based fixed bin(71,0) level 3 dcl 1-6 set ref 283* emf_writing_util_$close 000034 constant entry external dcl 77 ref 235 emf_writing_util_$open 000036 constant entry external dcl 78 ref 252 emf_writing_util_$write 000040 constant entry external dcl 80 ref 310 envelope_formatting_mode 3 000113 automatic fixed bin(17,0) level 2 dcl 53 set ref 263* error_table_$action_not_performed 000012 external static fixed bin(35,0) dcl 70 ref 253 error_table_$badopt 000014 external static fixed bin(35,0) dcl 70 set ref 130* 192* error_table_$noarg 000016 external static fixed bin(35,0) dcl 70 set ref 148* error_table_$nostars 000020 external static fixed bin(35,0) dcl 70 set ref 140* 198* error_table_$too_many_args 000022 external static fixed bin(35,0) dcl 70 set ref 132* 188* expand_pathname_$add_suffix 000042 constant entry external dcl 81 ref 137 194 file_creation_mode 000207 automatic fixed bin(17,0) dcl 60 set ref 120* 182* 252* file_dirname 000122 automatic char(168) unaligned dcl 55 set ref 137* 140* 140* 144* 144* 194* 198* 198* 201* 201* 252* 256* 256* 277* 277* 285* 285* 293* 293* 301* 301* 312* 312* 333* 333* file_ename 000174 automatic char(32) unaligned dcl 56 set ref 137* 139* 140* 140* 144* 144* 194* 197* 198* 198* 201* 201* 252* 256* 256* 277* 277* 285* 285* 293* 293* 301* 301* 312* 312* 333* 333* file_insertion_mode 000210 automatic fixed bin(17,0) dcl 61 set ref 121* 126* 128* 164* 177* 310* file_ptr 000204 automatic pointer dcl 57 set ref 220* 235 235* 252* 310* file_uid 000206 automatic bit(36) dcl 58 set ref 235* 252* 310* fill_width 14 based fixed bin(17,0) level 2 dcl 1-6 ref 262 flags 15 based structure level 2 dcl 1-6 format_message_options based structure level 1 dcl 5-6 from 36 based pointer level 3 dcl 6-15 set ref 290* have_filename 000211 automatic bit(1) dcl 63 set ref 118* 132 136* 148 header based structure level 2 in structure "message_body_section" dcl 6-274 in procedure "sdm_file_requests_" header 4 based structure level 3 in structure "message_body_section_parameter" dcl 6-313 in procedure "sdm_file_requests_" header 64 based structure array level 4 in structure "message" dcl 6-15 in procedure "sdm_file_requests_" header based structure level 2 in structure "message_user_field" dcl 6-163 in procedure "sdm_file_requests_" header 10 based structure array level 3 in structure "message_user_fields_list" dcl 6-150 in procedure "sdm_file_requests_" header 4 based structure level 3 in structure "message_user_field_parameter" dcl 6-208 in procedure "sdm_file_requests_" header 30 based structure level 2 in structure "message" dcl 6-15 in procedure "sdm_file_requests_" header_formatting_mode 4 000113 automatic fixed bin(17,0) level 2 dcl 53 set ref 263* idx 000262 automatic fixed bin(17,0) dcl 370 set ref 372* 373* include_body 6 000113 automatic bit(1) level 2 dcl 53 set ref 265* index builtin function dcl 105 ref 126 192 internal_buffer 000100 automatic char(256) unaligned dcl 324 set ref 327* 337 internal_buffer_used 000200 automatic fixed bin(21,0) dcl 325 set ref 327* 333 337 337 341 ioa_$general_rs 000044 constant entry external dcl 82 ref 327 length builtin function dcl 105 ref 274 274 283 283 291 291 299 299 330 333 line_length 2 000113 automatic fixed bin(17,0) level 2 dcl 53 set ref 262* 274* 283* 291* local_fmo 000113 automatic structure level 1 dcl 53 set ref 299 299 max builtin function dcl 105 ref 262 message based structure level 1 dcl 6-15 message_bit_string_body_section based structure level 1 dcl 6-301 message_body_section based structure level 1 dcl 6-274 message_body_section_ptr 000226 automatic pointer dcl 6-280 set ref 373* 374 374 378 message_buffer based char unaligned dcl 48 ref 274 274 283 283 291 291 299 299 330 333 333 337 337 message_buffer_ptr 000110 automatic pointer dcl 50 set ref 220* 233 233* 267* 274* 274 274 283* 283 283 291* 291 291 299* 299 299 310 330 333 337 message_envelope based structure level 1 dcl 6-61 message_info 6 based structure level 2 dcl 1-6 message_preformatted_body_section based structure level 1 dcl 6-292 message_ptr 000224 automatic pointer dcl 6-53 in procedure "sdm_file_requests_" set ref 218* 270 270 270 290 299* 372 373 message_ptr 6 based pointer level 3 in structure "sdm_invocation" dcl 1-6 in procedure "sdm_file_requests_" ref 218 message_redistribution based structure level 1 dcl 6-122 message_reference based structure level 1 dcl 6-234 message_state 10 based fixed bin(17,0) level 3 dcl 1-6 set ref 314* message_text based char unaligned dcl 49 set ref 310* message_text_field based structure level 1 dcl 6-260 message_text_lth 000112 automatic fixed bin(21,0) dcl 51 set ref 268* 274* 283* 291* 299* 310 310 330 333 337 341* 341 message_user_field based structure level 1 dcl 6-163 min builtin function dcl 105 ref 262 mlsys_et_$empty_message 000024 external static fixed bin(35,0) dcl 70 set ref 246* mlsys_et_$message_too_large 000026 external static fixed bin(35,0) dcl 70 set ref 277* 285* 293* 301* 333* mlsys_utils_$format_address_field 000046 constant entry external dcl 84 ref 274 mlsys_utils_$format_address_list_field 000050 constant entry external dcl 87 ref 291 mlsys_utils_$format_date_time_field 000052 constant entry external dcl 90 ref 283 mlsys_utils_$format_message 000054 constant entry external dcl 93 ref 299 n_addresses 6 based fixed bin(17,0) level 2 dcl 7-6 ref 359 n_arguments 000105 automatic fixed bin(17,0) dcl 46 set ref 114 123 185 185 215* n_body_sections 11 based fixed bin(17,0) level 2 dcl 6-15 ref 372 null builtin function dcl 105 ref 220 233 235 356 p_address_list_ptr parameter pointer dcl 354 ref 351 356 359 pathname_ 000056 constant entry external dcl 95 ref 140 140 144 144 198 198 201 201 256 256 277 277 285 285 293 293 301 301 312 312 333 333 redistributions_list_formatting_mode 5 000113 automatic fixed bin(17,0) level 2 dcl 53 set ref 263* rest_of_message_buffer defined char unaligned dcl 330 set ref 333 337* sci_ptr 000100 automatic pointer dcl 38 in procedure "sdm_file_requests_" set ref 114* 124* 130* 132* 138* 140* 144* 148* 185* 185* 185* 188* 190* 192* 195* 198* 201* 214* 215* 233* 246* 252* 253* 256* 277* 285* 293* 301* 312* 333* sci_ptr 2 based pointer level 2 in structure "sdm_invocation" dcl 1-6 in procedure "sdm_file_requests_" set ref 267* sdm_data_$default_from_field 000074 external static pointer dcl 2-27 set ref 274 291* sdm_invocation based structure level 1 dcl 1-6 sdm_invocation_ptr 000222 automatic pointer dcl 1-38 set ref 217* 218 262 267 273 283 314 section_type based fixed bin(17,0) level 3 dcl 6-274 ref 374 send_mail_options based structure level 1 dcl 3-15 ssu_$abort_line 000060 constant entry external dcl 96 ref 114 130 132 138 140 144 148 185 188 192 195 198 201 246 253 256 277 285 293 301 312 333 ssu_$arg_count 000062 constant entry external dcl 97 ref 215 ssu_$arg_ptr 000064 constant entry external dcl 98 ref 124 190 ssu_$get_request_name 000066 constant entry external dcl 99 ref 185 185 ssu_$get_temp_segment 000070 constant entry external dcl 100 ref 267 ssu_$release_temp_segment 000072 constant entry external dcl 101 ref 233 substr builtin function dcl 105 set ref 337* 337 sys_info$max_seg_size 000010 external static fixed bin(19,0) dcl 67 ref 274 274 283 283 291 291 299 299 330 333 337 text_lth 4 based fixed bin(21,0) level 2 dcl 6-292 ref 374 total_lines 62 based fixed bin(21,0) level 3 dcl 6-15 set ref 270 270* 270 version 000113 automatic char(8) level 2 packed unaligned dcl 53 set ref 261* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCESS_CLASS_FIELDNAME internal static varying char(32) initial dcl 8-6 ADDRESS_LIST_VERSION_2 internal static char(8) initial unaligned dcl 7-12 BCC_FIELDNAME internal static varying char(32) initial dcl 8-6 BRIEF_FORMATTING_MODE internal static fixed bin(17,0) initial dcl 5-22 CC_FIELDNAME internal static varying char(32) initial dcl 8-6 CREATE_AND_ANNOUNCE_FILE internal static fixed bin(17,0) initial dcl 4-6 DATE_TIME_DELIVERED_FIELDNAME internal static varying char(32) initial dcl 8-6 DATE_TIME_MAILED_FIELDNAME internal static varying char(32) initial dcl 8-6 DEFAULT_FILL internal static bit(2) initial unaligned dcl 3-64 DEFAULT_PROMPT internal static bit(2) initial unaligned dcl 3-56 DEFAULT_REQUEST_LOOP internal static bit(2) initial unaligned dcl 3-72 DELIVERED_BY_FIELDNAME internal static varying char(32) initial dcl 8-6 DONT_CREATE_FILE internal static fixed bin(17,0) initial dcl 4-6 FILL internal static bit(2) initial unaligned dcl 3-64 IMPLICIT_ROUTE_FIELDNAME internal static varying char(32) initial dcl 8-6 LONG_FORMATTING_MODE internal static fixed bin(17,0) initial dcl 5-22 MESSAGE_ADDRESS_LIST_USER_FIELD internal static fixed bin(17,0) initial dcl 6-174 MESSAGE_BIT_STRING_BODY_SECTION internal static fixed bin(17,0) initial dcl 6-285 MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 internal static char(8) initial unaligned dcl 6-318 MESSAGE_DATE_USER_FIELD internal static fixed bin(17,0) initial dcl 6-174 MESSAGE_ENVELOPE_PARAMETER_VERSION_2 internal static char(8) initial unaligned dcl 6-79 MESSAGE_ID_FIELDNAME internal static varying char(32) initial dcl 8-6 MESSAGE_INTEGER_USER_FIELD internal static fixed bin(17,0) initial dcl 6-174 MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 internal static char(8) initial unaligned dcl 6-117 MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 internal static char(8) initial unaligned dcl 6-144 MESSAGE_REFERENCES_LIST_VERSION_2 internal static char(8) initial unaligned dcl 6-227 MESSAGE_REFERENCE_PARAMETER_VERSION_2 internal static char(8) initial unaligned dcl 6-253 MESSAGE_TEXT_USER_FIELD internal static fixed bin(17,0) initial dcl 6-174 MESSAGE_TRACE_VERSION_2 internal static char(8) initial unaligned dcl 6-103 MESSAGE_USER_FIELDS_LIST_VERSION_2 internal static char(8) initial unaligned dcl 6-158 MESSAGE_USER_FIELD_PARAMETER_VERSION_2 internal static char(8) initial unaligned dcl 6-213 MESSAGE_VERSION_2 internal static char(8) initial unaligned dcl 6-49 MODIFIED_MESSAGE internal static fixed bin(17,0) initial dcl 1-47 NONE_FORMATTING_MODE internal static fixed bin(17,0) initial dcl 5-22 NO_FILL internal static bit(2) initial unaligned dcl 3-64 NO_PROMPT internal static bit(2) initial unaligned dcl 3-56 NO_REQUEST_LOOP internal static bit(2) initial unaligned dcl 3-72 REDISTRIBUTED_COMMENT_FIELDNAME internal static varying char(32) initial dcl 8-6 REDISTRIBUTED_PREFIX internal static varying char(32) initial dcl 8-6 RELAY_FIELDNAME internal static varying char(32) initial dcl 8-6 REPLY_REFERENCES_FIELDNAME internal static varying char(32) initial dcl 8-6 REPLY_TO_FIELDNAME internal static varying char(32) initial dcl 8-6 REQUEST_LOOP internal static bit(2) initial unaligned dcl 3-72 SDM_INVOCATION internal static char(8) initial unaligned dcl 1-36 SENDER_FIELDNAME internal static varying char(32) initial dcl 8-6 SEND_MAIL_OPTIONS_VERSION_6 internal static char(8) initial unaligned dcl 3-51 SUBJECT_FIELDNAME internal static varying char(32) initial dcl 8-6 TO_FIELDNAME internal static varying char(32) initial dcl 8-6 UNPROCESSED_MESSAGE internal static fixed bin(17,0) initial dcl 1-47 USE_PROMPT_STRING internal static bit(2) initial unaligned dcl 3-56 address_list_n_addresses automatic fixed bin(17,0) dcl 7-16 address_list_ptr automatic pointer dcl 7-14 format_message_options_ptr automatic pointer dcl 5-17 message_address_list_user_field based structure level 1 dcl 6-190 message_bit_string_body_section_bit_string based bit unaligned dcl 6-307 message_body_section_parameter based structure level 1 dcl 6-313 message_body_section_parameter_ptr automatic pointer dcl 6-320 message_date_user_field based structure level 1 dcl 6-195 message_envelope_parameter based structure level 1 dcl 6-74 message_envelope_parameter_ptr automatic pointer dcl 6-81 message_envelope_ptr automatic pointer dcl 6-69 message_integer_user_field based structure level 1 dcl 6-200 message_n_body_sections automatic fixed bin(17,0) dcl 6-55 message_n_redistributions automatic fixed bin(17,0) dcl 6-55 message_n_user_fields automatic fixed bin(17,0) dcl 6-55 message_preformatted_body_section_text based char unaligned dcl 6-298 message_redistribution_comment based char unaligned dcl 6-131 message_redistribution_parameter based structure level 1 dcl 6-139 message_redistribution_parameter_ptr automatic pointer dcl 6-146 message_redistribution_ptr automatic pointer dcl 6-134 message_redistributions_list based structure level 1 dcl 6-109 message_reference_parameter based structure level 1 dcl 6-248 message_reference_parameter_ptr automatic pointer dcl 6-255 message_reference_ptr automatic pointer dcl 6-243 message_reference_subject based char unaligned dcl 6-240 message_references_list based structure level 1 dcl 6-219 message_references_list_n_references automatic fixed bin(17,0) dcl 6-55 message_references_list_ptr automatic pointer dcl 6-229 message_subject based char unaligned dcl 6-51 message_text_field_ptr automatic pointer dcl 6-270 message_text_field_text based char unaligned dcl 6-268 message_text_user_field based structure level 1 dcl 6-183 message_text_user_field_text based char unaligned dcl 6-187 message_trace based structure level 1 dcl 6-87 message_trace_n_relays automatic fixed bin(17,0) dcl 6-55 message_trace_ptr automatic pointer dcl 6-105 message_user_field_parameter based structure level 1 dcl 6-208 message_user_field_parameter_ptr automatic pointer dcl 6-215 message_user_field_ptr automatic pointer dcl 6-169 message_user_fields_list based structure level 1 dcl 6-150 sdm_area based area(1024) dcl 1-40 sdm_data_$default_options external static structure level 1 dcl 2-19 sdm_data_$ec_search_list external static char(32) unaligned dcl 2-17 sdm_data_$ec_suffix external static char(32) unaligned dcl 2-16 sdm_data_$first_invocation external static bit(1) dcl 2-25 sdm_data_$info_directory external static char(168) unaligned dcl 2-11 sdm_data_$special_message external static varying char(256) dcl 2-13 sdm_data_$version external static varying char(32) dcl 2-9 send_mail_options_ptr automatic pointer dcl 3-49 NAMES DECLARED BY EXPLICIT CONTEXT. APPEND_PREFACE_COMMON 000762 constant label dcl 182 ref 166 add_to_buffer 002645 constant entry internal dcl 321 ref 270 280 288 296 305 append_request 000737 constant entry external dcl 159 cleanup_request 001441 constant entry internal dcl 230 ref 116 152 205 is_empty_list 003023 constant entry internal dcl 351 ref 290 is_empty_message 003042 constant entry internal dcl 367 ref 246 preface_request 000752 constant entry external dcl 172 process_message 001505 constant entry internal dcl 243 ref 150 203 sdm_file_requests_ 000175 constant entry external dcl 24 setup_request 001410 constant entry internal dcl 211 ref 113 162 175 write_request 000205 constant entry external dcl 110 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3546 3644 3113 3556 Length 4304 3113 76 424 433 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME sdm_file_requests_ 414 external procedure is an external procedure. on unit on line 116 64 on unit setup_request internal procedure shares stack frame of external procedure sdm_file_requests_. cleanup_request 80 internal procedure is called by several nonquick procedures. process_message internal procedure shares stack frame of external procedure sdm_file_requests_. add_to_buffer 256 internal procedure is declared options(variable). begin block on line 329 begin block shares stack frame of internal procedure add_to_buffer. is_empty_list internal procedure shares stack frame of external procedure sdm_file_requests_. is_empty_message internal procedure shares stack frame of external procedure sdm_file_requests_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME add_to_buffer 000100 internal_buffer add_to_buffer 000200 internal_buffer_used add_to_buffer sdm_file_requests_ 000100 sci_ptr sdm_file_requests_ 000102 argument_ptr sdm_file_requests_ 000104 argument_lth sdm_file_requests_ 000105 n_arguments sdm_file_requests_ 000106 argument_idx sdm_file_requests_ 000110 message_buffer_ptr sdm_file_requests_ 000112 message_text_lth sdm_file_requests_ 000113 local_fmo sdm_file_requests_ 000122 file_dirname sdm_file_requests_ 000174 file_ename sdm_file_requests_ 000204 file_ptr sdm_file_requests_ 000206 file_uid sdm_file_requests_ 000207 file_creation_mode sdm_file_requests_ 000210 file_insertion_mode sdm_file_requests_ 000211 have_filename sdm_file_requests_ 000212 code sdm_file_requests_ 000222 sdm_invocation_ptr sdm_file_requests_ 000224 message_ptr sdm_file_requests_ 000226 message_body_section_ptr sdm_file_requests_ 000262 idx is_empty_message THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_$entry cu_$arg_list_ptr emf_writing_util_$close emf_writing_util_$open emf_writing_util_$write expand_pathname_$add_suffix ioa_$general_rs mlsys_utils_$format_address_field mlsys_utils_$format_address_list_field mlsys_utils_$format_date_time_field mlsys_utils_$format_message pathname_ ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$get_request_name ssu_$get_temp_segment ssu_$release_temp_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$badopt error_table_$noarg error_table_$nostars error_table_$too_many_args mlsys_et_$empty_message mlsys_et_$message_too_large sdm_data_$default_from_field sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 24 000171 27 000202 110 000203 113 000212 114 000213 116 000242 118 000264 120 000265 121 000267 123 000271 124 000301 126 000316 128 000345 130 000354 132 000407 136 000436 137 000440 138 000476 139 000532 140 000547 144 000625 146 000674 148 000676 150 000727 152 000730 154 000734 159 000735 162 000744 164 000745 166 000747 172 000750 175 000757 177 000760 182 000762 185 000764 188 001035 190 001061 192 001100 194 001146 195 001204 197 001240 198 001255 201 001333 203 001402 205 001403 207 001407 211 001410 214 001411 215 001415 217 001426 218 001432 220 001434 222 001437 230 001440 233 001446 235 001463 237 001504 243 001505 246 001506 252 001530 253 001570 256 001613 261 001661 262 001664 263 001675 265 001701 267 001703 268 001727 270 001730 273 001766 274 001772 277 002041 280 002113 283 002123 285 002175 288 002247 290 002257 291 002273 293 002335 296 002407 299 002417 301 002445 305 002517 310 002533 312 002567 314 002640 316 002643 321 002644 327 002652 330 002727 333 002735 337 003007 341 003021 343 003022 351 003023 356 003025 359 003034 367 003042 372 003044 373 003055 374 003061 377 003071 378 003072 380 003077 383 003101 ----------------------------------------------------------- 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