COMPILATION LISTING OF SEGMENT rdm_file_requests_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1126.96_Tue_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(89-04-07,Lee), approve(89-05-10,MCR8104), 16* audit(89-07-18,LZimmerman), install(89-10-02,MR12.3-1079): 17* phx19099, phx15783, Mail 457 - passed additional message type to call to 18* rdm_message_mark_mgr_$mark_current_message to catch use of "-odl" with the 19* current message. 20* 2) change(89-04-11,Lee), approve(89-05-10,MCR8104), 21* audit(89-07-18,LZimmerman), install(89-10-02,MR12.3-1079): 22* phx18564, phx17540, phx17353, Mail 446 - the new entry set_new_current_msg 23* in rdm_mailbox_interface_ is now called when the current message is 24* changed to guarantee that the new current message is never a deleted 25* message; reformatting. 26* END HISTORY COMMENTS */ 27 28 29 /* format: off */ 30 31 /* The read_mail write, append, and preface requests */ 32 33 /* Created: October 1983 by G. Palter from sdm_file_requests_ */ 34 35 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 36 37 38 rdm_file_requests_: 39 procedure (P_sci_ptr, P_rdm_invocation_ptr); 40 41 return; /* not an entrypoint */ 42 43 44 /* Parameters */ 45 46 dcl P_sci_ptr pointer parameter; 47 dcl P_rdm_invocation_ptr pointer parameter; 48 49 50 /* Local copies of parameters */ 51 52 dcl sci_ptr pointer; 53 54 55 /* Remaining declarations */ 56 57 dcl message_specifier_idxs (n_message_specifiers_allocated) fixed binary based (message_specifier_idxs_ptr); 58 dcl message_specifier_idxs_ptr pointer; 59 dcl (n_message_specifiers_allocated, n_message_specifiers) fixed binary; 60 dcl message_type fixed binary; /* all/only deleted/only non-deleted */ 61 62 dcl argument character (argument_lth) unaligned based (argument_ptr); 63 dcl argument_ptr pointer; 64 dcl argument_lth fixed binary (21); 65 dcl (n_arguments, argument_idx) fixed binary; 66 67 dcl message_buffer character (4 * sys_info$max_seg_size) unaligned based (message_buffer_ptr); 68 dcl message_text character (message_text_lth) unaligned based (message_buffer_ptr); 69 dcl message_buffer_ptr pointer; 70 dcl message_text_lth fixed binary (21); 71 72 dcl 1 local_fmo aligned like format_message_options; 73 74 dcl saved_rdm_sci_ptr pointer; 75 dcl is_original_request bit (1) aligned; /* ON => invoked from send_mail within a reply request */ 76 77 dcl (delete_after_processing, reverse_processing) bit (1) aligned; 78 79 dcl file_dirname character (168); 80 dcl file_ename character (32); 81 dcl file_ptr pointer; 82 dcl file_uid bit (36) aligned; 83 84 dcl file_creation_mode fixed binary; 85 dcl file_insertion_mode fixed binary; 86 87 dcl have_filename bit (1) aligned; 88 89 dcl code fixed binary (35); 90 91 dcl sys_info$max_seg_size fixed binary (19) external; 92 93 /* format: off */ 94 dcl (error_table_$action_not_performed, error_table_$badopt, error_table_$nostars, mlsys_et_$message_too_large, 95 ssu_et_$unimplemented_request) 96 fixed binary (35) external; 97 /* format: on */ 98 99 dcl check_star_name_$entry entry (character (*), fixed binary (35)); 100 dcl cu_$arg_list_ptr entry () returns (pointer); 101 dcl cu_$grow_stack_frame entry (fixed binary (19), pointer, fixed binary (35)); 102 dcl emf_writing_util_$close entry (pointer, bit (36) aligned, fixed binary (35)); 103 dcl emf_writing_util_$open 104 entry (pointer, character (*), character (*), fixed binary, pointer, bit (36) aligned, fixed binary (35)); 105 dcl emf_writing_util_$write entry (pointer, bit (36) aligned, character (*), fixed binary, fixed binary (35)); 106 dcl expand_pathname_$add_suffix entry (character (*), character (*), character (*), character (*), fixed binary (35)); 107 dcl ioa_$general_rs 108 entry (pointer, fixed binary, fixed binary, character (*), fixed binary (21), bit (1) aligned, bit (1) aligned); 109 dcl mlsys_utils_$format_message 110 entry (pointer, pointer, pointer, fixed binary (21), fixed binary (21), fixed binary (35)); 111 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 112 dcl rdm_mailbox_interface_$delete_messages entry (pointer, bit (1) aligned); 113 dcl rdm_mailbox_interface_$mark_processed_and_acknowledge entry (pointer, fixed binary); 114 dcl rdm_mailbox_interface_$read_message entry (pointer, fixed binary, pointer, fixed binary (35)); 115 dcl rdm_mailbox_interface_$set_new_current_msg entry (ptr, fixed binary, fixed binary); 116 dcl rdm_message_mark_mgr_$clear_marked_messages entry (pointer); 117 dcl rdm_message_mark_mgr_$mark_current_message entry (pointer, fixed binary); 118 dcl rdm_message_mark_mgr_$mark_messages 119 entry (pointer, pointer, fixed binary (21), fixed binary, bit (*), fixed binary (35)); 120 dcl rdm_message_mark_mgr_$remark_original_messages entry (pointer); 121 dcl rdm_message_mark_mgr_$validate_message_specifier 122 entry (pointer, pointer, fixed binary (21), fixed binary, bit (*), fixed binary (35)); 123 dcl ssu_$abort_line entry () options (variable); 124 dcl ssu_$arg_count entry (pointer, fixed binary); 125 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 126 dcl ssu_$get_request_name entry (pointer) returns (character (32)); 127 dcl ssu_$get_temp_segment entry (pointer, character (*), pointer); 128 dcl ssu_$release_temp_segment entry (pointer, pointer); 129 130 dcl cleanup condition; 131 132 dcl (addr, index, length, null, size, substr) builtin; 133 134 /* The "write" request: adds the printed representation of the specified messages to the end of the specified file which 135* is created if necessary without asking the user's permission */ 136 137 write_request: 138 entry (P_sci_ptr, P_rdm_invocation_ptr); 139 140 call setup_request ("1"b); /* may be used as a send_mail original request */ 141 142 saved_rdm_sci_ptr = rdm_invocation.sci_ptr; /* for cleanup handler */ 143 144 on condition (cleanup) 145 begin; 146 call cleanup_request (); /* common to all requests */ 147 rdm_invocation.sci_ptr = saved_rdm_sci_ptr; 148 end; 149 150 rdm_invocation.sci_ptr = P_sci_ptr; /* be sure to not abort the reply request by accident */ 151 152 file_creation_mode = SILENTLY_CREATE_FILE; 153 file_insertion_mode = APPEND_FILE; /* default is "-extend" */ 154 155 call process_arguments ("1"b); /* allow -extend/-truncate */ 156 157 call mark_appropriate_messages (); 158 159 call process_messages (); /* do the actual work */ 160 161 call cleanup_request (); 162 rdm_invocation.sci_ptr = saved_rdm_sci_ptr; 163 164 return; 165 166 /* The "append" request: adds the printed representation of the specified messages to the end of the specified file. The 167* user is asked for permission to create the file if it doesn't exist */ 168 169 append_request: 170 entry (P_sci_ptr, P_rdm_invocation_ptr); 171 172 file_insertion_mode = APPEND_FILE; /* ... at the end */ 173 go to APPEND_PREFACE_COMMON; 174 175 176 /* The "preface" request: adds the printed representation of the specified messages to the beginning of the specified 177* file. The user is asked for permission to create the file if it doesn't exist */ 178 179 preface_request: 180 entry (P_sci_ptr, P_rdm_invocation_ptr); 181 182 file_insertion_mode = PREFACE_FILE; /* ... at the beginning */ 183 184 185 /* Process the append/preface request */ 186 187 APPEND_PREFACE_COMMON: 188 call setup_request ("0"b); /* may only be used from read_mail */ 189 190 on condition (cleanup) call cleanup_request (); 191 192 file_creation_mode = QUERY_TO_CREATE_FILE; 193 194 call process_arguments ("0"b); /* can't change insertion mode */ 195 196 call mark_appropriate_messages (); 197 198 call process_messages (); /* do the actual work */ 199 200 call cleanup_request (); 201 202 return; 203 204 /* Prepares for the execution of one of the above requests */ 205 206 setup_request: 207 procedure (p_allow_original_request) /* options (quick) */; 208 209 dcl p_allow_original_request bit (1) aligned parameter; 210 211 sci_ptr = P_sci_ptr; 212 rdm_invocation_ptr = P_rdm_invocation_ptr; 213 214 if rdm_invocation.type = SDM_INVOCATION then /* a send_mail original request ... */ 215 if p_allow_original_request then do; /* ... and that's OK */ 216 is_original_request = "1"b; 217 sdm_invocation_ptr = P_rdm_invocation_ptr; 218 rdm_invocation_ptr = sdm_invocation.rdm_invocation_ptr; 219 if rdm_invocation_ptr = null () then 220 call ssu_$abort_line (sci_ptr, 0, "This request is valid only during a ""reply"" request."); 221 end; 222 else call ssu_$abort_line (sci_ptr, ssu_et_$unimplemented_request); 223 224 else is_original_request = "0"b; /* an oprdinary read_mail request */ 225 226 call ssu_$arg_count (sci_ptr, n_arguments); 227 228 n_message_specifiers_allocated = n_arguments; /* can't have more message specifiers than arguments */ 229 call cu_$grow_stack_frame (size (message_specifier_idxs), message_specifier_idxs_ptr, code); 230 if code ^= 0 then call ssu_$abort_line (sci_ptr, 0, "Too many message specifiers on the request line."); 231 232 n_message_specifiers = 0; /* haven't actually spotted any yet */ 233 234 call rdm_message_mark_mgr_$clear_marked_messages (rdm_invocation_ptr); 235 236 file_ptr, message_buffer_ptr = null (); /* for cleanup handler */ 237 238 return; 239 240 end setup_request; 241 242 243 244 /* Closes the file opened by this request and releases the message buffer */ 245 246 cleanup_request: 247 procedure (); 248 249 if message_buffer_ptr ^= null () then call ssu_$release_temp_segment (sci_ptr, message_buffer_ptr); 250 251 if file_ptr ^= null () then call emf_writing_util_$close (file_ptr, file_uid, (0)); 252 253 return; 254 255 end cleanup_request; 256 257 /* Processes the arguments for one of the above requests */ 258 259 process_arguments: 260 procedure (p_accept_extend_truncate); 261 262 dcl p_accept_extend_truncate bit (1) aligned parameter; 263 264 message_type = NON_DELETED_MESSAGES; 265 266 reverse_processing = "0"b; /* default is to process in marked order */ 267 delete_after_processing = "0"b; /* default is to not delete messages */ 268 have_filename = "0"b; 269 270 do argument_idx = 1 to n_arguments; 271 272 call ssu_$arg_ptr (sci_ptr, argument_idx, argument_ptr, argument_lth); 273 274 if index (argument, "-") = 1 then /* a control argument */ 275 if ^is_original_request & ((argument = "-delete") | (argument = "-dl")) then 276 delete_after_processing = "1"b; 277 else if ^is_original_request & ((argument = "-no_delete") | (argument = "-ndl")) then 278 delete_after_processing = "0"b; 279 280 else if p_accept_extend_truncate & (argument = "-extend") then file_insertion_mode = APPEND_FILE; 281 else if p_accept_extend_truncate & ((argument = "-truncate") | (argument = "-tc")) then 282 file_insertion_mode = TRUNCATE_FILE; 283 284 else if (argument = "-include_deleted") | (argument = "-idl") then message_type = ALL_MESSAGES; 285 else if (argument = "-only_deleted") | (argument = "-odl") then message_type = ONLY_DELETED_MESSAGES; 286 else if (argument = "-only_non_deleted") | (argument = "-ondl") then 287 message_type = NON_DELETED_MESSAGES; 288 289 else if (argument = "-reverse") | (argument = "-rv") then reverse_processing = "1"b; 290 else if (argument = "-no_reverse") | (argument = "-nrv") then reverse_processing = "0"b; 291 292 /*** the following control arguments are obsolete: remove them in MR11 */ 293 else if (argument = "-all") | (argument = "-a") then message_type = ALL_MESSAGES; 294 295 else call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a""", argument); 296 297 else do; /* a message specifier or filename */ 298 call rdm_message_mark_mgr_$validate_message_specifier (rdm_invocation_ptr, argument_ptr, argument_lth, 299 ALL_MESSAGES, ""b, code); 300 if code = 0 then do; /* ... it looks like a message specifier */ 301 n_message_specifiers = n_message_specifiers + 1; 302 message_specifier_idxs (n_message_specifiers) = argument_idx; 303 end; 304 else /* ... it must be the filename */ 305 if have_filename then /* ... but we already have one */ 306 call ssu_$abort_line (sci_ptr, 0, "Only one filename may be given. ""^a"" and ""^a""", 307 pathname_ (file_dirname, file_ename), argument); 308 else do; /* ... first filename */ 309 have_filename = "1"b; 310 call expand_pathname_$add_suffix (argument, "mail", file_dirname, file_ename, code); 311 if code ^= 0 then call ssu_$abort_line (sci_ptr, code, """^a""", argument); 312 call check_star_name_$entry (file_ename, code); 313 if code ^= 0 then /* ... either a sarname or an invalid name */ 314 if (code = 1) | (code = 2) then 315 call ssu_$abort_line (sci_ptr, error_table_$nostars, "^a", 316 pathname_ (file_dirname, file_ename)); 317 else call ssu_$abort_line (sci_ptr, code, "^a", pathname_ (file_dirname, file_ename)); 318 end; 319 end; 320 end; 321 322 if ^have_filename then /* filename missing: usage message is better here */ 323 call ssu_$abort_line (sci_ptr, 0, "Usage: ^a {message_specifiers} path {-control_args}", 324 ssu_$get_request_name (sci_ptr)); 325 326 return; 327 328 end process_arguments; 329 330 /* Marks the appropriate messages for processing */ 331 332 mark_appropriate_messages: 333 procedure (); 334 335 dcl idx fixed binary; 336 337 if n_message_specifiers = 0 then /* defaults to ... */ 338 if is_original_request then /* ... messages being answered if from send_mail */ 339 call rdm_message_mark_mgr_$remark_original_messages (rdm_invocation_ptr); 340 341 else /* ... current message if from read_mail */ 342 call rdm_message_mark_mgr_$mark_current_message (rdm_invocation_ptr, message_type); 343 /* phx19099 RL - "-odl" if specified will be caught when the current message is marked */ 344 345 else do; /* use the messages requested by the user */ 346 do idx = 1 to n_message_specifiers; 347 call ssu_$arg_ptr (sci_ptr, message_specifier_idxs (idx), argument_ptr, argument_lth); 348 call rdm_message_mark_mgr_$mark_messages (rdm_invocation_ptr, argument_ptr, argument_lth, 349 message_type, ""b, code); 350 if code ^= 0 then call ssu_$abort_line (sci_ptr, code); 351 end; 352 end; 353 354 return; 355 356 end mark_appropriate_messages; 357 358 /* Processes the marked messages */ 359 360 process_messages: 361 procedure (); 362 363 dcl (first_message_idx, last_message_idx, message_idx_increment, message_idx, message_number) fixed binary; 364 365 366 call emf_writing_util_$open (sci_ptr, file_dirname, file_ename, file_creation_mode, file_ptr, file_uid, code); 367 if code ^= 0 then /* couldn't open thje file ... */ 368 if code = error_table_$action_not_performed then 369 call ssu_$abort_line (sci_ptr, 0); /* ... and user answered "no" to the query to create it */ 370 else call ssu_$abort_line (sci_ptr, code, "^a", pathname_ (file_dirname, file_ename)); 371 372 call ssu_$get_temp_segment (rdm_invocation.sci_ptr, "message_text", message_buffer_ptr); 373 374 375 if reverse_processing then do; /* process them in the opposite order */ 376 first_message_idx = marked_chain.n_messages; 377 last_message_idx = 1; 378 message_idx_increment = -1; 379 end; 380 else do; /* process them in the order marked */ 381 first_message_idx = 1; 382 last_message_idx = marked_chain.n_messages; 383 message_idx_increment = 1; 384 end; 385 386 do message_idx = first_message_idx to last_message_idx by message_idx_increment; 387 message_number = marked_chain.messages (message_idx); 388 389 call rdm_mailbox_interface_$read_message (rdm_invocation_ptr, message_number, message_ptr, code); 390 if code ^= 0 then 391 call ssu_$abort_line (sci_ptr, code, "Reading message #^d from ^a.", message_number, 392 rdm_invocation.mailbox_name); 393 394 /* phx18564 RL - set current message to message_number and guarantee that it's not deleted */ 395 call rdm_mailbox_interface_$set_new_current_msg (rdm_invocation_ptr, message_number, 396 rdm_invocation.current_message); /* it's current while we're working on it */ 397 398 call process_single_message (); /* do the real work */ 399 400 call rdm_mailbox_interface_$mark_processed_and_acknowledge (rdm_invocation_ptr, message_number); 401 end; 402 403 if delete_after_processing then /* user wants them deleted after processing */ 404 call rdm_mailbox_interface_$delete_messages (rdm_invocation_ptr, "0"b); 405 406 return; 407 408 /* Internal to process_messages: processes a single message */ 409 410 process_single_message: 411 procedure (); 412 413 local_fmo.version = FORMAT_MESSAGE_OPTIONS_VERSION_1; 414 local_fmo.line_length = 72; 415 local_fmo.envelope_formatting_mode, local_fmo.header_formatting_mode, 416 local_fmo.redistributions_list_formatting_mode = DEFAULT_FORMATTING_MODE; 417 local_fmo.include_body = "1"b; 418 419 message_text_lth = 0; /* nothing in the buffer yet */ 420 421 call add_to_buffer (" #^d^[ (^d line^[s^] in body)^]:", message_number, (message.body.total_lines ^= -1), 422 message.body.total_lines, (message.body.total_lines ^= 1)); 423 424 call mlsys_utils_$format_message (message_ptr, addr (local_fmo), message_buffer_ptr, 425 length (message_buffer), message_text_lth, code); 426 if code ^= 0 then /* ... error_table_$smallarg */ 427 call ssu_$abort_line (sci_ptr, mlsys_et_$message_too_large, 428 "Preparing message #^d to be written to ^a.", message_number, 429 pathname_ (file_dirname, file_ename)); 430 431 call add_to_buffer (" ---(^d)---^2/^|", message_number); 432 433 call emf_writing_util_$write (file_ptr, file_uid, message_text, file_insertion_mode, code); 434 if code ^= 0 then 435 call ssu_$abort_line (sci_ptr, code, "Writing message #^d to ^a.", message_number, 436 pathname_ (file_dirname, file_ename)); 437 438 if file_insertion_mode = TRUNCATE_FILE then /* only truncate the output file once, please */ 439 file_insertion_mode = APPEND_FILE; 440 441 return; 442 443 444 445 /* Internal to process_single_message: formats the given text and adds it to the message buffer */ 446 447 add_to_buffer: 448 procedure () options (variable); 449 450 dcl internal_buffer character (256); /* always called with relatively short messages */ 451 dcl internal_buffer_used fixed binary (21); 452 453 call ioa_$general_rs (cu_$arg_list_ptr (), 1, 2, internal_buffer, internal_buffer_used, "0"b, "1"b); 454 455 begin; 456 dcl rest_of_message_buffer character (length (message_buffer) - message_text_lth) unaligned 457 defined (message_buffer) position (message_text_lth + 1); 458 459 if internal_buffer_used > length (rest_of_message_buffer) then 460 call ssu_$abort_line (sci_ptr, mlsys_et_$message_too_large, 461 "Preparing message #^d to be written to ^a.", message_number, 462 pathname_ (file_dirname, file_ename)); 463 464 substr (rest_of_message_buffer, 1, internal_buffer_used) = 465 substr (internal_buffer, 1, internal_buffer_used); 466 end; 467 468 message_text_lth = message_text_lth + internal_buffer_used; 469 470 return; 471 472 end add_to_buffer; 473 474 end process_single_message; 475 476 end process_messages; 477 1 1 /* BEGIN INCLUDE FILE ... rdm_invocation.incl.pl1 */ 1 2 /* Created: September 1983 by G. Palter from portions of emf_info.incl.pl1 */ 1 3 1 4 /* Definition of a single invocation of read_mail */ 1 5 1 6 dcl 1 rdm_invocation aligned based (rdm_invocation_ptr), 1 7 2 type character (8), /* defines this structure as a read_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 mailbox_info, 1 12 3 mailbox_ptr pointer, /* -> mailbox structure being examined by this invocation */ 1 13 3 message_list_ptr pointer, /* -> list of read_mail specific information retained for each 1 14* message (eg: the "processed" flag) */ 1 15 3 message_chains, /*the various message chains ... */ 1 16 4 all pointer, /* ... all unexpunged messages */ 1 17 4 undeleted pointer, /* ... all undeleted messages */ 1 18 4 deleted pointer, /* ... all deleted messages */ 1 19 4 marked pointer, /* ... messages to be processed by the current request */ 1 20 4 marked_as_original pointer, /* ... messages being processed by a reply/forward request */ 1 21 3 mailbox_name character (168) varying, /* name of the mailbox (your mailbox/logbox/pathname) */ 1 22 1 23 2 current_message fixed binary, /* index of the current message; 0 => no current message */ 1 24 1 25 2 last_search_buffer, /* describes the buffer where read_mail constructs the ... */ 1 26 3 buffer_ptr pointer, /* ... the printed representation of messages in order ... */ 1 27 3 buffer_used fixed binary (21), /* ... to speed up regular expression searching */ 1 28 1 29 2 global_options, /* command line options affecting all of read_mail ... */ 1 30 3 flags, 1 31 4 acknowledge bit (1) unaligned, /* ... ON => acknowledge messages after printing */ 1 32 4 brief bit (1) unaligned, /* ... ON => shorten some messages and omit others */ 1 33 4 debug_mode bit (1) unaligned, /* ... ON => enable debugging features */ 1 34 4 pad bit (33) unaligned, 1 35 1 36 2 print_options, /* command line options affecting the print request ... */ 1 37 3 formatting_mode fixed binary, /* ... output mode for the message header, etc. */ 1 38 1 39 2 reply_options, /* command line options affecting the reply request ... */ 1 40 3 line_length fixed binary, /* ... line length to be used by send_mail for filling */ 1 41 3 indentation fixed binary, /* ... amount to indent original text when included */ 1 42 3 flags, 1 43 4 include_original bit (1) unaligned, /* ... ON => include original message text in the reply */ 1 44 4 include_authors bit (1) unaligned, /* ... ON => include original authors as recipients */ 1 45 4 include_recipients bit (1) unaligned, /* ... ON => include original recipients as recipients */ 1 46 4 include_self bit (2) unaligned, /* ... ON => include this user as a recipient of the reply if 1 47* selected by include_authors/include_recipients */ 1 48 4 fill_control bit (2) unaligned, /* ... controls message filling by send_mail */ 1 49 4 pad bit (29) unaligned; 1 50 1 51 dcl RDM_INVOCATION character (8) static options (constant) initial ("rdm_0009"); 1 52 1 53 dcl rdm_invocation_ptr pointer; 1 54 1 55 dcl rdm_area area based (rdm_invocation.area_ptr); 1 56 1 57 1 58 /* Defined settings for reply_options.include_self */ 1 59 1 60 dcl (DEFAULT_INCLUDE_SELF initial ("00"b), /* neither -include_self nor -no_include_self given */ 1 61 NO_INCLUDE_SELF initial ("01"b), /* -no_include_self explicitly given */ 1 62 INCLUDE_SELF initial ("10"b)) /* -include_self explicitly given */ 1 63 bit (2) aligned static options (constant); 1 64 1 65 /* END INCLUDE FILE ... rdm_invocation.incl.pl1 */ 478 479 2 1 /* BEGIN INCLUDE FILE ... rdm_message_list.incl.pl1 */ 2 2 /* Created: September 1983 by G. Palter */ 2 3 2 4 /* Definition of per-message data maintained by read_mail: This list is maintined in parallel to the mailbox structure by 2 5* read_mail's interface to the mail_system_ mailbox manager (rdm_mailbox_interface_). It serves two purposes: 2 6* (1) It provides a place to store read_mail-specific per-message data (ie: the processed flag). 2 7* (2) It provides the ability to provide arbitrary mappings between read_mail message numbers and the actual indeces 2 8* within the mailbox structure. This mapping allows read_mail to preserve its message numbers for an invocation 2 9* even if messages are expunged which causes them to disappear from the mailbox structure (NB: the "expunge" 2 10* request is not yet implemented). This mapping also allows read_mail to present the messages in the mailbox to 2 11* the user in a different order than they actually appear in the mailbox (eg: sorted by date/time created) */ 2 12 2 13 dcl 1 message_list aligned based (rdm_invocation.message_list_ptr), 2 14 2 n_messages fixed binary, /* # of messages known to read_mail at present */ 2 15 2 pad bit (36), 2 16 2 messages (message_list_n_messages refer (message_list.n_messages)), 2 17 3 message_idx fixed binary, /* index of this message in the mailbox structure */ 2 18 3 flags, 2 19 4 processed bit (1) unaligned, /* ON => this message may be deleted without query */ 2 20 4 pad bit (35) unaligned, 2 21 3 search_text, /* describes copy of messages used for regexp searches */ 2 22 4 search_text_ptr pointer, /* ... -> the saved printed represetnation */ 2 23 4 search_text_lth fixed binary (21); /* ... length of said representation in characters */ 2 24 2 25 dcl message_list_n_messages fixed binary; 2 26 2 27 /* END INCLUDE FILE ... rdm_message_list.incl.pl1 */ 480 481 3 1 /* BEGIN INCLUDE FILE ... rdm_message_chains.incl.pl1 */ 3 2 /* Created: September 1983 by G. Palter */ 3 3 3 4 3 5 /* Definition of a read_mail message chain */ 3 6 3 7 dcl 1 message_chain aligned based (message_chain_ptr), 3 8 2 n_messages fixed binary, /* # of messages in the chain */ 3 9 2 messages (message_list.n_messages) fixed binary; /* read_mail message numbers of the messages in the chain */ 3 10 3 11 dcl message_chain_ptr pointer; 3 12 3 13 3 14 /* Message chains maintained by read_mail's interface to the mail_system_ mailbox manager (rdm_mailbox_interface_) -- 3 15* (1) The first chain is a list of all messages in the mailbox which have not yet been expunged and consists of all 3 16* messages whether or not they have been marked for deletion. 3 17* (2) The second chain is a list of all messages in the mailbox which have not been marked for later deletion. 3 18* (3) The third chain is a list of all messages which have been marked for later deletion. 3 19* The message specifier parser uses one of these three chains as the basis for selecting the messages to be processed by 3 20* a request based on the use of "-include_deleted", "-only_non_deleted", or "-only_deleted", respectively; in this way, 3 21* the amount of code in the parser which must distinguish between these three types of selections is minimized */ 3 22 3 23 dcl 1 all_chain aligned based (rdm_invocation.message_chains.all) like message_chain; 3 24 dcl 1 undeleted_chain aligned based (rdm_invocation.message_chains.undeleted) like message_chain; 3 25 dcl 1 deleted_chain aligned based (rdm_invocation.message_chains.deleted) like message_chain; 3 26 3 27 3 28 /* The marked chain is the list of messages that are to be processed by the current request */ 3 29 3 30 dcl 1 marked_chain aligned based (rdm_invocation.message_chains.marked) like message_chain; 3 31 3 32 3 33 /* The marked as original chain is the list of messages that are being processed by a reply or forward request: This 3 34* chain is used to define the default set of messages to be processed by the various send_mail "original" requests and 3 35* forward "original" sub-requests */ 3 36 3 37 dcl 1 marked_as_original_chain aligned based (rdm_invocation.message_chains.marked_as_original) like message_chain; 3 38 3 39 3 40 /* Definition of the acceptable message selection criteria */ 3 41 3 42 dcl (ALL_MESSAGES initial (1), /* all messages: -include_deleted */ 3 43 NON_DELETED_MESSAGES initial (2), /* only undeleted messages: -only_non_deleted (default) */ 3 44 ONLY_DELETED_MESSAGES initial (3)) /* only deleted messages: -only_deleted */ 3 45 fixed binary static options (constant); 3 46 3 47 /* END INCLUDE FILE ... rdm_message_chains.incl.pl1 */ 482 483 4 1 /* BEGIN INCLUDE FILE ... sdm_invocation.incl.pl1 */ 4 2 /* Created: August 1983 by G. Palter from portions of emf_info.incl.pl1 */ 4 3 4 4 /* Definition of a single invocation of send_mail */ 4 5 4 6 dcl 1 sdm_invocation aligned based (sdm_invocation_ptr), 4 7 2 type character (8), /* defines this structure as a send_mail invocation */ 4 8 2 sci_ptr pointer, /* -> subsystem utilities invocation data */ 4 9 2 area_ptr pointer, /* -> area to be used by the subsystem */ 4 10 4 11 2 message_info, /* information about the message being constructed */ 4 12 3 message_ptr pointer, /* ... -> the actual message */ 4 13 3 message_state fixed binary, /* ... unprocessed/modified/processed: controls quit query */ 4 14 3 date_time_body_modified fixed binary (71), /* ... last date/time the message body was changed: used to 4 15* display Date/Message-ID fields before transmission */ 4 16 4 17 2 fill_width fixed binary, /* default line length for message filling */ 4 18 2 flags, 4 19 3 brief bit (1) unaligned, /* ON => suppress "Mail delivered..." messages */ 4 20 3 acknowledge bit (1) unaligned, /* ON => user wants acknowledgement from recipients */ 4 21 3 notify bit (1) unaligned, /* ON => send each recipient a notification of delivery */ 4 22 3 fill bit (1) unaligned, /* ON => fill message body whenever modified */ 4 23 3 debug_mode bit (1) unaligned, /* ON => debugging features enabled */ 4 24 3 auto_write bit (1) unaligned, 4 25 3 pad bit (30) unaligned, /* ON => qedx request automatically rewrites on quit (sigh) */ 4 26 4 27 2 rdm_invocation_ptr pointer, /* -> description of read_mail invocation whose reply request 4 28* created this send_mail invocation */ 4 29 4 30 2 original_messages_ptr pointer, /* -> current list of original messages from which the 4 31* In-Reply-To field is to be regenerated after use of 4 32* qedx/apply -header */ 4 33 4 34 2 abort_code fixed binary (35); /* indicates whether send_mail exited with unsent message */ 4 35 4 36 dcl SDM_INVOCATION character (8) static options (constant) initial ("sdm_0008"); 4 37 4 38 dcl sdm_invocation_ptr pointer; 4 39 4 40 dcl sdm_area area based (sdm_invocation.area_ptr); 4 41 4 42 4 43 /* Possible message states: indicate whether the message has been modified in some way since it was last successfully 4 44* transmitted, logged, saved, or writen. This state is used by the quit request to control whether it should query the 4 45* user for permission to exit send_mail */ 4 46 4 47 dcl (UNPROCESSED_MESSAGE initial (-1), /* message has never been transmitted/logged/saved/written */ 4 48 4 49 MODIFIED_MESSAGE initial (1), /* message was transmitted/logged/saved/written but has been 4 50* modified since the last such operation */ 4 51 4 52 PROCESSED_MESSAGE initial (0)) /* message was transmitted/logged/saved/written and hasn't 4 53* been modified since that operation: OK to quit without 4 54* having to ask for the user's permission */ 4 55 fixed binary static options (constant); 4 56 4 57 /* END INCLUDE FILE ... sdm_invocation.incl.pl1 */ 484 485 5 1 /* BEGIN INCLUDE FILE ... emf_writing_modes.incl.pl1 */ 5 2 /* Created: 12 January 1979 by G. Palter */ 5 3 5 4 /* Constants defining the various modes of operation of emf_writing_util_ */ 5 5 5 6 dcl (DONT_CREATE_FILE initial (0), /* do not create the file and issue an error message */ 5 7 QUERY_TO_CREATE_FILE initial (1), /* ask the user for permission to create the file */ 5 8 CREATE_AND_ANNOUNCE_FILE initial (2), /* create the file and inform the user of this action */ 5 9 SILENTLY_CREATE_FILE initial (3), /* create the file but don't inform the user */ 5 10 5 11 TRUNCATE_FILE initial (1), /* truncate the file if it already exists */ 5 12 APPEND_FILE initial (2), /* add the text to the end of the file */ 5 13 PREFACE_FILE initial (3)) /* insert the text at the beginning of the file */ 5 14 5 15 fixed binary static options (constant); 5 16 5 17 /* END INCLUDE FILE ... emf_writing_modes.incl.pl1 */ 486 487 6 1 /* BEGIN INCLUDE FILE ... mlsys_format_options.incl.pl1 */ 6 2 /* Created: June 1983 by G. Palter */ 6 3 6 4 /* Options for the mlsys_utils_$format_message and mlsys_utils_$print_message entrypoints */ 6 5 6 6 dcl 1 format_message_options aligned based (format_message_options_ptr), 6 7 2 version character (8) unaligned, 6 8 2 line_length fixed binary, /* line length to be used to format/print the message */ 6 9 2 envelope_formatting_mode fixed binary, /* level of detail to be displayed for the envelope ... */ 6 10 2 header_formatting_mode fixed binary, /* ... for the message ... */ 6 11 2 redistributions_list_formatting_mode fixed binary, /* ... and for the redistributions list ... */ 6 12 2 include_body bit (1) aligned; /* ON => include message body when formatting/printing; 6 13* OFF => exclude the message body */ 6 14 6 15 dcl FORMAT_MESSAGE_OPTIONS_VERSION_1 character (8) static options (constant) initial ("mlsfmo01"); 6 16 6 17 dcl format_message_options_ptr pointer; 6 18 6 19 6 20 /* Defined formatting modes */ 6 21 6 22 dcl (NONE_FORMATTING_MODE initial (0), /* exclude this part of the message */ 6 23 BRIEF_FORMATTING_MODE initial (1), /* include only minimal information from this part of the 6 24* message; not valid for the envelope */ 6 25 DEFAULT_FORMATTING_MODE initial (2), /* include default amount of information from this part */ 6 26 LONG_FORMATTING_MODE initial (3)) /* include all information from this part of the message */ 6 27 fixed binary static options (constant); 6 28 6 29 /* END INCLUDE FILE ... mlsys_format_options.incl.pl1 */ 488 489 7 1 /* BEGIN INCLUDE FILE ... mlsys_message.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(85-12-19,Herbst), approve(86-03-25,MCR7367), 7 6* audit(86-04-28,Margolin), install(86-05-22,MR12.0-1059): 7 7* Added seen switch to message. 7 8* END HISTORY COMMENTS */ 7 9 7 10 7 11 /* Created: June 1983 by G. Palter */ 7 12 7 13 /* Definition of a message as used by the Multics Mail System */ 7 14 7 15 dcl 1 message aligned based (message_ptr), 7 16 2 version character (8) unaligned, 7 17 2 reserved bit (144), /* for exclusive use of the mail system */ 7 18 2 n_reply_references fixed binary, /* # of messages for which this is a reply */ 7 19 2 n_user_fields fixed binary, /* # of non-standard header fields in this message */ 7 20 2 n_redistributions fixed binary, /* # of times this message has been forwarded */ 7 21 2 n_body_sections fixed binary, /* # of sections in the body */ 7 22 2 flags, 7 23 3 interactive bit (1) unaligned, /* ON => this is an interactive message */ 7 24 3 can_be_deleted bit (1) unaligned, /* ON => the user can delete this message if desired */ 7 25 3 marked_for_deletion bit (1) unaligned, /* ON => message will be deleted when mailbox is closed */ 7 26 3 must_be_acknowledged bit (1) unaligned, /* ON => an ACK should be generated when message is read */ 7 27 3 seen bit (1) unaligned, /* ON => user has printed message at least once */ 7 28 3 reserved bit (31) unaligned, /* for use by the mail system */ 7 29 2 pad bit (36), 7 30 2 envelope like message_envelope, /* who/when/how the message was mailed & delivered */ 7 31 2 header, 7 32 3 message_id bit (72), /* ID of this message (same value for all copies) */ 7 33 3 access_class bit (72), /* AIM access class of this message */ 7 34 3 date_time_created fixed binary (71), /* date/time this message was composed */ 7 35 3 from pointer, /* -> address list of author(s) of the message */ 7 36 3 reply_to pointer, /* -> address list of recipients for reply (if not authors) */ 7 37 3 to pointer, /* -> address list of primary recipients */ 7 38 3 cc pointer, /* -> address list of secondary recipients */ 7 39 3 bcc pointer, /* -> address list of blind recipients */ 7 40 3 subject like message_text_field, /* subject of the message */ 7 41 3 reply_references pointer, /* -> list of messages for which this message is a reply */ 7 42 3 user_fields_list pointer, /* -> list of user-defined fields in this message */ 7 43 2 redistributions_list pointer, /* -> redistributions list for this message */ 7 44 2 body, 7 45 3 total_lines fixed binary (21), /* total # of lines in the body or -1 if indeterminate */ 7 46 3 pad bit (36), 7 47 3 body_sections (message_n_body_sections refer (message.n_body_sections)) like message_body_section; 7 48 7 49 dcl MESSAGE_VERSION_2 character (8) static options (constant) initial ("mlsmsg02"); 7 50 7 51 dcl message_subject character (message.header.subject.text_lth) unaligned based (message.header.subject.text_ptr); 7 52 7 53 dcl message_ptr pointer; 7 54 7 55 dcl (message_n_body_sections, message_trace_n_relays, message_n_redistributions, message_n_user_fields, 7 56 message_references_list_n_references) 7 57 fixed binary; /* for exclusive use of the mail system */ 7 58 7 59 /* Definition of a message envelope: describes when, by whom, and by what route the message was mailed */ 7 60 7 61 dcl 1 message_envelope aligned based (message_envelope_ptr), 7 62 2 date_time_mailed fixed binary (71), /* date/time this message was entered into the mail system */ 7 63 2 sender pointer, /* -> address of entity that mailed the message */ 7 64 2 trace pointer, /* -> message_trace describing how it got here */ 7 65 2 date_time_delivered fixed binary (71), /* date/time this message was delivered */ 7 66 2 delivered_by pointer, /* -> address of entity that delivered the message */ 7 67 2 acknowledge_to pointer; /* -> address of entity to receive ACK when message is read */ 7 68 7 69 dcl message_envelope_ptr pointer; 7 70 7 71 7 72 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the message envelope */ 7 73 7 74 dcl 1 message_envelope_parameter aligned based (message_envelope_parameter_ptr), 7 75 2 pad pointer, /* forces even word alignment */ 7 76 2 version character (8) unaligned, 7 77 2 envelope like message_envelope; 7 78 7 79 dcl MESSAGE_ENVELOPE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsenv02"); 7 80 7 81 dcl message_envelope_parameter_ptr pointer; 7 82 7 83 7 84 /* Definition of a message trace: describes the route and each relay operation by which a message was passed through the 7 85* networks to reach this recipient */ 7 86 7 87 dcl 1 message_trace aligned based (message_trace_ptr), 7 88 2 version character (8) unaligned, 7 89 2 reserved bit (144), /* ... exclusively for use by the mail system */ 7 90 2 implicit_route pointer, /* -> an address_route which defines the route it took */ 7 91 2 pad bit (36), 7 92 2 n_relays fixed binary, /* # of relay operations required to reach this site */ 7 93 2 relays (message_trace_n_relays refer (message_trace.n_relays)), 7 94 3 date_time_relayed fixed binary (71), /* ... when this relay operation took place */ 7 95 3 sending_host character (256) varying, /* ... the host which relayed the message */ 7 96 3 receiving_host character (256) varying, /* ... the host which received it */ 7 97 3 communications_media character (32) unaligned, /* ... medium over which relay took place (ARPA, Tymnet) */ 7 98 3 communications_protocol character (32) unaligned,/* ... low-level protocol used (TCP, X.25) */ 7 99 3 mail_protocol character (32) unaligned, /* ... mailer protocol used (SMTP, NBS) */ 7 100 3 relay_id bit (72), /* ... unique ID assigned by receiving system or ""b */ 7 101 3 relay_recipient pointer; /* ... -> address of recipient as given by sending system */ 7 102 7 103 dcl MESSAGE_TRACE_VERSION_2 character (8) static options (constant) initial ("mlstrc02"); 7 104 7 105 dcl message_trace_ptr pointer; 7 106 7 107 /* Definition of a message's redistributions list */ 7 108 7 109 dcl 1 message_redistributions_list aligned based (message.redistributions_list), 7 110 2 version character (8) unaligned, 7 111 2 reserved bit (144), /* ... exclusively for use by the mail system */ 7 112 2 pad bit (36), 7 113 2 n_redistributions fixed binary, /* # of redistributions */ 7 114 2 redistributions (message_n_redistributions refer (message_redistributions_list.n_redistributions)) 7 115 like message_redistribution; /* the redistributions: oldest first */ 7 116 7 117 dcl MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsrl002"); 7 118 7 119 7 120 /* Definition of a single redistribution (forwarding) of a message */ 7 121 7 122 dcl 1 message_redistribution aligned based (message_redistribution_ptr), 7 123 2 envelope like message_envelope, 7 124 2 header, 7 125 3 message_id bit (72), /* ID of this redistribution (same for all copies) */ 7 126 3 date_time_created fixed binary (71), /* date/time when this redistribution was made */ 7 127 3 from pointer, /* -> address list of authors of this redistribution */ 7 128 3 to pointer, /* -> address list of recipients of the redistribution */ 7 129 3 comment like message_text_field; /* optional comment associated with the redistribution */ 7 130 7 131 dcl message_redistribution_comment character (message_redistribution.comment.text_lth) unaligned 7 132 based (message_redistribution.comment.text_ptr); 7 133 7 134 dcl message_redistribution_ptr pointer; 7 135 7 136 7 137 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the redistributions of a message */ 7 138 7 139 dcl 1 message_redistribution_parameter aligned based (message_redistribution_parameter_ptr), 7 140 2 pad pointer, /* forces even word alignment */ 7 141 2 version character (8) unaligned, 7 142 2 redistribution like message_redistribution; 7 143 7 144 dcl MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsdist2"); 7 145 7 146 dcl message_redistribution_parameter_ptr pointer; 7 147 7 148 /* Definition of the list of user-defined fields in a message */ 7 149 7 150 dcl 1 message_user_fields_list aligned based (message.user_fields_list), 7 151 2 version character (8) unaligned, 7 152 2 reserved bit (144), /* ... exclusively for use by the mail system */ 7 153 2 pad bit (36), 7 154 2 n_user_fields fixed binary, /* # of user-defined fields in the message */ 7 155 2 user_fields (message_n_user_fields refer (message_user_fields_list.n_user_fields)) 7 156 like message_user_field; /* the actual user-defined fields */ 7 157 7 158 dcl MESSAGE_USER_FIELDS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsufl02"); 7 159 7 160 7 161 /* Definition of a user defined message header field */ 7 162 7 163 dcl 1 message_user_field aligned based (message_user_field_ptr), 7 164 2 header, 7 165 3 field_id bit (36) aligned, /* identifies the purpose of this field */ 7 166 3 field_type fixed binary, /* type of data contained in this field */ 7 167 2 field_type_variable bit (144); /* the actual data (see below) */ 7 168 7 169 dcl message_user_field_ptr pointer; 7 170 7 171 7 172 /* Defined types of user defined fields */ 7 173 7 174 dcl (MESSAGE_TEXT_USER_FIELD initial (1), /* content of the field is a text string */ 7 175 MESSAGE_ADDRESS_LIST_USER_FIELD initial (2), /* content of the field is an address list */ 7 176 MESSAGE_DATE_USER_FIELD initial (3), /* content of the field is a date/time */ 7 177 MESSAGE_INTEGER_USER_FIELD initial (4)) /* content of the filed is a fixed binary value */ 7 178 fixed binary static options (constant); 7 179 7 180 7 181 /* Structures used to access the data for the different types of user defined fields */ 7 182 7 183 dcl 1 message_text_user_field aligned based (message_user_field_ptr), 7 184 2 header like message_user_field.header, 7 185 2 text like message_text_field; /* the message text */ 7 186 7 187 dcl message_text_user_field_text character (message_text_user_field.text.text_lth) unaligned 7 188 based (message_text_user_field.text.text_ptr); 7 189 7 190 dcl 1 message_address_list_user_field aligned based (message_user_field_ptr), 7 191 2 header like message_user_field.header, 7 192 2 address_list_ptr pointer, /* -> the address list */ 7 193 2 pad bit (72); 7 194 7 195 dcl 1 message_date_user_field aligned based (message_user_field_ptr), 7 196 2 header like message_user_field.header, 7 197 2 date_time fixed binary (71), /* the clock reading */ 7 198 2 pad bit (72); 7 199 7 200 dcl 1 message_integer_user_field aligned based (message_user_field_ptr), 7 201 2 header like message_user_field.header, 7 202 2 value fixed binary (35), /* the integer value */ 7 203 2 pad bit (108); 7 204 7 205 7 206 /* Structure used in calls to mail_system_ entrypoints which manipulate the user-defined fields of a message */ 7 207 7 208 dcl 1 message_user_field_parameter aligned based (message_user_field_parameter_ptr), 7 209 2 pad pointer, /* forces even word alignment */ 7 210 2 version character (8) unaligned, 7 211 2 user_field like message_user_field; 7 212 7 213 dcl MESSAGE_USER_FIELD_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsudf02"); 7 214 7 215 dcl message_user_field_parameter_ptr pointer; 7 216 7 217 /* Definition of a list of message references used as the value of message header fields (eg: In-Reply-To) */ 7 218 7 219 dcl 1 message_references_list aligned based (message_references_list_ptr), 7 220 2 version character (8) unaligned, 7 221 2 reserved bit (144), /* ... exclusively for use by the mail system */ 7 222 2 pad bit (36), 7 223 2 n_references fixed binary, /* # of references in this list */ 7 224 2 references (message_references_list_n_references refer (message_references_list.n_references)) 7 225 like message_reference; /* the references themselves */ 7 226 7 227 dcl MESSAGE_REFERENCES_LIST_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 7 228 7 229 dcl message_references_list_ptr pointer; 7 230 7 231 7 232 /* Definition of a reference to another message */ 7 233 7 234 dcl 1 message_reference aligned based (message_reference_ptr), 7 235 2 message_id bit (72), /* ID of the other message */ 7 236 2 date_time_created fixed binary (71), /* date/time the other message was created */ 7 237 2 from pointer, /* -> address list of authors of the other message */ 7 238 2 subject like message_text_field; /* subject of the other message */ 7 239 7 240 dcl message_reference_subject character (message_reference.subject.text_lth) unaligned 7 241 based (message_reference.subject.text_ptr); 7 242 7 243 dcl message_reference_ptr pointer; 7 244 7 245 7 246 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate message references */ 7 247 7 248 dcl 1 message_reference_parameter aligned based (message_reference_parameter_ptr), 7 249 2 pad pointer, /* forces even word alignment */ 7 250 2 version character (8) unaligned, 7 251 2 reference like message_reference; 7 252 7 253 dcl MESSAGE_REFERENCE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 7 254 7 255 dcl message_reference_parameter_ptr pointer; 7 256 7 257 7 258 /* Definition of a text field in a message (Subject, Comment, or a user defined field) */ 7 259 7 260 dcl 1 message_text_field aligned based (message_text_field_ptr), 7 261 2 text_ptr pointer, /* -> the actual text */ 7 262 2 text_lth fixed binary (21), /* length of said text */ 7 263 2 flags, 7 264 3 multiline_text bit (1) unaligned, /* ON => the text of this field may span multiple lines; 7 265* OFF => the text will always be a single line */ 7 266 3 reserved bit (35) unaligned; /* for exclusive use of the mail system */ 7 267 7 268 dcl message_text_field_text character (message_text_field.text_lth) unaligned based (message_text_field.text_ptr); 7 269 7 270 dcl message_text_field_ptr pointer; 7 271 7 272 /* Definition of a section of the body of a message */ 7 273 7 274 dcl 1 message_body_section aligned based (message_body_section_ptr), 7 275 2 header, 7 276 3 section_type fixed binary, /* type of "text" stored in this section */ 7 277 3 section_n_lines fixed binary (21), /* # of lines in this section or -1 if indeterminate */ 7 278 2 section_type_variable bit (144); /* the actual data (see below) */ 7 279 7 280 dcl message_body_section_ptr pointer; 7 281 7 282 7 283 /* Defined types of message body sections */ 7 284 7 285 dcl (MESSAGE_PREFORMATTED_BODY_SECTION initial (1), /* text formatted by the authors/sender */ 7 286 MESSAGE_BIT_STRING_BODY_SECTION initial (2)) /* arbitrary bit string */ 7 287 fixed binary static options (constant); 7 288 7 289 7 290 /* Structures used to access the data for the different types of message body sections */ 7 291 7 292 dcl 1 message_preformatted_body_section aligned based (message_body_section_ptr), 7 293 2 header like message_body_section.header, 7 294 2 text_ptr pointer, /* -> the text */ 7 295 2 text_lth fixed binary (21), /* length of said text in characters */ 7 296 2 reserved bit (36); /* for exclusive use of the mail system */ 7 297 7 298 dcl message_preformatted_body_section_text character (message_preformatted_body_section.text_lth) unaligned 7 299 based (message_preformatted_body_section.text_ptr); 7 300 7 301 dcl 1 message_bit_string_body_section aligned based (message_body_section_ptr), 7 302 2 header like message_body_section.header, 7 303 2 bit_string_ptr pointer, /* -> the bit string */ 7 304 2 bit_string_lth fixed binary (24), /* length of said bit string in bits (obviously) */ 7 305 2 reserved bit (36); /* for exclusive use of the mail system */ 7 306 7 307 dcl message_bit_string_body_section_bit_string bit (message_bit_string_body_section.bit_string_lth) unaligned 7 308 based (message_bit_string_body_section.bit_string_ptr); 7 309 7 310 7 311 /* Structure used in calls to mail_system_ entrypoints which manipulate the sections of a message's body */ 7 312 7 313 dcl 1 message_body_section_parameter aligned based (message_body_section_parameter_ptr), 7 314 2 pad pointer, /* forces even word alignment */ 7 315 2 version character (8) unaligned, 7 316 2 section like message_body_section; 7 317 7 318 dcl MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsmbs02"); 7 319 7 320 dcl message_body_section_parameter_ptr pointer; 7 321 7 322 /* END INCLUDE FILE ... mlsys_message.incl.pl1 */ 490 491 492 end rdm_file_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1126.9 rdm_file_requests_.pl1 >udd>sm>ds>w>ml>rdm_file_requests_.pl1 478 1 10/27/83 2204.3 rdm_invocation.incl.pl1 >ldd>incl>rdm_invocation.incl.pl1 480 2 10/27/83 2204.3 rdm_message_list.incl.pl1 >ldd>incl>rdm_message_list.incl.pl1 482 3 10/27/83 2204.3 rdm_message_chains.incl.pl1 >ldd>incl>rdm_message_chains.incl.pl1 484 4 10/27/83 2204.2 sdm_invocation.incl.pl1 >ldd>incl>sdm_invocation.incl.pl1 486 5 10/27/83 2204.3 emf_writing_modes.incl.pl1 >ldd>incl>emf_writing_modes.incl.pl1 488 6 10/27/83 2204.2 mlsys_format_options.incl.pl1 >ldd>incl>mlsys_format_options.incl.pl1 490 7 05/22/86 1325.8 mlsys_message.incl.pl1 >ldd>incl>mlsys_message.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. ALL_MESSAGES 000047 constant fixed bin(17,0) initial dcl 3-42 set ref 284 293 298* APPEND_FILE constant fixed bin(17,0) initial dcl 5-6 ref 153 172 280 438 DEFAULT_FORMATTING_MODE constant fixed bin(17,0) initial dcl 6-22 ref 415 FORMAT_MESSAGE_OPTIONS_VERSION_1 000000 constant char(8) initial packed unaligned dcl 6-15 ref 413 NON_DELETED_MESSAGES constant fixed bin(17,0) initial dcl 3-42 ref 264 286 ONLY_DELETED_MESSAGES constant fixed bin(17,0) initial dcl 3-42 ref 285 PREFACE_FILE constant fixed bin(17,0) initial dcl 5-6 ref 182 P_rdm_invocation_ptr parameter pointer dcl 47 ref 38 137 169 179 212 217 P_sci_ptr parameter pointer dcl 46 ref 38 137 150 169 179 211 QUERY_TO_CREATE_FILE constant fixed bin(17,0) initial dcl 5-6 ref 192 SDM_INVOCATION 000002 constant char(8) initial packed unaligned dcl 4-36 ref 214 SILENTLY_CREATE_FILE constant fixed bin(17,0) initial dcl 5-6 ref 152 TRUNCATE_FILE constant fixed bin(17,0) initial dcl 5-6 ref 281 438 addr builtin function dcl 132 ref 424 424 argument based char packed unaligned dcl 62 set ref 274 274 274 277 277 280 281 281 284 284 285 285 286 286 289 289 290 290 293 293 295* 304* 310* 311* argument_idx 000114 automatic fixed bin(17,0) dcl 65 set ref 270* 272* 302* argument_lth 000112 automatic fixed bin(21,0) dcl 64 set ref 272* 274 274 274 277 277 280 281 281 284 284 285 285 286 286 289 289 290 290 293 293 295 295 298* 304 304 310 310 311 311 347* 348* argument_ptr 000110 automatic pointer dcl 63 set ref 272* 274 274 274 277 277 280 281 281 284 284 285 285 286 286 289 289 290 290 293 293 295 298* 304 310 311 347* 348* body 62 based structure level 2 dcl 7-15 check_star_name_$entry 000024 constant entry external dcl 99 ref 312 cleanup 000230 stack reference condition dcl 130 ref 144 190 code 000226 automatic fixed bin(35,0) dcl 89 set ref 229* 230 298* 300 310* 311 311* 312* 313 313 313 317* 348* 350 350* 366* 367 367 370* 389* 390 390* 424* 426 433* 434 434* cu_$arg_list_ptr 000026 constant entry external dcl 100 ref 453 453 cu_$grow_stack_frame 000030 constant entry external dcl 101 ref 229 current_message 77 based fixed bin(17,0) level 2 dcl 1-6 set ref 395* delete_after_processing 000133 automatic bit(1) dcl 77 set ref 267* 274* 277* 403 emf_writing_util_$close 000032 constant entry external dcl 102 ref 251 emf_writing_util_$open 000034 constant entry external dcl 103 ref 366 emf_writing_util_$write 000036 constant entry external dcl 105 ref 433 envelope_formatting_mode 3 000121 automatic fixed bin(17,0) level 2 dcl 72 set ref 415* error_table_$action_not_performed 000012 external static fixed bin(35,0) dcl 94 ref 367 error_table_$badopt 000014 external static fixed bin(35,0) dcl 94 set ref 295* error_table_$nostars 000016 external static fixed bin(35,0) dcl 94 set ref 313* expand_pathname_$add_suffix 000040 constant entry external dcl 106 ref 310 file_creation_mode 000223 automatic fixed bin(17,0) dcl 84 set ref 152* 192* 366* file_dirname 000135 automatic char(168) packed unaligned dcl 79 set ref 304* 304* 310* 313* 313* 317* 317* 366* 370* 370* 426* 426* 434* 434* 459* 459* file_ename 000207 automatic char(32) packed unaligned dcl 80 set ref 304* 304* 310* 312* 313* 313* 317* 317* 366* 370* 370* 426* 426* 434* 434* 459* 459* file_insertion_mode 000224 automatic fixed bin(17,0) dcl 85 set ref 153* 172* 182* 280* 281* 433* 438 438* file_ptr 000220 automatic pointer dcl 81 set ref 236* 251 251* 366* 433* file_uid 000222 automatic bit(36) dcl 82 set ref 251* 366* 433* first_message_idx 000300 automatic fixed bin(17,0) dcl 363 set ref 376* 381* 386 format_message_options based structure level 1 dcl 6-6 have_filename 000225 automatic bit(1) dcl 87 set ref 268* 304 309* 322 header 4 based structure level 3 in structure "message_body_section_parameter" dcl 7-313 in procedure "rdm_file_requests_" header based structure level 2 in structure "message_body_section" dcl 7-274 in procedure "rdm_file_requests_" header 64 based structure array level 4 in structure "message" dcl 7-15 in procedure "rdm_file_requests_" header based structure level 2 in structure "message_user_field" dcl 7-163 in procedure "rdm_file_requests_" header 4 based structure level 3 in structure "message_user_field_parameter" dcl 7-208 in procedure "rdm_file_requests_" header 10 based structure array level 3 in structure "message_user_fields_list" dcl 7-150 in procedure "rdm_file_requests_" header_formatting_mode 4 000121 automatic fixed bin(17,0) level 2 dcl 72 set ref 415* idx 000270 automatic fixed bin(17,0) dcl 335 set ref 346* 347* include_body 6 000121 automatic bit(1) level 2 dcl 72 set ref 417* index builtin function dcl 132 ref 274 internal_buffer 000100 automatic char(256) packed unaligned dcl 450 set ref 453* 464 internal_buffer_used 000200 automatic fixed bin(21,0) dcl 451 set ref 453* 459 464 464 468 ioa_$general_rs 000042 constant entry external dcl 107 ref 453 is_original_request 000132 automatic bit(1) dcl 75 set ref 216* 224* 274 277 337 last_message_idx 000301 automatic fixed bin(17,0) dcl 363 set ref 377* 382* 386 length builtin function dcl 132 ref 424 424 456 459 line_length 2 000121 automatic fixed bin(17,0) level 2 dcl 72 set ref 414* local_fmo 000121 automatic structure level 1 dcl 72 set ref 424 424 mailbox_info 6 based structure level 2 dcl 1-6 mailbox_name 24 based varying char(168) level 3 dcl 1-6 set ref 390* marked 20 based pointer level 4 dcl 1-6 ref 376 382 387 marked_chain based structure level 1 dcl 3-30 message based structure level 1 dcl 7-15 message_body_section based structure level 1 dcl 7-274 message_buffer based char packed unaligned dcl 67 ref 424 424 456 459 459 464 464 message_buffer_ptr 000116 automatic pointer dcl 69 set ref 236* 249 249* 372* 424* 424 424 433 456 459 464 message_chain based structure level 1 dcl 3-7 message_chains 12 based structure level 3 dcl 1-6 message_envelope based structure level 1 dcl 7-61 message_idx 000303 automatic fixed bin(17,0) dcl 363 set ref 386* 387* message_idx_increment 000302 automatic fixed bin(17,0) dcl 363 set ref 378* 383* 386 message_number 000304 automatic fixed bin(17,0) dcl 363 set ref 387* 389* 390* 395* 400* 421* 426* 431* 434* 459* message_ptr 000242 automatic pointer dcl 7-53 set ref 389* 421 421 421 424* message_redistribution based structure level 1 dcl 7-122 message_reference based structure level 1 dcl 7-234 message_specifier_idxs based fixed bin(17,0) array dcl 57 set ref 229 229 302* 347* message_specifier_idxs_ptr 000102 automatic pointer dcl 58 set ref 229 229 229* 302 347 message_text based char packed unaligned dcl 68 set ref 433* message_text_field based structure level 1 dcl 7-260 message_text_lth 000120 automatic fixed bin(21,0) dcl 70 set ref 419* 424* 433 433 456 459 464 468* 468 message_type 000106 automatic fixed bin(17,0) dcl 60 set ref 264* 284* 285* 286* 293* 341* 348* message_user_field based structure level 1 dcl 7-163 messages 1 based fixed bin(17,0) array level 2 dcl 3-30 ref 387 mlsys_et_$message_too_large 000020 external static fixed bin(35,0) dcl 94 set ref 426* 459* mlsys_utils_$format_message 000044 constant entry external dcl 109 ref 424 n_arguments 000113 automatic fixed bin(17,0) dcl 65 set ref 226* 228 270 n_message_specifiers 000105 automatic fixed bin(17,0) dcl 59 set ref 232* 301* 301 302 337 346 n_message_specifiers_allocated 000104 automatic fixed bin(17,0) dcl 59 set ref 228* 229 229 n_messages based fixed bin(17,0) level 2 dcl 3-30 ref 376 382 null builtin function dcl 132 ref 219 236 249 251 p_accept_extend_truncate parameter bit(1) dcl 262 ref 259 280 281 p_allow_original_request parameter bit(1) dcl 209 ref 206 214 pathname_ 000046 constant entry external dcl 111 ref 304 304 313 313 317 317 370 370 426 426 434 434 459 459 rdm_invocation based structure level 1 dcl 1-6 rdm_invocation_ptr 000236 automatic pointer dcl 1-53 in procedure "rdm_file_requests_" set ref 142 147 150 162 212* 214 218* 219 234* 298* 337* 341* 348* 372 376 382 387 389* 390 395* 395 400* 403* rdm_invocation_ptr 16 based pointer level 2 in structure "sdm_invocation" dcl 4-6 in procedure "rdm_file_requests_" ref 218 rdm_mailbox_interface_$delete_messages 000050 constant entry external dcl 112 ref 403 rdm_mailbox_interface_$mark_processed_and_acknowledge 000052 constant entry external dcl 113 ref 400 rdm_mailbox_interface_$read_message 000054 constant entry external dcl 114 ref 389 rdm_mailbox_interface_$set_new_current_msg 000056 constant entry external dcl 115 ref 395 rdm_message_mark_mgr_$clear_marked_messages 000060 constant entry external dcl 116 ref 234 rdm_message_mark_mgr_$mark_current_message 000062 constant entry external dcl 117 ref 341 rdm_message_mark_mgr_$mark_messages 000064 constant entry external dcl 118 ref 348 rdm_message_mark_mgr_$remark_original_messages 000066 constant entry external dcl 120 ref 337 rdm_message_mark_mgr_$validate_message_specifier 000070 constant entry external dcl 121 ref 298 redistributions_list_formatting_mode 5 000121 automatic fixed bin(17,0) level 2 dcl 72 set ref 415* rest_of_message_buffer defined char packed unaligned dcl 456 set ref 459 464* reverse_processing 000134 automatic bit(1) dcl 77 set ref 266* 289* 290* 375 saved_rdm_sci_ptr 000130 automatic pointer dcl 74 set ref 142* 147 162 sci_ptr 2 based pointer level 2 in structure "rdm_invocation" dcl 1-6 in procedure "rdm_file_requests_" set ref 142 147* 150* 162* 372* sci_ptr 000100 automatic pointer dcl 52 in procedure "rdm_file_requests_" set ref 211* 219* 222* 226* 230* 249* 272* 295* 304* 311* 313* 317* 322* 322* 322* 347* 350* 366* 367* 370* 390* 426* 434* 459* sdm_invocation based structure level 1 dcl 4-6 sdm_invocation_ptr 000240 automatic pointer dcl 4-38 set ref 217* 218 size builtin function dcl 132 ref 229 229 ssu_$abort_line 000072 constant entry external dcl 123 ref 219 222 230 295 304 311 313 317 322 350 367 370 390 426 434 459 ssu_$arg_count 000074 constant entry external dcl 124 ref 226 ssu_$arg_ptr 000076 constant entry external dcl 125 ref 272 347 ssu_$get_request_name 000100 constant entry external dcl 126 ref 322 322 ssu_$get_temp_segment 000102 constant entry external dcl 127 ref 372 ssu_$release_temp_segment 000104 constant entry external dcl 128 ref 249 ssu_et_$unimplemented_request 000022 external static fixed bin(35,0) dcl 94 set ref 222* substr builtin function dcl 132 set ref 464* 464 sys_info$max_seg_size 000010 external static fixed bin(19,0) dcl 91 ref 424 424 456 459 464 total_lines 62 based fixed bin(21,0) level 3 dcl 7-15 set ref 421 421* 421 type based char(8) level 2 dcl 1-6 ref 214 version 000121 automatic char(8) level 2 packed packed unaligned dcl 72 set ref 413* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BRIEF_FORMATTING_MODE internal static fixed bin(17,0) initial dcl 6-22 CREATE_AND_ANNOUNCE_FILE internal static fixed bin(17,0) initial dcl 5-6 DEFAULT_INCLUDE_SELF internal static bit(2) initial dcl 1-60 DONT_CREATE_FILE internal static fixed bin(17,0) initial dcl 5-6 INCLUDE_SELF internal static bit(2) initial dcl 1-60 LONG_FORMATTING_MODE internal static fixed bin(17,0) initial dcl 6-22 MESSAGE_ADDRESS_LIST_USER_FIELD internal static fixed bin(17,0) initial dcl 7-174 MESSAGE_BIT_STRING_BODY_SECTION internal static fixed bin(17,0) initial dcl 7-285 MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 7-318 MESSAGE_DATE_USER_FIELD internal static fixed bin(17,0) initial dcl 7-174 MESSAGE_ENVELOPE_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 7-79 MESSAGE_INTEGER_USER_FIELD internal static fixed bin(17,0) initial dcl 7-174 MESSAGE_PREFORMATTED_BODY_SECTION internal static fixed bin(17,0) initial dcl 7-285 MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 7-117 MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 7-144 MESSAGE_REFERENCES_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 7-227 MESSAGE_REFERENCE_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 7-253 MESSAGE_TEXT_USER_FIELD internal static fixed bin(17,0) initial dcl 7-174 MESSAGE_TRACE_VERSION_2 internal static char(8) initial packed unaligned dcl 7-103 MESSAGE_USER_FIELDS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 7-158 MESSAGE_USER_FIELD_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 7-213 MESSAGE_VERSION_2 internal static char(8) initial packed unaligned dcl 7-49 MODIFIED_MESSAGE internal static fixed bin(17,0) initial dcl 4-47 NONE_FORMATTING_MODE internal static fixed bin(17,0) initial dcl 6-22 NO_INCLUDE_SELF internal static bit(2) initial dcl 1-60 PROCESSED_MESSAGE internal static fixed bin(17,0) initial dcl 4-47 RDM_INVOCATION internal static char(8) initial packed unaligned dcl 1-51 UNPROCESSED_MESSAGE internal static fixed bin(17,0) initial dcl 4-47 all_chain based structure level 1 dcl 3-23 deleted_chain based structure level 1 dcl 3-25 format_message_options_ptr automatic pointer dcl 6-17 marked_as_original_chain based structure level 1 dcl 3-37 message_address_list_user_field based structure level 1 dcl 7-190 message_bit_string_body_section based structure level 1 dcl 7-301 message_bit_string_body_section_bit_string based bit packed unaligned dcl 7-307 message_body_section_parameter based structure level 1 dcl 7-313 message_body_section_parameter_ptr automatic pointer dcl 7-320 message_body_section_ptr automatic pointer dcl 7-280 message_chain_ptr automatic pointer dcl 3-11 message_date_user_field based structure level 1 dcl 7-195 message_envelope_parameter based structure level 1 dcl 7-74 message_envelope_parameter_ptr automatic pointer dcl 7-81 message_envelope_ptr automatic pointer dcl 7-69 message_integer_user_field based structure level 1 dcl 7-200 message_list based structure level 1 dcl 2-13 message_list_n_messages automatic fixed bin(17,0) dcl 2-25 message_n_body_sections automatic fixed bin(17,0) dcl 7-55 message_n_redistributions automatic fixed bin(17,0) dcl 7-55 message_n_user_fields automatic fixed bin(17,0) dcl 7-55 message_preformatted_body_section based structure level 1 dcl 7-292 message_preformatted_body_section_text based char packed unaligned dcl 7-298 message_redistribution_comment based char packed unaligned dcl 7-131 message_redistribution_parameter based structure level 1 dcl 7-139 message_redistribution_parameter_ptr automatic pointer dcl 7-146 message_redistribution_ptr automatic pointer dcl 7-134 message_redistributions_list based structure level 1 dcl 7-109 message_reference_parameter based structure level 1 dcl 7-248 message_reference_parameter_ptr automatic pointer dcl 7-255 message_reference_ptr automatic pointer dcl 7-243 message_reference_subject based char packed unaligned dcl 7-240 message_references_list based structure level 1 dcl 7-219 message_references_list_n_references automatic fixed bin(17,0) dcl 7-55 message_references_list_ptr automatic pointer dcl 7-229 message_subject based char packed unaligned dcl 7-51 message_text_field_ptr automatic pointer dcl 7-270 message_text_field_text based char packed unaligned dcl 7-268 message_text_user_field based structure level 1 dcl 7-183 message_text_user_field_text based char packed unaligned dcl 7-187 message_trace based structure level 1 dcl 7-87 message_trace_n_relays automatic fixed bin(17,0) dcl 7-55 message_trace_ptr automatic pointer dcl 7-105 message_user_field_parameter based structure level 1 dcl 7-208 message_user_field_parameter_ptr automatic pointer dcl 7-215 message_user_field_ptr automatic pointer dcl 7-169 message_user_fields_list based structure level 1 dcl 7-150 rdm_area based area(1024) dcl 1-55 sdm_area based area(1024) dcl 4-40 undeleted_chain based structure level 1 dcl 3-24 NAMES DECLARED BY EXPLICIT CONTEXT. APPEND_PREFACE_COMMON 000377 constant label dcl 187 ref 173 add_to_buffer 002655 constant entry internal dcl 447 ref 421 431 append_request 000356 constant entry external dcl 169 cleanup_request 000635 constant entry internal dcl 246 ref 146 161 190 200 mark_appropriate_messages 001630 constant entry internal dcl 332 ref 157 196 preface_request 000370 constant entry external dcl 179 process_arguments 000701 constant entry internal dcl 259 ref 155 194 process_messages 001761 constant entry internal dcl 360 ref 159 198 process_single_message 002331 constant entry internal dcl 410 ref 398 rdm_file_requests_ 000252 constant entry external dcl 38 setup_request 000442 constant entry internal dcl 206 ref 140 187 write_request 000262 constant entry external dcl 137 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3572 3700 3046 3602 Length 4312 3046 106 375 524 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rdm_file_requests_ 572 external procedure is an external procedure. on unit on line 144 64 on unit on unit on line 190 64 on unit setup_request internal procedure shares stack frame of external procedure rdm_file_requests_. cleanup_request 80 internal procedure is called by several nonquick procedures. process_arguments internal procedure shares stack frame of external procedure rdm_file_requests_. mark_appropriate_messages internal procedure shares stack frame of external procedure rdm_file_requests_. process_messages internal procedure shares stack frame of external procedure rdm_file_requests_. process_single_message internal procedure shares stack frame of external procedure rdm_file_requests_. add_to_buffer 260 internal procedure is declared options(variable). begin block on line 455 begin block shares stack frame of internal procedure add_to_buffer. 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 rdm_file_requests_ 000100 sci_ptr rdm_file_requests_ 000102 message_specifier_idxs_ptr rdm_file_requests_ 000104 n_message_specifiers_allocated rdm_file_requests_ 000105 n_message_specifiers rdm_file_requests_ 000106 message_type rdm_file_requests_ 000110 argument_ptr rdm_file_requests_ 000112 argument_lth rdm_file_requests_ 000113 n_arguments rdm_file_requests_ 000114 argument_idx rdm_file_requests_ 000116 message_buffer_ptr rdm_file_requests_ 000120 message_text_lth rdm_file_requests_ 000121 local_fmo rdm_file_requests_ 000130 saved_rdm_sci_ptr rdm_file_requests_ 000132 is_original_request rdm_file_requests_ 000133 delete_after_processing rdm_file_requests_ 000134 reverse_processing rdm_file_requests_ 000135 file_dirname rdm_file_requests_ 000207 file_ename rdm_file_requests_ 000220 file_ptr rdm_file_requests_ 000222 file_uid rdm_file_requests_ 000223 file_creation_mode rdm_file_requests_ 000224 file_insertion_mode rdm_file_requests_ 000225 have_filename rdm_file_requests_ 000226 code rdm_file_requests_ 000236 rdm_invocation_ptr rdm_file_requests_ 000240 sdm_invocation_ptr rdm_file_requests_ 000242 message_ptr rdm_file_requests_ 000270 idx mark_appropriate_messages 000300 first_message_idx process_messages 000301 last_message_idx process_messages 000302 message_idx_increment process_messages 000303 message_idx process_messages 000304 message_number process_messages THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_$entry cu_$arg_list_ptr cu_$grow_stack_frame emf_writing_util_$close emf_writing_util_$open emf_writing_util_$write expand_pathname_$add_suffix ioa_$general_rs mlsys_utils_$format_message pathname_ rdm_mailbox_interface_$delete_messages rdm_mailbox_interface_$mark_processed_and_acknowledge rdm_mailbox_interface_$read_message rdm_mailbox_interface_$set_new_current_msg rdm_message_mark_mgr_$clear_marked_messages rdm_message_mark_mgr_$mark_current_message rdm_message_mark_mgr_$mark_messages rdm_message_mark_mgr_$remark_original_messages rdm_message_mark_mgr_$validate_message_specifier 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_$nostars mlsys_et_$message_too_large ssu_et_$unimplemented_request sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 38 000246 41 000257 137 000260 140 000267 142 000273 144 000276 146 000312 147 000317 148 000324 150 000325 152 000332 153 000334 155 000336 157 000342 159 000343 161 000344 162 000350 164 000353 169 000354 172 000363 173 000365 179 000366 182 000375 187 000377 190 000403 192 000425 194 000427 196 000433 198 000434 200 000435 202 000441 206 000442 211 000444 212 000450 214 000453 216 000462 217 000464 218 000467 219 000471 221 000522 222 000523 224 000541 226 000542 228 000553 229 000555 230 000571 232 000620 234 000621 236 000630 238 000633 246 000634 249 000642 251 000657 253 000700 259 000701 264 000703 266 000705 267 000706 268 000707 270 000710 272 000717 274 000734 277 000770 280 001005 281 001022 284 001040 285 001054 286 001067 289 001102 290 001115 293 001127 295 001142 298 001174 300 001230 301 001232 302 001233 303 001237 304 001240 309 001323 310 001325 311 001363 312 001417 313 001434 317 001512 320 001561 322 001563 326 001627 332 001630 337 001631 341 001645 346 001657 347 001665 348 001703 350 001737 351 001756 354 001760 360 001761 366 001762 367 002022 370 002045 372 002113 375 002140 376 002142 377 002145 378 002147 379 002151 381 002152 382 002154 383 002157 386 002161 387 002202 389 002206 390 002223 395 002262 398 002276 400 002277 401 002310 403 002313 406 002330 410 002331 413 002332 414 002335 415 002337 417 002343 419 002345 421 002346 424 002410 426 002436 431 002514 433 002534 434 002570 438 002646 441 002653 447 002654 453 002662 456 002737 459 002745 464 003023 468 003035 470 003036 ----------------------------------------------------------- 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