COMPILATION LISTING OF SEGMENT sdm_original_requests_ Compiled by: Multics PL/I Compiler, Release 32e, of September 22, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 10/02/89 0823.2 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(89-04-13,Lee), approve(89-05-10,MCR8104), 13* audit(89-07-18,LZimmerman), install(89-10-02,MR12.3-1079): 14* phx21011, phx20089, phx18851, phx13551 (Mail 401) - fixed incorrect 15* sci_ptr used by in_reply_to_request; reformatting. 16* END HISTORY COMMENTS */ 17 18 19 /* format: off */ 20 21 /* send_mail requests which are valid only within invocations created by the read_mail reply request. These requests are: 22* in_reply_to -- displays/modifies the list of reply references for this message */ 23 24 /* Created: October 1983 by G. Palter */ 25 26 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 27 28 29 sdm_original_requests_: 30 procedure (P_sci_ptr, P_sdm_invocation_ptr); 31 32 return; /* not an entrypoint */ 33 34 35 /* Parameters */ 36 37 dcl P_sci_ptr pointer parameter; 38 dcl P_sdm_invocation_ptr pointer parameter; 39 40 41 /* Local copies of parameters */ 42 43 dcl sci_ptr pointer; 44 45 46 /* Remaining declarations */ 47 48 dcl argument character (argument_lth) unaligned based (argument_ptr); 49 dcl argument_ptr pointer; 50 dcl argument_lth fixed binary (21); 51 dcl (n_arguments, argument_idx) fixed binary; 52 53 dcl message_specifier_idxs (n_message_specifiers_allocated) fixed binary based (message_specifier_idxs_ptr); 54 dcl message_specifier_idxs_ptr pointer; 55 dcl (n_message_specifiers_allocated, n_message_specifiers) fixed binary; 56 dcl message_type fixed binary; /* type of messages to select (all/undeleted/deleted) */ 57 58 dcl saved_rdm_sci_ptr pointer; /* used to prevent errors from aborting the reply request */ 59 60 dcl reset_to_reply_messages bit (1) aligned; /* ON => reset reply references to their original value */ 61 62 dcl (message_idx, message_number, idx) fixed binary; 63 dcl original_message_ptr pointer; 64 65 dcl code fixed binary (35); 66 67 dcl iox_$user_output pointer external; 68 69 dcl error_table_$badopt fixed binary (35) external; 70 dcl error_table_$inconsistent fixed binary (35) external; 71 72 dcl cu_$grow_stack_frame entry (fixed binary (19), pointer, fixed binary (35)); 73 dcl ioa_ entry () options (variable); 74 dcl mail_system_$add_reply_reference entry (pointer, pointer, fixed binary, fixed binary (35)); 75 dcl mail_system_$delete_reply_reference entry (pointer, fixed binary, fixed binary (35)); 76 dcl mlsys_utils_$print_references_list_field 77 entry (character (*) varying, pointer, fixed binary, pointer, fixed binary (35)); 78 dcl rdm_mailbox_interface_$read_message entry (pointer, fixed binary, pointer, fixed binary (35)); 79 dcl rdm_message_mark_mgr_$clear_marked_messages entry (pointer); 80 dcl rdm_message_mark_mgr_$mark_messages 81 entry (pointer, pointer, fixed binary (21), fixed binary, bit (*), fixed binary (35)); 82 dcl rdm_message_mark_mgr_$remark_original_messages entry (pointer); 83 dcl ssu_$abort_line entry () options (variable); 84 dcl ssu_$arg_count entry (pointer, fixed binary); 85 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 86 87 dcl cleanup condition; 88 89 dcl (index, size) builtin; 90 91 /* The "in_reply_to" request: displays or modifies the In-Reply-To field. The In-Reply-To field contains the list of 92* original messages for which the message being created by this send_mail invocation is a reply */ 93 94 in_reply_to_request: 95 entry (P_sci_ptr, P_sdm_invocation_ptr); 96 97 sci_ptr = P_sci_ptr; 98 99 sdm_invocation_ptr = P_sdm_invocation_ptr; 100 message_ptr = sdm_invocation.message_ptr; 101 102 call ssu_$arg_count (sci_ptr, n_arguments); 103 104 105 if n_arguments = 0 then do; 106 107 /* No arguments given -- print the current value of the In-Reply-To field */ 108 109 if message.n_reply_references = 0 then 110 call ioa_ ("^a: ", REPLY_REFERENCES_FIELDNAME); 111 112 else do; 113 call mlsys_utils_$print_references_list_field (REPLY_REFERENCES_FIELDNAME, message.reply_references, 114 0 /* use the terminal's line-length */, iox_$user_output, code); 115 if code ^= 0 then 116 call ssu_$abort_line (sci_ptr, code, "Displaying the ^a field.", REPLY_REFERENCES_FIELDNAME); 117 end; 118 end; 119 120 121 else do; 122 123 /* Arguments given -- change the In-Reply-To field to reference only those messages identified by the given message 124* specifiers; the control argument "-default" may be used to restore the field to the original list supplied by the 125* read_mail reply request */ 126 127 rdm_invocation_ptr = sdm_invocation.rdm_invocation_ptr; 128 129 saved_rdm_sci_ptr = rdm_invocation.sci_ptr; /* for cleanup handler ... */ 130 131 on condition (cleanup) 132 begin; 133 rdm_invocation.sci_ptr = saved_rdm_sci_ptr; 134 end; 135 136 /* phx20089 RL - control action taken by aborts when rdm_invocation.sci_ptr is used; */ 137 /* prevent aborts beyond current invocation */ 138 rdm_invocation.sci_ptr = P_sci_ptr; 139 140 n_message_specifiers_allocated = n_arguments;/* can't have more message specifiers than arguments */ 141 call cu_$grow_stack_frame (size (message_specifier_idxs), message_specifier_idxs_ptr, code); 142 if code ^= 0 then call ssu_$abort_line (sci_ptr, 0, "Too many message specifiers on the request line."); 143 144 n_message_specifiers = 0; 145 146 call rdm_message_mark_mgr_$clear_marked_messages (rdm_invocation_ptr); 147 148 /*** Argument processing */ 149 150 message_type = NON_DELETED_MESSAGES; /* defaults to "-only_non_deleted" */ 151 reset_to_reply_messages = "0"b; /* "-default" not seen */ 152 153 do argument_idx = 1 to n_arguments; 154 155 call ssu_$arg_ptr (sci_ptr, argument_idx, argument_ptr, argument_lth); 156 if index (argument, "-") = 1 then /* a control argument */ 157 if (argument = "-default") | (argument = "-dft") then reset_to_reply_messages = "1"b; 158 else if (argument = "-no_default") | (argument = "-ndft") then reset_to_reply_messages = "0"b; 159 160 else if (argument = "-include_deleted") | (argument = "-idl") then message_type = ALL_MESSAGES; 161 else if (argument = "-only_deleted") | (argument = "-odl") then 162 message_type = ONLY_DELETED_MESSAGES; 163 else if (argument = "-only_non_deleted") | (argument = "-ondl") then 164 message_type = NON_DELETED_MESSAGES; 165 166 else call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a""", argument); 167 168 else do; /* a mesage specifier */ 169 n_message_specifiers = n_message_specifiers + 1; 170 message_specifier_idxs (n_message_specifiers) = argument_idx; 171 end; 172 end; 173 174 if (n_message_specifiers > 0) & reset_to_reply_messages then 175 call ssu_$abort_line (sci_ptr, error_table_$inconsistent, """-default"" and message specifiers."); 176 177 /*** Mark the appropriate messages */ 178 179 if reset_to_reply_messages then /* restore the In-Reply-To field to its initial value */ 180 call rdm_message_mark_mgr_$remark_original_messages (rdm_invocation_ptr); 181 else do; /* use the given message specifiers */ 182 do idx = 1 to n_message_specifiers; 183 call ssu_$arg_ptr (sci_ptr, message_specifier_idxs (idx), argument_ptr, argument_lth); 184 call rdm_message_mark_mgr_$mark_messages (rdm_invocation_ptr, argument_ptr, argument_lth, 185 message_type, ""b, code); 186 if code ^= 0 then call ssu_$abort_line (P_sci_ptr, code); 187 end; 188 end; 189 190 /*** Construct the new list of original messages */ 191 192 original_messages_n_original_messages = marked_chain.n_messages; 193 194 allocate original_messages in (sdm_area) set (original_messages_ptr); 195 original_messages.version = ORIGINAL_MESSAGES_VERSION_1; 196 197 do message_idx = 1 to marked_chain.n_messages; 198 message_number = marked_chain.messages (message_idx); 199 200 call rdm_mailbox_interface_$read_message (rdm_invocation_ptr, message_number, original_message_ptr, 201 code); 202 if code ^= 0 then 203 call ssu_$abort_line (sci_ptr, code, "Reading message #^d from ^a.", message_number, 204 rdm_invocation.mailbox_name); 205 206 original_messages.messages (message_idx).message_ptr = original_message_ptr; 207 original_messages.messages (message_idx).message_idx = message_number; 208 end; 209 210 /*** Delete the old In-Reply-To field */ 211 212 do idx = message.n_reply_references to 1 by -1; 213 call mail_system_$delete_reply_reference (message_ptr, idx, code); 214 if code ^= 0 then 215 call ssu_$abort_line (P_sci_ptr, code, "Deleting the ^a field.", REPLY_REFERENCES_FIELDNAME); 216 end; 217 218 219 /*** Build the new In-Reply-To field */ 220 221 sdm_invocation.original_messages_ptr = original_messages_ptr; 222 223 do idx = 1 to original_messages.n_original_messages; 224 call mail_system_$add_reply_reference (message_ptr, original_messages.messages (idx).message_ptr, 225 (-1), code); 226 if code ^= 0 then 227 call ssu_$abort_line (sci_ptr, code, "Adding message #^d to the new message's ^a field.", 228 message_number, REPLY_REFERENCES_FIELDNAME); 229 end; 230 231 if sdm_invocation.message_state = PROCESSED_MESSAGE then sdm_invocation.message_state = MODIFIED_MESSAGE; 232 233 rdm_invocation.sci_ptr = saved_rdm_sci_ptr; 234 end; 235 236 return; 237 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 */ 238 239 2 1 /* BEGIN INCLUDE FILE ... sdm_original_messages.incl.pl1 */ 2 2 /* Created: August 1983 by G. Palter */ 2 3 2 4 /* Definition of the list of original messages for which this message is a reply: send_mail must keep track of this list 2 5* separately from the copy in the message itself as, when qedx/apply -header is used, the mail system can not convert the 2 6* printed representation of the In-Reply-To field back into its internal form; therefore, send_mail will delete the the 2 7* list of reply references from the message before allowing the user to edit the message and will restore the list on 2 8* return from the editor. This list is also used by callers of the send_mail subsystem (ie: read_mail's reply request) 2 9* to supply the initial content for the reply references of the message; if requested, send_mail will extract the message 2 10* body from these message(s) for inclusion in the body of the message being created by the user */ 2 11 2 12 dcl 1 original_messages aligned based (original_messages_ptr), 2 13 2 version character (8) unaligned, 2 14 2 pad bit (36), 2 15 2 n_original_messages fixed binary, /* # of original messages listed herein */ 2 16 2 messages (original_messages_n_original_messages refer (original_messages.n_original_messages)), 2 17 3 message_ptr pointer, /* ... -> the message */ 2 18 3 message_idx fixed binary, /* ... # assigned to the message by read_mail */ 2 19 3 pad bit (36); 2 20 2 21 dcl ORIGINAL_MESSAGES_VERSION_1 character (8) static options (constant) initial ("sdmoml01"); 2 22 2 23 dcl original_messages_n_original_messages fixed binary; /* required to allocate the above structure */ 2 24 2 25 dcl original_messages_ptr pointer; 2 26 2 27 2 28 /* END INCLUDE FILE ... sdm_original_messages.incl.pl1 */ 240 241 3 1 /* BEGIN INCLUDE FILE ... rdm_invocation.incl.pl1 */ 3 2 /* Created: September 1983 by G. Palter from portions of emf_info.incl.pl1 */ 3 3 3 4 /* Definition of a single invocation of read_mail */ 3 5 3 6 dcl 1 rdm_invocation aligned based (rdm_invocation_ptr), 3 7 2 type character (8), /* defines this structure as a read_mail invocation */ 3 8 2 sci_ptr pointer, /* -> subsystem utilities invocation data */ 3 9 2 area_ptr pointer, /* -> area to be used by the subsystem */ 3 10 3 11 2 mailbox_info, 3 12 3 mailbox_ptr pointer, /* -> mailbox structure being examined by this invocation */ 3 13 3 message_list_ptr pointer, /* -> list of read_mail specific information retained for each 3 14* message (eg: the "processed" flag) */ 3 15 3 message_chains, /*the various message chains ... */ 3 16 4 all pointer, /* ... all unexpunged messages */ 3 17 4 undeleted pointer, /* ... all undeleted messages */ 3 18 4 deleted pointer, /* ... all deleted messages */ 3 19 4 marked pointer, /* ... messages to be processed by the current request */ 3 20 4 marked_as_original pointer, /* ... messages being processed by a reply/forward request */ 3 21 3 mailbox_name character (168) varying, /* name of the mailbox (your mailbox/logbox/pathname) */ 3 22 3 23 2 current_message fixed binary, /* index of the current message; 0 => no current message */ 3 24 3 25 2 last_search_buffer, /* describes the buffer where read_mail constructs the ... */ 3 26 3 buffer_ptr pointer, /* ... the printed representation of messages in order ... */ 3 27 3 buffer_used fixed binary (21), /* ... to speed up regular expression searching */ 3 28 3 29 2 global_options, /* command line options affecting all of read_mail ... */ 3 30 3 flags, 3 31 4 acknowledge bit (1) unaligned, /* ... ON => acknowledge messages after printing */ 3 32 4 brief bit (1) unaligned, /* ... ON => shorten some messages and omit others */ 3 33 4 debug_mode bit (1) unaligned, /* ... ON => enable debugging features */ 3 34 4 pad bit (33) unaligned, 3 35 3 36 2 print_options, /* command line options affecting the print request ... */ 3 37 3 formatting_mode fixed binary, /* ... output mode for the message header, etc. */ 3 38 3 39 2 reply_options, /* command line options affecting the reply request ... */ 3 40 3 line_length fixed binary, /* ... line length to be used by send_mail for filling */ 3 41 3 indentation fixed binary, /* ... amount to indent original text when included */ 3 42 3 flags, 3 43 4 include_original bit (1) unaligned, /* ... ON => include original message text in the reply */ 3 44 4 include_authors bit (1) unaligned, /* ... ON => include original authors as recipients */ 3 45 4 include_recipients bit (1) unaligned, /* ... ON => include original recipients as recipients */ 3 46 4 include_self bit (2) unaligned, /* ... ON => include this user as a recipient of the reply if 3 47* selected by include_authors/include_recipients */ 3 48 4 fill_control bit (2) unaligned, /* ... controls message filling by send_mail */ 3 49 4 pad bit (29) unaligned; 3 50 3 51 dcl RDM_INVOCATION character (8) static options (constant) initial ("rdm_0009"); 3 52 3 53 dcl rdm_invocation_ptr pointer; 3 54 3 55 dcl rdm_area area based (rdm_invocation.area_ptr); 3 56 3 57 3 58 /* Defined settings for reply_options.include_self */ 3 59 3 60 dcl (DEFAULT_INCLUDE_SELF initial ("00"b), /* neither -include_self nor -no_include_self given */ 3 61 NO_INCLUDE_SELF initial ("01"b), /* -no_include_self explicitly given */ 3 62 INCLUDE_SELF initial ("10"b)) /* -include_self explicitly given */ 3 63 bit (2) aligned static options (constant); 3 64 3 65 /* END INCLUDE FILE ... rdm_invocation.incl.pl1 */ 242 243 4 1 /* BEGIN INCLUDE FILE ... rdm_message_list.incl.pl1 */ 4 2 /* Created: September 1983 by G. Palter */ 4 3 4 4 /* Definition of per-message data maintained by read_mail: This list is maintined in parallel to the mailbox structure by 4 5* read_mail's interface to the mail_system_ mailbox manager (rdm_mailbox_interface_). It serves two purposes: 4 6* (1) It provides a place to store read_mail-specific per-message data (ie: the processed flag). 4 7* (2) It provides the ability to provide arbitrary mappings between read_mail message numbers and the actual indeces 4 8* within the mailbox structure. This mapping allows read_mail to preserve its message numbers for an invocation 4 9* even if messages are expunged which causes them to disappear from the mailbox structure (NB: the "expunge" 4 10* request is not yet implemented). This mapping also allows read_mail to present the messages in the mailbox to 4 11* the user in a different order than they actually appear in the mailbox (eg: sorted by date/time created) */ 4 12 4 13 dcl 1 message_list aligned based (rdm_invocation.message_list_ptr), 4 14 2 n_messages fixed binary, /* # of messages known to read_mail at present */ 4 15 2 pad bit (36), 4 16 2 messages (message_list_n_messages refer (message_list.n_messages)), 4 17 3 message_idx fixed binary, /* index of this message in the mailbox structure */ 4 18 3 flags, 4 19 4 processed bit (1) unaligned, /* ON => this message may be deleted without query */ 4 20 4 pad bit (35) unaligned, 4 21 3 search_text, /* describes copy of messages used for regexp searches */ 4 22 4 search_text_ptr pointer, /* ... -> the saved printed represetnation */ 4 23 4 search_text_lth fixed binary (21); /* ... length of said representation in characters */ 4 24 4 25 dcl message_list_n_messages fixed binary; 4 26 4 27 /* END INCLUDE FILE ... rdm_message_list.incl.pl1 */ 244 245 5 1 /* BEGIN INCLUDE FILE ... rdm_message_chains.incl.pl1 */ 5 2 /* Created: September 1983 by G. Palter */ 5 3 5 4 5 5 /* Definition of a read_mail message chain */ 5 6 5 7 dcl 1 message_chain aligned based (message_chain_ptr), 5 8 2 n_messages fixed binary, /* # of messages in the chain */ 5 9 2 messages (message_list.n_messages) fixed binary; /* read_mail message numbers of the messages in the chain */ 5 10 5 11 dcl message_chain_ptr pointer; 5 12 5 13 5 14 /* Message chains maintained by read_mail's interface to the mail_system_ mailbox manager (rdm_mailbox_interface_) -- 5 15* (1) The first chain is a list of all messages in the mailbox which have not yet been expunged and consists of all 5 16* messages whether or not they have been marked for deletion. 5 17* (2) The second chain is a list of all messages in the mailbox which have not been marked for later deletion. 5 18* (3) The third chain is a list of all messages which have been marked for later deletion. 5 19* The message specifier parser uses one of these three chains as the basis for selecting the messages to be processed by 5 20* a request based on the use of "-include_deleted", "-only_non_deleted", or "-only_deleted", respectively; in this way, 5 21* the amount of code in the parser which must distinguish between these three types of selections is minimized */ 5 22 5 23 dcl 1 all_chain aligned based (rdm_invocation.message_chains.all) like message_chain; 5 24 dcl 1 undeleted_chain aligned based (rdm_invocation.message_chains.undeleted) like message_chain; 5 25 dcl 1 deleted_chain aligned based (rdm_invocation.message_chains.deleted) like message_chain; 5 26 5 27 5 28 /* The marked chain is the list of messages that are to be processed by the current request */ 5 29 5 30 dcl 1 marked_chain aligned based (rdm_invocation.message_chains.marked) like message_chain; 5 31 5 32 5 33 /* The marked as original chain is the list of messages that are being processed by a reply or forward request: This 5 34* chain is used to define the default set of messages to be processed by the various send_mail "original" requests and 5 35* forward "original" sub-requests */ 5 36 5 37 dcl 1 marked_as_original_chain aligned based (rdm_invocation.message_chains.marked_as_original) like message_chain; 5 38 5 39 5 40 /* Definition of the acceptable message selection criteria */ 5 41 5 42 dcl (ALL_MESSAGES initial (1), /* all messages: -include_deleted */ 5 43 NON_DELETED_MESSAGES initial (2), /* only undeleted messages: -only_non_deleted (default) */ 5 44 ONLY_DELETED_MESSAGES initial (3)) /* only deleted messages: -only_deleted */ 5 45 fixed binary static options (constant); 5 46 5 47 /* END INCLUDE FILE ... rdm_message_chains.incl.pl1 */ 246 247 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 */ 248 249 7 1 /* BEGIN INCLUDE FILE ... mlsys_field_names.incl.pl1 */ 7 2 /* Created: June 1983 by G. Palter */ 7 3 7 4 /* Standard names for all message envelope, header, and redistributions list fields supported by the mail system */ 7 5 7 6 dcl (ACCESS_CLASS_FIELDNAME initial ("Access-Class"), 7 7 ACKNOWLEDGE_TO_FIELDNAME initial ("Acknowledge-To"), 7 8 BCC_FIELDNAME initial ("bcc"), 7 9 CC_FIELDNAME initial ("cc"), 7 10 DATE_TIME_CREATED_FIELDNAME initial ("Date"), 7 11 DATE_TIME_DELIVERED_FIELDNAME initial ("Delivery-Date"), 7 12 DATE_TIME_MAILED_FIELDNAME initial ("Posted-Date"), 7 13 DELIVERED_BY_FIELDNAME initial ("Delivery-By"), 7 14 FROM_FIELDNAME initial ("From"), 7 15 IMPLICIT_ROUTE_FIELDNAME initial ("Route"), 7 16 MESSAGE_ID_FIELDNAME initial ("Message-ID"), 7 17 RELAY_FIELDNAME initial ("Relayed"), 7 18 REPLY_REFERENCES_FIELDNAME initial ("In-Reply-To"), 7 19 REPLY_TO_FIELDNAME initial ("Reply-To"), 7 20 SENDER_FIELDNAME initial ("Sender"), 7 21 SUBJECT_FIELDNAME initial ("Subject"), 7 22 TO_FIELDNAME initial ("To"), 7 23 7 24 7 25 /* Prefix to apply to a field name to produce the field name of the equivalent field in the redistributions list. Ie: 7 26* 7 27* call mlsys_utils_$print_address_field 7 28* (REDISTRIBUTED_PREFIX || FROM_FIELDNAME, ...) */ 7 29 7 30 REDISTRIBUTED_PREFIX initial ("Redistributed-"), 7 31 7 32 7 33 /* Fields in a redistribution which do not have a corresponding non-redistributed field */ 7 34 7 35 REDISTRIBUTED_COMMENT_FIELDNAME initial ("Redistributed-Comment")) 7 36 7 37 character (32) varying static options (constant); 7 38 7 39 7 40 /* END INCLUDE FILE ... mlsys_field_names.incl.pl1 */ 250 251 252 end sdm_original_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/02/89 0816.0 sdm_original_requests_.pl1 >spec>install>1079>sdm_original_requests_.pl1 238 1 10/27/83 2104.2 sdm_invocation.incl.pl1 >ldd>include>sdm_invocation.incl.pl1 240 2 10/27/83 2104.3 sdm_original_messages.incl.pl1 >ldd>include>sdm_original_messages.incl.pl1 242 3 10/27/83 2104.3 rdm_invocation.incl.pl1 >ldd>include>rdm_invocation.incl.pl1 244 4 10/27/83 2104.3 rdm_message_list.incl.pl1 >ldd>include>rdm_message_list.incl.pl1 246 5 10/27/83 2104.3 rdm_message_chains.incl.pl1 >ldd>include>rdm_message_chains.incl.pl1 248 6 05/22/86 1225.8 mlsys_message.incl.pl1 >ldd>include>mlsys_message.incl.pl1 250 7 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. ALL_MESSAGES constant fixed bin(17,0) initial dcl 5-42 ref 160 MODIFIED_MESSAGE constant fixed bin(17,0) initial dcl 1-47 ref 231 NON_DELETED_MESSAGES constant fixed bin(17,0) initial dcl 5-42 ref 150 163 ONLY_DELETED_MESSAGES constant fixed bin(17,0) initial dcl 5-42 ref 161 ORIGINAL_MESSAGES_VERSION_1 000012 constant char(8) initial packed unaligned dcl 2-21 ref 195 PROCESSED_MESSAGE constant fixed bin(17,0) initial dcl 1-47 ref 231 P_sci_ptr parameter pointer dcl 37 set ref 29 94 97 138 186* 214* P_sdm_invocation_ptr parameter pointer dcl 38 ref 29 94 99 REPLY_REFERENCES_FIELDNAME 000000 constant varying char(32) initial dcl 7-6 set ref 109* 113* 115* 214* 226* area_ptr 4 based pointer level 2 dcl 1-6 ref 194 argument based char packed unaligned dcl 48 set ref 156 156 156 158 158 160 160 161 161 163 163 166* argument_idx 000106 automatic fixed bin(17,0) dcl 51 set ref 153* 155* 170* argument_lth 000104 automatic fixed bin(21,0) dcl 50 set ref 155* 156 156 156 158 158 160 160 161 161 163 163 166 166 183* 184* argument_ptr 000102 automatic pointer dcl 49 set ref 155* 156 156 156 158 158 160 160 161 161 163 163 166 183* 184* cleanup 000130 stack reference condition dcl 87 ref 131 code 000126 automatic fixed bin(35,0) dcl 65 set ref 113* 115 115* 141* 142 184* 186 186* 200* 202 202* 213* 214 214* 224* 226 226* cu_$grow_stack_frame 000016 constant entry external dcl 72 ref 141 error_table_$badopt 000012 external static fixed bin(35,0) dcl 69 set ref 166* error_table_$inconsistent 000014 external static fixed bin(35,0) dcl 70 set ref 174* header 64 based structure array level 4 in structure "message" dcl 6-15 in procedure "sdm_original_requests_" header 10 based structure array level 3 in structure "message_user_fields_list" dcl 6-150 in procedure "sdm_original_requests_" header 30 based structure level 2 in structure "message" dcl 6-15 in procedure "sdm_original_requests_" header based structure level 2 in structure "message_user_field" dcl 6-163 in procedure "sdm_original_requests_" header 4 based structure level 3 in structure "message_body_section_parameter" dcl 6-313 in procedure "sdm_original_requests_" header based structure level 2 in structure "message_body_section" dcl 6-274 in procedure "sdm_original_requests_" header 4 based structure level 3 in structure "message_user_field_parameter" dcl 6-208 in procedure "sdm_original_requests_" idx 000123 automatic fixed bin(17,0) dcl 62 set ref 182* 183* 212* 213* 223* 224* index builtin function dcl 89 ref 156 ioa_ 000020 constant entry external dcl 73 ref 109 iox_$user_output 000010 external static pointer dcl 67 set ref 113* mail_system_$add_reply_reference 000022 constant entry external dcl 74 ref 224 mail_system_$delete_reply_reference 000024 constant entry external dcl 75 ref 213 mailbox_info 6 based structure level 2 dcl 3-6 mailbox_name 24 based varying char(168) level 3 dcl 3-6 set ref 202* marked 20 based pointer level 4 dcl 3-6 ref 192 197 198 marked_chain based structure level 1 dcl 5-30 message based structure level 1 dcl 6-15 message_body_section based structure level 1 dcl 6-274 message_chain based structure level 1 dcl 5-7 message_chains 12 based structure level 3 dcl 3-6 message_envelope based structure level 1 dcl 6-61 message_idx 6 based fixed bin(17,0) array level 3 in structure "original_messages" dcl 2-12 in procedure "sdm_original_requests_" set ref 207* message_idx 000121 automatic fixed bin(17,0) dcl 62 in procedure "sdm_original_requests_" set ref 197* 198 206 207* message_info 6 based structure level 2 dcl 1-6 message_number 000122 automatic fixed bin(17,0) dcl 62 set ref 198* 200* 202* 207 226* message_ptr 000146 automatic pointer dcl 6-53 in procedure "sdm_original_requests_" set ref 100* 109 113 212 213* 224* message_ptr 4 based pointer array level 3 in structure "original_messages" dcl 2-12 in procedure "sdm_original_requests_" set ref 206* 224* message_ptr 6 based pointer level 3 in structure "sdm_invocation" dcl 1-6 in procedure "sdm_original_requests_" ref 100 message_redistribution based structure level 1 dcl 6-122 message_reference based structure level 1 dcl 6-234 message_specifier_idxs based fixed bin(17,0) array dcl 53 set ref 141 141 170* 183* message_specifier_idxs_ptr 000110 automatic pointer dcl 54 set ref 141 141 141* 170 183 message_state 10 based fixed bin(17,0) level 3 dcl 1-6 set ref 231 231* message_text_field based structure level 1 dcl 6-260 message_type 000114 automatic fixed bin(17,0) dcl 56 set ref 150* 160* 161* 163* 184* message_user_field based structure level 1 dcl 6-163 messages 1 based fixed bin(17,0) array level 2 in structure "marked_chain" dcl 5-30 in procedure "sdm_original_requests_" ref 198 messages 4 based structure array level 2 in structure "original_messages" dcl 2-12 in procedure "sdm_original_requests_" mlsys_utils_$print_references_list_field 000026 constant entry external dcl 76 ref 113 n_arguments 000105 automatic fixed bin(17,0) dcl 51 set ref 102* 105 140 153 n_message_specifiers 000113 automatic fixed bin(17,0) dcl 55 set ref 144* 169* 169 170 174 182 n_message_specifiers_allocated 000112 automatic fixed bin(17,0) dcl 55 set ref 140* 141 141 n_messages based fixed bin(17,0) level 2 dcl 5-30 ref 192 197 n_original_messages 3 based fixed bin(17,0) level 2 dcl 2-12 set ref 194* 223 n_reply_references 6 based fixed bin(17,0) level 2 dcl 6-15 ref 109 212 original_message_ptr 000124 automatic pointer dcl 63 set ref 200* 206 original_messages based structure level 1 dcl 2-12 set ref 194 original_messages_n_original_messages 000140 automatic fixed bin(17,0) dcl 2-23 set ref 192* 194 194 original_messages_ptr 000142 automatic pointer dcl 2-25 in procedure "sdm_original_requests_" set ref 194* 195 206 207 221 223 224 original_messages_ptr 20 based pointer level 2 in structure "sdm_invocation" dcl 1-6 in procedure "sdm_original_requests_" set ref 221* rdm_invocation based structure level 1 dcl 3-6 rdm_invocation_ptr 000144 automatic pointer dcl 3-53 in procedure "sdm_original_requests_" set ref 127* 129 133 138 146* 179* 184* 192 197 198 200* 202 233 rdm_invocation_ptr 16 based pointer level 2 in structure "sdm_invocation" dcl 1-6 in procedure "sdm_original_requests_" ref 127 rdm_mailbox_interface_$read_message 000030 constant entry external dcl 78 ref 200 rdm_message_mark_mgr_$clear_marked_messages 000032 constant entry external dcl 79 ref 146 rdm_message_mark_mgr_$mark_messages 000034 constant entry external dcl 80 ref 184 rdm_message_mark_mgr_$remark_original_messages 000036 constant entry external dcl 82 ref 179 reply_references 54 based pointer level 3 dcl 6-15 set ref 113* reset_to_reply_messages 000120 automatic bit(1) dcl 60 set ref 151* 156* 158* 174 179 saved_rdm_sci_ptr 000116 automatic pointer dcl 58 set ref 129* 133 233 sci_ptr 2 based pointer level 2 in structure "rdm_invocation" dcl 3-6 in procedure "sdm_original_requests_" set ref 129 133* 138* 233* sci_ptr 000100 automatic pointer dcl 43 in procedure "sdm_original_requests_" set ref 97* 102* 115* 142* 155* 166* 174* 183* 202* 226* sdm_area based area(1024) dcl 1-40 ref 194 sdm_invocation based structure level 1 dcl 1-6 sdm_invocation_ptr 000136 automatic pointer dcl 1-38 set ref 99* 100 127 194 221 231 231 size builtin function dcl 89 ref 141 141 ssu_$abort_line 000040 constant entry external dcl 83 ref 115 142 166 174 186 202 214 226 ssu_$arg_count 000042 constant entry external dcl 84 ref 102 ssu_$arg_ptr 000044 constant entry external dcl 85 ref 155 183 version based char(8) level 2 packed packed unaligned dcl 2-12 set ref 195* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCESS_CLASS_FIELDNAME internal static varying char(32) initial dcl 7-6 ACKNOWLEDGE_TO_FIELDNAME internal static varying char(32) initial dcl 7-6 BCC_FIELDNAME internal static varying char(32) initial dcl 7-6 CC_FIELDNAME internal static varying char(32) initial dcl 7-6 DATE_TIME_CREATED_FIELDNAME internal static varying char(32) initial dcl 7-6 DATE_TIME_DELIVERED_FIELDNAME internal static varying char(32) initial dcl 7-6 DATE_TIME_MAILED_FIELDNAME internal static varying char(32) initial dcl 7-6 DEFAULT_INCLUDE_SELF internal static bit(2) initial dcl 3-60 DELIVERED_BY_FIELDNAME internal static varying char(32) initial dcl 7-6 FROM_FIELDNAME internal static varying char(32) initial dcl 7-6 IMPLICIT_ROUTE_FIELDNAME internal static varying char(32) initial dcl 7-6 INCLUDE_SELF internal static bit(2) initial dcl 3-60 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 packed 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 packed unaligned dcl 6-79 MESSAGE_ID_FIELDNAME internal static varying char(32) initial dcl 7-6 MESSAGE_INTEGER_USER_FIELD internal static fixed bin(17,0) initial dcl 6-174 MESSAGE_PREFORMATTED_BODY_SECTION internal static fixed bin(17,0) initial dcl 6-285 MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 6-117 MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 6-144 MESSAGE_REFERENCES_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 6-227 MESSAGE_REFERENCE_PARAMETER_VERSION_2 internal static char(8) initial packed 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 packed unaligned dcl 6-103 MESSAGE_USER_FIELDS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 6-158 MESSAGE_USER_FIELD_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 6-213 MESSAGE_VERSION_2 internal static char(8) initial packed unaligned dcl 6-49 NO_INCLUDE_SELF internal static bit(2) initial dcl 3-60 RDM_INVOCATION internal static char(8) initial packed unaligned dcl 3-51 REDISTRIBUTED_COMMENT_FIELDNAME internal static varying char(32) initial dcl 7-6 REDISTRIBUTED_PREFIX internal static varying char(32) initial dcl 7-6 RELAY_FIELDNAME internal static varying char(32) initial dcl 7-6 REPLY_TO_FIELDNAME internal static varying char(32) initial dcl 7-6 SDM_INVOCATION internal static char(8) initial packed unaligned dcl 1-36 SENDER_FIELDNAME internal static varying char(32) initial dcl 7-6 SUBJECT_FIELDNAME internal static varying char(32) initial dcl 7-6 TO_FIELDNAME internal static varying char(32) initial dcl 7-6 UNPROCESSED_MESSAGE internal static fixed bin(17,0) initial dcl 1-47 all_chain based structure level 1 dcl 5-23 deleted_chain based structure level 1 dcl 5-25 marked_as_original_chain based structure level 1 dcl 5-37 message_address_list_user_field based structure level 1 dcl 6-190 message_bit_string_body_section based structure level 1 dcl 6-301 message_bit_string_body_section_bit_string based bit packed 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_body_section_ptr automatic pointer dcl 6-280 message_chain_ptr automatic pointer dcl 5-11 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_list based structure level 1 dcl 4-13 message_list_n_messages automatic fixed bin(17,0) dcl 4-25 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 based structure level 1 dcl 6-292 message_preformatted_body_section_text based char packed unaligned dcl 6-298 message_redistribution_comment based char packed 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 packed 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 packed unaligned dcl 6-51 message_text_field_ptr automatic pointer dcl 6-270 message_text_field_text based char packed unaligned dcl 6-268 message_text_user_field based structure level 1 dcl 6-183 message_text_user_field_text based char packed 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 rdm_area based area(1024) dcl 3-55 undeleted_chain based structure level 1 dcl 5-24 NAMES DECLARED BY EXPLICIT CONTEXT. in_reply_to_request 000176 constant entry external dcl 94 sdm_original_requests_ 000166 constant entry external dcl 29 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1600 1646 1321 1610 Length 2216 1321 46 334 256 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME sdm_original_requests_ 188 external procedure is an external procedure. on unit on line 131 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME sdm_original_requests_ 000100 sci_ptr sdm_original_requests_ 000102 argument_ptr sdm_original_requests_ 000104 argument_lth sdm_original_requests_ 000105 n_arguments sdm_original_requests_ 000106 argument_idx sdm_original_requests_ 000110 message_specifier_idxs_ptr sdm_original_requests_ 000112 n_message_specifiers_allocated sdm_original_requests_ 000113 n_message_specifiers sdm_original_requests_ 000114 message_type sdm_original_requests_ 000116 saved_rdm_sci_ptr sdm_original_requests_ 000120 reset_to_reply_messages sdm_original_requests_ 000121 message_idx sdm_original_requests_ 000122 message_number sdm_original_requests_ 000123 idx sdm_original_requests_ 000124 original_message_ptr sdm_original_requests_ 000126 code sdm_original_requests_ 000136 sdm_invocation_ptr sdm_original_requests_ 000140 original_messages_n_original_messages sdm_original_requests_ 000142 original_messages_ptr sdm_original_requests_ 000144 rdm_invocation_ptr sdm_original_requests_ 000146 message_ptr sdm_original_requests_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac enable_op ext_entry int_entry op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$grow_stack_frame ioa_ mail_system_$add_reply_reference mail_system_$delete_reply_reference mlsys_utils_$print_references_list_field rdm_mailbox_interface_$read_message rdm_message_mark_mgr_$clear_marked_messages rdm_message_mark_mgr_$mark_messages rdm_message_mark_mgr_$remark_original_messages ssu_$abort_line ssu_$arg_count ssu_$arg_ptr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000162 32 000173 94 000174 97 000203 99 000207 100 000212 102 000214 105 000225 109 000227 113 000255 115 000306 118 000340 127 000341 129 000344 131 000346 133 000362 134 000367 138 000370 140 000375 141 000377 142 000413 144 000442 146 000443 150 000452 151 000454 153 000455 155 000465 156 000502 158 000531 160 000543 161 000556 163 000571 166 000604 169 000637 170 000640 172 000644 174 000646 179 000676 182 000710 183 000717 184 000735 186 000771 187 001011 192 001013 194 001016 195 001030 197 001033 198 001043 200 001046 202 001063 206 001122 207 001126 208 001132 212 001134 213 001143 214 001156 216 001211 221 001214 223 001217 224 001227 226 001250 229 001306 231 001310 233 001315 236 001320 ----------------------------------------------------------- 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