COMPILATION LISTING OF SEGMENT rdm_active_requests_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/27/83 1232.5 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 /* format: off */ 11 12 /* read_mail active requests: mailbox, all, first, last, current, previous, next */ 13 14 /* Created: Early 1979 by W. Olin Sibert */ 15 /* Modified: 25 December 1979 by W. Olin Sibert to update for new include files */ 16 /* Modified: 30 December 1979 by W. Olin Sibert to update for new control arguments */ 17 /* Modified: 21 September 1982 by G. Palter to remove references to rdm_info.input_type and to make the "all" request 18* return a null string if no appropriate messages are found */ 19 /* Modified: September 1983 by G. Palter as part of the conversion to the new mail system interface */ 20 21 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 22 23 24 rdm_active_requests_: 25 procedure (P_sci_ptr, P_rdm_invocation_ptr); 26 27 return; /* not an entrypoint */ 28 29 30 dcl P_sci_ptr pointer parameter; 31 dcl P_rdm_invocation_ptr pointer parameter; 32 33 dcl return_value character (return_value_max_lth) varying based (return_value_ptr); 34 dcl return_value_ptr pointer; 35 dcl return_value_max_lth fixed binary (21); 36 dcl active_request bit (1) aligned; 37 38 dcl argument character (argument_lth) unaligned based (argument_ptr); 39 dcl argument_ptr pointer; 40 dcl argument_lth fixed binary (21); 41 dcl (n_arguments, argument_idx) fixed binary; 42 43 dcl request_type fixed binary; /* first/last/current/previous/next/all */ 44 45 dcl message_type fixed binary; 46 47 dcl message_idx fixed binary; 48 dcl message_number fixed binary; 49 dcl message_number_picture picture "zzzzzzz9"; 50 dcl message_number_string character (8) varying; 51 52 dcl output_buffer character (256) varying; 53 dcl output_line_length fixed binary; 54 dcl reverse bit (1) aligned; /* ON => return list in reverse order for "all" */ 55 dcl found_a_message bit (1) aligned; 56 dcl (first_message_idx, last_message_idx, message_idx_increment) fixed binary; 57 58 /* format: off */ 59 dcl REQUEST_TYPE_NAMES (6) character (8) varying static options (constant) initial ( 60 "First", "Last", "Current", "Previous", "Next", "All"); 61 62 dcl (FIRST_REQUEST initial (1), 63 LAST_REQUEST initial (2), 64 CURRENT_REQUEST initial (3), 65 PREVIOUS_REQUEST initial (4), 66 NEXT_REQUEST initial (5), 67 ALL_REQUEST initial (6)) 68 fixed binary static options (constant); 69 70 71 dcl (LOWERCASE initial ("abcdefghijklmnopqrstuvwxyz"), 72 UPPERCASE initial ("ABCDEFGHIJKLMNOPQRSTUVWXYZ")) 73 character (26) static options (constant); 74 /* format: on */ 75 76 dcl iox_$user_output pointer external; 77 78 dcl error_table_$bad_arg fixed binary (35) external; 79 dcl error_table_$badopt fixed binary (35) external; 80 81 dcl get_line_length_$switch entry (pointer, fixed binary (35)) returns (fixed binary); 82 dcl ioa_ entry () options (variable); 83 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 84 dcl rdm_mailbox_interface_$read_new_messages entry (pointer, bit (1) aligned, fixed binary); 85 dcl requote_string_ entry (character (*)) returns (character (*)); 86 dcl ssu_$abort_line entry () options (variable); 87 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 88 dcl ssu_$return_arg entry (pointer, fixed binary, bit (1) aligned, pointer, fixed binary (21)); 89 90 dcl (convert, index, length, ltrim, maxlength, min, rtrim, translate) builtin; 91 92 /* The "first" request: returns/prints the number of the first message of the specified type (all/undeleted/deleted) in 93* the mailbox */ 94 95 first_request: 96 entry (P_sci_ptr, P_rdm_invocation_ptr); 97 98 request_type = FIRST_REQUEST; 99 go to START_MESSAGE_REQUESTS; 100 101 102 /* The "last" request: returns/prints the number of the last message of the specified type */ 103 104 last_request: 105 entry (P_sci_ptr, P_rdm_invocation_ptr); 106 107 request_type = LAST_REQUEST; 108 go to START_MESSAGE_REQUESTS; 109 110 111 /* The "current" request: returns/prints the number of the current message */ 112 113 current_request: 114 entry (P_sci_ptr, P_rdm_invocation_ptr); 115 116 request_type = CURRENT_REQUEST; 117 go to START_MESSAGE_REQUESTS; 118 119 120 /* The "previous" request: returns/prints the number of the last message of the specified type before the current message 121**/ 122 123 previous_request: 124 entry (P_sci_ptr, P_rdm_invocation_ptr); 125 126 request_type = PREVIOUS_REQUEST; 127 go to START_MESSAGE_REQUESTS; 128 129 130 /* The "next" request: returns/prints the number of the first message of the specified type after the current message */ 131 132 next_request: 133 entry (P_sci_ptr, P_rdm_invocation_ptr); 134 135 request_type = NEXT_REQUEST; 136 go to START_MESSAGE_REQUESTS; 137 138 139 /* The "all" request: returns/prints the numbers of all messages of the specified type */ 140 141 all_request: 142 entry (P_sci_ptr, P_rdm_invocation_ptr); 143 144 request_type = ALL_REQUEST; 145 go to START_MESSAGE_REQUESTS; 146 147 148 /* Common processing of all message number requests starts here */ 149 150 START_MESSAGE_REQUESTS: 151 rdm_invocation_ptr = P_rdm_invocation_ptr; 152 153 call ssu_$return_arg (rdm_invocation.sci_ptr, n_arguments, active_request, return_value_ptr, 154 return_value_max_lth); 155 156 call rdm_mailbox_interface_$read_new_messages (rdm_invocation_ptr, "1"b, (0)); 157 158 if (request_type = CURRENT_REQUEST) & (n_arguments > 0) then 159 call ssu_$abort_line (P_sci_ptr, 0, "No arguments may be given."); 160 161 message_type = NON_DELETED_MESSAGES; /* default to only non-deleted messages */ 162 reverse = "0"b; /* ... and don't reverse the list for "all" */ 163 164 do argument_idx = 1 to n_arguments; 165 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 166 if index (argument, "-") = 1 then /* a control argument */ 167 if (argument = "-only_deleted") | (argument = "-odl") then message_type = ONLY_DELETED_MESSAGES; 168 else if (argument = "-include_deleted") | (argument = "-idl") then message_type = ALL_MESSAGES; 169 else if (argument = "-only_non_deleted") | (argument = "-ondl") then 170 message_type = NON_DELETED_MESSAGES; 171 else if (request_type = ALL_REQUEST) & ((argument = "-reverse") | (argument = "-rv")) then 172 reverse = "1"b; 173 else if (request_type = ALL_REQUEST) & ((argument = "-no_reverse") | (argument = "-nrv")) then 174 reverse = "0"b; 175 /*** following control arguments are obsolete: remove them in MR11 */ 176 else if (argument = "-deleted") | (argument = "-dld") then message_type = ONLY_DELETED_MESSAGES; 177 else if (argument = "-not_deleted") | (argument = "-ndld") then message_type = NON_DELETED_MESSAGES; 178 else if (argument = "-all") | (argument = "-a") then message_type = ALL_MESSAGES; 179 else call ssu_$abort_line (P_sci_ptr, error_table_$badopt, """^a""", argument); 180 else call ssu_$abort_line (P_sci_ptr, error_table_$bad_arg, "This request only accepts control arguments.") 181 ; 182 end; 183 184 if message_type = ALL_MESSAGES then message_chain_ptr = rdm_invocation.message_chains.all; 185 else if message_type = NON_DELETED_MESSAGES then message_chain_ptr = rdm_invocation.message_chains.undeleted; 186 else /*** if message_type = ONLY_DELETED_MESSAGES then */ 187 message_chain_ptr = rdm_invocation.message_chains.deleted; 188 189 if active_request then return_value = ""; 190 191 192 if request_type = ALL_REQUEST then do; 193 194 /* Process the "all" request */ 195 196 output_line_length = min (maxlength (output_buffer), get_line_length_$switch (iox_$user_output, (0))); 197 output_buffer = ""; /* start clean */ 198 199 found_a_message = "0"b; /* remember if we find anything */ 200 201 if reverse then do; /* list the messages in reverse order */ 202 first_message_idx = message_chain.n_messages; 203 last_message_idx = 1; 204 message_idx_increment = -1; 205 end; 206 else do; /* list messages in normal order */ 207 first_message_idx = 1; 208 last_message_idx = message_chain.n_messages; 209 message_idx_increment = 1; 210 end; 211 212 do message_idx = first_message_idx to last_message_idx by message_idx_increment; 213 message_number = message_chain.messages (message_idx); 214 215 if active_request then do; 216 if found_a_message then return_value = return_value || " "; 217 return_value = return_value || ltrim (convert (message_number_picture, message_number)); 218 end; 219 220 else do; /* print it neatly */ 221 if ^found_a_message then call ioa_ ("All ^[^;non-deleted ^;deleted ^]messages:", message_type); 222 223 message_number_string = ltrim (convert (message_number_picture, message_number)); 224 225 if (length (output_buffer) + length (message_number_string) + 1) > output_line_length then do; 226 call ioa_ ("^a", output_buffer); 227 output_buffer = ""; /* flush output buffer */ 228 end; 229 230 if length (output_buffer) > 0 then output_buffer = output_buffer || " "; 231 output_buffer = output_buffer || message_number_string; 232 end; 233 234 found_a_message = "1"b; 235 end; 236 237 if ^active_request & (length (output_buffer) > 0) then call ioa_ ("^a", output_buffer); 238 239 if ^found_a_message then /* nothing of the right type */ 240 if active_request then 241 return_value = ""; 242 else call ioa_ ("No ^[^;non-deleted ^;deleted ^]messages.", message_type); 243 end; 244 245 246 else do; 247 248 /* Process first, last, next, previous, and current */ 249 250 if request_type = CURRENT_REQUEST then /* return the current message */ 251 message_number = rdm_invocation.current_message; 252 253 else if message_chain.n_messages = 0 then /* no messages of the specified type */ 254 message_number = 0; /* ... so there can't be a true value for this request */ 255 256 else if request_type = FIRST_REQUEST then /* first message of the specified type */ 257 message_number = message_chain.messages (1); 258 259 else if request_type = LAST_REQUEST then /* last message of the specified type */ 260 message_number = message_chain.messages (message_chain.n_messages); 261 262 else if request_type = PREVIOUS_REQUEST then do; 263 /*** last message of the specified type before the current message */ 264 message_number = 0; /* ... assume we won't find one */ 265 do message_idx = message_chain.n_messages to 1 by -1 while (message_number = 0); 266 if message_chain.messages (message_idx) < rdm_invocation.current_message then 267 message_number = message_chain.messages (message_idx); 268 end; 269 end; 270 271 else /*** if request_type = NEXT_REQUEST then */ 272 do; 273 /*** first message of the specified type after the current message */ 274 message_number = 0; /* ... assume we won't find one */ 275 do message_idx = 1 to message_chain.n_messages while (message_number = 0); 276 if message_chain.messages (message_idx) > rdm_invocation.current_message then 277 message_number = message_chain.messages (message_idx); 278 end; 279 280 end; 281 282 if active_request then /* just return what we've got */ 283 return_value = ltrim (convert (message_number_picture, message_number)); 284 285 else do; /* print results */ 286 if message_number = 0 then 287 call ioa_ ("No ^a ^[^;non-deleted ^;deleted ^]message.", 288 translate (REQUEST_TYPE_NAMES (request_type), LOWERCASE, UPPERCASE), message_type); 289 else call ioa_ ("^a ^[^;non-deleted ^;deleted ^]message: ^d.", REQUEST_TYPE_NAMES (request_type), 290 message_type, message_number); 291 end; 292 end; 293 294 return; 295 296 /* The "mailbox" request: returns/prints the pathname of the mailbox being examined by read_mail */ 297 298 mailbox_request: 299 entry (P_sci_ptr, P_rdm_invocation_ptr); 300 301 rdm_invocation_ptr = P_rdm_invocation_ptr; 302 303 call ssu_$return_arg (P_sci_ptr, n_arguments, active_request, return_value_ptr, return_value_max_lth); 304 305 if n_arguments > 0 then call ssu_$abort_line (P_sci_ptr, 0, "No arguments may be given."); 306 307 mailbox_ptr = rdm_invocation.mailbox_ptr; 308 309 if active_request then /* requote it in case it contains spaces */ 310 return_value = requote_string_ (rtrim (pathname_ (mailbox.mailbox_dirname, mailbox.mailbox_ename))); 311 else call ioa_ ("Reading: ^a", pathname_ (mailbox.mailbox_dirname, mailbox.mailbox_ename)); 312 313 return; 314 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 */ 315 316 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 */ 317 318 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 */ 319 320 4 1 /* BEGIN INCLUDE FILE ... mlsys_mailbox.incl.pl1 */ 4 2 /* Created: April 1983 by G. Palter */ 4 3 4 4 /* Definition of a mailbox as used by the Multics Mail System */ 4 5 4 6 dcl 1 mailbox aligned based (mailbox_ptr), 4 7 2 version character (8) unaligned, 4 8 2 reserved bit (144), /* for exclusive use of the mail system */ 4 9 2 mailbox_address pointer, /* mail system address of this mailbox */ 4 10 2 mailbox_dirname character (168) unaligned, /* directory containing this mailbox */ 4 11 2 mailbox_ename character (32) unaligned, /* entry name of this mailbox (includes ".mbx") */ 4 12 2 mailbox_type fixed binary, /* type of mailbox (see below) */ 4 13 2 mode bit (36), /* user's effective extended access to this mailbox */ 4 14 2 flags, 4 15 3 salvaged bit (1) unaligned, /* ON => this mailbox has been salvaged since last open */ 4 16 3 reserved bit (35) unaligned, /* for exclusive use of the mail system */ 4 17 2 message_selection_mode fixed binary, /* types of messages read: all/ordinary/interactive */ 4 18 2 sender_selection_mode fixed binary, /* whose messages were read: all/own/not-own */ 4 19 2 message_reading_level fixed binary, /* how much of each message read: keys/messages */ 4 20 2 n_messages fixed binary, /* total # of messages in this mailbox structure */ 4 21 2 n_ordinary_messages fixed binary, /* ... # of ordinary messages here */ 4 22 2 n_interactive_messages fixed binary, /* ... # of interactive messages here */ 4 23 2 n_deleted_messages fixed binary, /* ... # of messages here marked for later deletion */ 4 24 2 messages (mailbox_n_messages refer (mailbox.n_messages)), 4 25 3 key bit (72), /* unique key to read this message if not already read */ 4 26 3 message_ptr pointer; /* -> the message structure */ 4 27 4 28 dcl MAILBOX_VERSION_2 character (8) static options (constant) initial ("mlsmbx02"); 4 29 4 30 dcl mailbox_ptr pointer; 4 31 4 32 dcl mailbox_n_messages fixed binary; /* for exclusive use of the mail system */ 4 33 4 34 4 35 /* Types of mailboxes distinguished by the mail system */ 4 36 4 37 dcl (USER_DEFAULT_MAILBOX initial (1), /* the user's default mailbox for receiving mail */ 4 38 USER_LOGBOX initial (2), /* the user's logbox */ 4 39 SAVEBOX initial (3), /* a savebox */ 4 40 OTHER_MAILBOX initial (4)) /* any other type of mailbox */ 4 41 fixed binary static options (constant); 4 42 4 43 /* END INCLUDE FILE ... mlsys_mailbox.incl.pl1 */ 321 322 323 end rdm_active_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/27/83 1103.9 rdm_active_requests_.pl1 >spec>on>10/27/83-mail>rdm_active_requests_.pl1 315 1 10/27/83 1050.3 rdm_invocation.incl.pl1 >spec>on>10/27/83-mail>rdm_invocation.incl.pl1 317 2 10/27/83 1050.3 rdm_message_list.incl.pl1 >spec>on>10/27/83-mail>rdm_message_list.incl.pl1 319 3 10/27/83 1050.5 rdm_message_chains.incl.pl1 >spec>on>10/27/83-mail>rdm_message_chains.incl.pl1 321 4 10/27/83 1047.9 mlsys_mailbox.incl.pl1 >spec>on>10/27/83-mail>mlsys_mailbox.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 3-42 ref 168 178 184 ALL_REQUEST constant fixed bin(17,0) initial dcl 62 ref 144 171 173 192 CURRENT_REQUEST constant fixed bin(17,0) initial dcl 62 ref 116 158 250 FIRST_REQUEST constant fixed bin(17,0) initial dcl 62 ref 98 256 LAST_REQUEST constant fixed bin(17,0) initial dcl 62 ref 107 259 LOWERCASE 000007 constant char(26) initial unaligned dcl 71 ref 286 286 NEXT_REQUEST constant fixed bin(17,0) initial dcl 62 ref 135 NON_DELETED_MESSAGES constant fixed bin(17,0) initial dcl 3-42 ref 161 169 177 185 ONLY_DELETED_MESSAGES constant fixed bin(17,0) initial dcl 3-42 ref 166 176 PREVIOUS_REQUEST constant fixed bin(17,0) initial dcl 62 ref 126 262 P_rdm_invocation_ptr parameter pointer dcl 31 ref 24 95 104 113 123 132 141 150 298 301 P_sci_ptr parameter pointer dcl 30 set ref 24 95 104 113 123 132 141 158* 165* 179* 180* 298 303* 305* REQUEST_TYPE_NAMES 000016 constant varying char(8) initial array dcl 59 set ref 286 286 289* UPPERCASE 000000 constant char(26) initial unaligned dcl 71 ref 286 286 active_request 000103 automatic bit(1) dcl 36 set ref 153* 189 215 237 239 282 303* 309 all 12 based pointer level 4 dcl 1-6 ref 184 argument based char unaligned dcl 38 set ref 166 166 166 168 168 169 169 171 171 173 173 176 176 177 177 178 178 179* argument_idx 000110 automatic fixed bin(17,0) dcl 41 set ref 164* 165* argument_lth 000106 automatic fixed bin(21,0) dcl 40 set ref 165* 166 166 166 168 168 169 169 171 171 173 173 176 176 177 177 178 178 179 179 argument_ptr 000104 automatic pointer dcl 39 set ref 165* 166 166 166 168 168 169 169 171 171 173 173 176 176 177 177 178 178 179 convert builtin function dcl 90 ref 217 223 282 current_message 77 based fixed bin(17,0) level 2 dcl 1-6 ref 250 266 276 deleted 16 based pointer level 4 dcl 1-6 ref 186 error_table_$bad_arg 000012 external static fixed bin(35,0) dcl 78 set ref 180* error_table_$badopt 000014 external static fixed bin(35,0) dcl 79 set ref 179* first_message_idx 000224 automatic fixed bin(17,0) dcl 56 set ref 202* 207* 212 found_a_message 000223 automatic bit(1) dcl 55 set ref 199* 216 221 234* 239 get_line_length_$switch 000016 constant entry external dcl 81 ref 196 index builtin function dcl 90 ref 166 ioa_ 000020 constant entry external dcl 82 ref 221 226 237 242 286 289 311 iox_$user_output 000010 external static pointer dcl 76 set ref 196* last_message_idx 000225 automatic fixed bin(17,0) dcl 56 set ref 203* 208* 212 length builtin function dcl 90 ref 225 225 230 237 ltrim builtin function dcl 90 ref 217 223 282 mailbox based structure level 1 dcl 4-6 mailbox_dirname 10 based char(168) level 2 packed unaligned dcl 4-6 set ref 309* 309* 311* 311* mailbox_ename 62 based char(32) level 2 packed unaligned dcl 4-6 set ref 309* 309* 311* 311* mailbox_info 6 based structure level 2 dcl 1-6 mailbox_ptr 6 based pointer level 3 in structure "rdm_invocation" dcl 1-6 in procedure "rdm_active_requests_" ref 307 mailbox_ptr 000234 automatic pointer dcl 4-30 in procedure "rdm_active_requests_" set ref 307* 309 309 309 309 311 311 311 311 maxlength builtin function dcl 90 ref 196 message_chain based structure level 1 dcl 3-7 message_chain_ptr 000232 automatic pointer dcl 3-11 set ref 184* 185* 186* 202 208 213 253 256 259 259 265 266 266 275 276 276 message_chains 12 based structure level 3 dcl 1-6 message_idx 000113 automatic fixed bin(17,0) dcl 47 set ref 212* 213* 265* 266 266* 275* 276 276* message_idx_increment 000226 automatic fixed bin(17,0) dcl 56 set ref 204* 209* 212 message_number 000114 automatic fixed bin(17,0) dcl 48 set ref 213* 217 223 250* 253* 256* 259* 264* 265 266* 274* 275 276* 282 286 289* message_number_picture automatic picture(8) unaligned dcl 49 ref 217 223 282 message_number_string 000115 automatic varying char(8) dcl 50 set ref 223* 225 231 message_type 000112 automatic fixed bin(17,0) dcl 45 set ref 161* 166* 168* 169* 176* 177* 178* 184 185 221* 242* 286* 289* messages 1 based fixed bin(17,0) array level 2 dcl 3-7 ref 213 256 259 266 266 276 276 min builtin function dcl 90 ref 196 n_arguments 000107 automatic fixed bin(17,0) dcl 41 set ref 153* 158 164 303* 305 n_messages based fixed bin(17,0) level 2 dcl 3-7 ref 202 208 253 259 265 275 output_buffer 000120 automatic varying char(256) dcl 52 set ref 196 197* 225 226* 227* 230 230* 230 231* 231 237 237* output_line_length 000221 automatic fixed bin(17,0) dcl 53 set ref 196* 225 pathname_ 000022 constant entry external dcl 83 ref 309 309 311 311 rdm_invocation based structure level 1 dcl 1-6 rdm_invocation_ptr 000230 automatic pointer dcl 1-53 set ref 150* 153 156* 184 185 186 250 266 276 301* 307 rdm_mailbox_interface_$read_new_messages 000024 constant entry external dcl 84 ref 156 request_type 000111 automatic fixed bin(17,0) dcl 43 set ref 98* 107* 116* 126* 135* 144* 158 171 173 192 250 256 259 262 286 286 289 requote_string_ 000026 constant entry external dcl 85 ref 309 return_value based varying char dcl 33 set ref 189* 216* 216 217* 217 239* 282* 309* return_value_max_lth 000102 automatic fixed bin(21,0) dcl 35 set ref 153* 189 216 217 239 282 303* 309 return_value_ptr 000100 automatic pointer dcl 34 set ref 153* 189 216 216 217 217 239 282 303* 309 reverse 000222 automatic bit(1) dcl 54 set ref 162* 171* 173* 201 rtrim builtin function dcl 90 ref 309 309 sci_ptr 2 based pointer level 2 dcl 1-6 set ref 153* ssu_$abort_line 000030 constant entry external dcl 86 ref 158 179 180 305 ssu_$arg_ptr 000032 constant entry external dcl 87 ref 165 ssu_$return_arg 000034 constant entry external dcl 88 ref 153 303 translate builtin function dcl 90 ref 286 286 undeleted 14 based pointer level 4 dcl 1-6 ref 185 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DEFAULT_INCLUDE_SELF internal static bit(2) initial dcl 1-60 INCLUDE_SELF internal static bit(2) initial dcl 1-60 MAILBOX_VERSION_2 internal static char(8) initial unaligned dcl 4-28 NO_INCLUDE_SELF internal static bit(2) initial dcl 1-60 OTHER_MAILBOX internal static fixed bin(17,0) initial dcl 4-37 RDM_INVOCATION internal static char(8) initial unaligned dcl 1-51 SAVEBOX internal static fixed bin(17,0) initial dcl 4-37 USER_DEFAULT_MAILBOX internal static fixed bin(17,0) initial dcl 4-37 USER_LOGBOX internal static fixed bin(17,0) initial dcl 4-37 all_chain based structure level 1 dcl 3-23 deleted_chain based structure level 1 dcl 3-25 mailbox_n_messages automatic fixed bin(17,0) dcl 4-32 marked_as_original_chain based structure level 1 dcl 3-37 marked_chain based structure level 1 dcl 3-30 message_list based structure level 1 dcl 2-13 message_list_n_messages automatic fixed bin(17,0) dcl 2-25 rdm_area based area(1024) dcl 1-55 undeleted_chain based structure level 1 dcl 3-24 NAMES DECLARED BY EXPLICIT CONTEXT. START_MESSAGE_REQUESTS 000335 constant label dcl 150 ref 99 108 117 127 136 145 all_request 000325 constant entry external dcl 141 current_request 000267 constant entry external dcl 113 first_request 000243 constant entry external dcl 95 last_request 000255 constant entry external dcl 104 mailbox_request 001547 constant entry external dcl 298 next_request 000313 constant entry external dcl 132 previous_request 000301 constant entry external dcl 123 rdm_active_requests_ 000233 constant entry external dcl 24 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2432 2470 2176 2442 Length 3004 2176 36 277 233 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rdm_active_requests_ 255 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rdm_active_requests_ 000100 return_value_ptr rdm_active_requests_ 000102 return_value_max_lth rdm_active_requests_ 000103 active_request rdm_active_requests_ 000104 argument_ptr rdm_active_requests_ 000106 argument_lth rdm_active_requests_ 000107 n_arguments rdm_active_requests_ 000110 argument_idx rdm_active_requests_ 000111 request_type rdm_active_requests_ 000112 message_type rdm_active_requests_ 000113 message_idx rdm_active_requests_ 000114 message_number rdm_active_requests_ 000115 message_number_string rdm_active_requests_ 000120 output_buffer rdm_active_requests_ 000221 output_line_length rdm_active_requests_ 000222 reverse rdm_active_requests_ 000223 found_a_message rdm_active_requests_ 000224 first_message_idx rdm_active_requests_ 000225 last_message_idx rdm_active_requests_ 000226 message_idx_increment rdm_active_requests_ 000230 rdm_invocation_ptr rdm_active_requests_ 000232 message_chain_ptr rdm_active_requests_ 000234 mailbox_ptr rdm_active_requests_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_line_length_$switch ioa_ pathname_ rdm_mailbox_interface_$read_new_messages requote_string_ ssu_$abort_line ssu_$arg_ptr ssu_$return_arg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 24 000227 27 000240 95 000241 98 000250 99 000252 104 000253 107 000262 108 000264 113 000265 116 000274 117 000276 123 000277 126 000306 127 000310 132 000311 135 000320 136 000322 141 000323 144 000332 145 000334 150 000335 153 000341 156 000360 158 000376 161 000431 162 000433 164 000434 165 000443 166 000461 168 000510 169 000523 171 000536 173 000557 176 000574 177 000610 178 000623 179 000636 180 000671 182 000716 184 000720 185 000727 186 000735 189 000740 192 000744 196 000747 197 000770 199 000771 201 000772 202 000774 203 000776 204 001000 205 001002 207 001003 208 001005 209 001007 212 001011 213 001032 215 001035 216 001040 217 001052 218 001111 221 001112 223 001134 225 001164 226 001171 227 001210 230 001211 231 001222 234 001234 235 001236 237 001241 239 001265 242 001274 243 001314 250 001315 253 001323 256 001327 259 001335 262 001343 264 001345 265 001346 266 001355 268 001363 269 001366 274 001367 275 001370 276 001401 278 001407 282 001411 286 001446 289 001512 294 001544 298 001545 301 001554 303 001560 305 001577 307 001627 309 001632 311 001730 313 001772 ----------------------------------------------------------- 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