COMPILATION LISTING OF SEGMENT xmail_dprint_msgs_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/28/88 1319.6 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(86-02-27,Blair), approve(86-02-27,MCR7358), 17* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 18* 85-03-26 Joanne Backs: Modified to not put in the defaults for copies, 19* lmargin and notify in auto_dprint_arg before printing. These are now 20* personalization options and will be filled in by xmail_print_$submit_file. 21* 22* 85-04-02 Joanne Backs: Deleted call to ioa_ to display user message. Added 23* the call to xmail_print_ so messages when printing would be consistant. 24* Also deleted calls to xmail_value_$get since they were only used in message 25* and the values are already known in xmail_print_. 26* 2) change(87-05-10,Gilcrease), approve(87-05-13,MCR7686), 27* audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 28* Updated to use latest version (9) of dprint_arg. 29* 3) change(88-07-07,Blair), approve(88-07-27,MCR7959), 30* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 31* Check for e_t_$moderr on the print request in case user has no access to 32* the print queue. XServices error_list 139. 33* END HISTORY COMMENTS */ 34 35 36 xmail_dprint_msgs_: proc (P_mailbox_ptr, P_curr_msgsp); 37 38 /* BEGIN DESCRIPTION 39* 40*history: 41* Author unknown. 42* 43* Modified 10/25/82 by Dave Schimke to use version 7 dprint_args. 44* 45* 83-07-05 DJ Schimke: Deleted dcls for unreferenced addr and 46* xmail_err_$int_prog_err. 47* 48* 83-09-15 DJ Schimke: Added the mailfile name to the output 49* and to the temporary dprint segment. phx13056 50* 51* 84-09-27 JG Backs: Modified to use version 8 dprint_args. 52* 53* 84-10-31 JG Backs: Added translate function to change spaces to 54* underscores in the "mailbox_name" so the segment that is created 55* can be printed. The call to iox_$attach_name will not accept the 56* spaces, although xmail does allow spaces in mailbox names. 57* 58*END DESCRIPTION 59**/ 60 61 /* PARAMETERS */ 62 63 dcl (P_mailbox_ptr, P_curr_msgsp) ptr; 64 65 /* AUTOMATIC */ 66 67 dcl code fixed bin (35); 68 dcl dname char (168); 69 dcl ename char (32); 70 dcl iocb_ptr ptr; 71 dcl seg_ptr ptr; 72 dcl mailbox_name char (32); 73 dcl unused_return_bc fixed bin (35); 74 75 dcl 1 auto_dprint_arg like dprint_arg; 76 77 /* BUILTINS */ 78 79 dcl (addr, after, codeptr, length, null, reverse, rtrim, translate, substr, unspec, verify) builtin; 80 81 /* ENTRIES */ 82 83 dcl adjust_bit_count_ entry (char (168) aligned, char (32) aligned, bit (1) aligned, fixed bin (35), fixed bin (35)); 84 dcl error_table_$moderr fixed bin(35) ext static; 85 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)); 86 dcl ioa_$ioa_switch entry () options (variable); 87 dcl iox_$attach_name entry (char (*), ptr, char (*), ptr, fixed bin (35)); 88 dcl iox_$close entry (ptr, fixed bin (35)); 89 dcl iox_$destroy_iocb entry (ptr, fixed bin (35)); 90 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 91 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 92 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 93 dcl unique_chars_ entry (bit (*)) returns (char (15)); 94 dcl xmail_display_msgs_$ff entry (ptr, ptr, ptr); 95 dcl xmail_error_$code_first entry () options (variable); 96 dcl xmail_error_$no_code entry () options (variable); 97 dcl xmail_list_msgs_$selected entry (ptr, ptr, ptr); 98 dcl xmail_print_$create_seg entry (char (*), ptr, fixed bin (35)); 99 dcl xmail_print_$delete_seg entry (ptr, fixed bin (35)); 100 dcl xmail_print_$submit_seg entry (ptr, char (*), ptr, fixed bin (35)); 101 dcl xmail_validate_$curr_msgs entry (ptr, fixed bin (35)); 102 dcl xmail_validate_$mbx entry (ptr, fixed bin (35)); 103 104 /* CONSTANTS */ 105 106 dcl CONSONANTS char (32) static init ("BCDFGHJKLMNPQWXZbcdfghjklmnpqwxz") options (constant); 107 dcl LAST_CHAR bit (1) aligned init ("1"b) int static options (constant); 108 dcl ME_CHAR char (18) init ("xmail_dprint_msgs_") int static options (constant); 109 dcl ME_ENTRY entry options (variable) init (xmail_dprint_msgs_); 110 dcl UNUSED_BIT bit (1) aligned int static options (constant) init ("0"b); 111 112 /* EXTERNAL STATIC */ 113 114 dcl (xmail_err_$no_curr_msgs, 115 xmail_err_$no_hardcopy) fixed bin (35) ext static; 116 117 /* CONDITIONS */ 118 119 dcl cleanup condition; 120 121 /* INCLUDE FILES */ 122 1 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 1 2 /* format: style2,^inddcls,idind32 */ 1 3 1 4 declare 1 terminate_file_switches based, 1 5 2 truncate bit (1) unaligned, 1 6 2 set_bc bit (1) unaligned, 1 7 2 terminate bit (1) unaligned, 1 8 2 force_write bit (1) unaligned, 1 9 2 delete bit (1) unaligned; 1 10 1 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 1 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 1 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 1 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 1 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 1 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 1 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 1 18 1 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 123 124 2 1 /* Begin include file ..... iox_modes.incl.pl1 */ 2 2 2 3 /* Written by C. D. Tavares, 03/17/75 */ 2 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 2 5 2 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 2 7 ("stream_input", "stream_output", "stream_input_output", 2 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 2 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 2 10 "direct_input", "direct_output", "direct_update"); 2 11 2 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 2 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 2 14 2 15 dcl (Stream_input initial (1), 2 16 Stream_output initial (2), 2 17 Stream_input_output initial (3), 2 18 Sequential_input initial (4), 2 19 Sequential_output initial (5), 2 20 Sequential_input_output initial (6), 2 21 Sequential_update initial (7), 2 22 Keyed_sequential_input initial (8), 2 23 Keyed_sequential_output initial (9), 2 24 Keyed_sequential_update initial (10), 2 25 Direct_input initial (11), 2 26 Direct_output initial (12), 2 27 Direct_update initial (13)) fixed bin int static options (constant); 2 28 2 29 /* End include file ..... iox_modes.incl.pl1 */ 125 126 3 1 /* BEGIN INCLUDE FILE ... dprint_arg.incl.pl1 */ 3 2 /* Modified 11/13/74 by Noel I. Morris */ 3 3 /* Modified: 10 April 1981 by G. Palter for version 6 structure -- longer request type names */ 3 4 /* Modified: 30 April 1982 by R. Kovalcik for version 7 structure -- defer_until_process_terminataion */ 3 5 /* Modified: November 1983 by C. Marker for version 8 structure -- no_separator */ 3 6 3 7 /****^ HISTORY COMMENTS: 3 8* 1) change(87-05-10,Gilcrease), approve(87-05-13,MCR7686), 3 9* audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 3 10* Add line_nbrs bit for line-numbered printouts, version 9. 3 11* 2) change(88-02-05,Farley), approve(88-02-05,PBF7686), audit(88-02-05,GWMay), 3 12* install(88-02-05,MR12.2-1022): 3 13* Corrected alignment of line_nbrs, was aligned s/b unaligned.. 3 14* 3) change(88-08-29,Farley), approve(88-09-16,MCR7911), 3 15* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 3 16* Created a new 64 character forms_name variable, which supersedes the old 3 17* char 24 form_name variable, version 10. 3 18* END HISTORY COMMENTS */ 3 19 3 20 3 21 dcl dpap ptr; /* ptr to argument structure */ 3 22 dcl 1 dprint_arg_buf aligned like dprint_arg; /* Automatic storage for arg. */ 3 23 3 24 dcl 1 dprint_arg based (dpap) aligned, /* argument structure */ 3 25 2 version fixed bin, /* version number of dcl - current version is 9 */ 3 26 2 copies fixed bin, /* number of copies wanted */ 3 27 2 delete fixed bin, /* 1=delete after print */ 3 28 2 queue fixed bin, /* print queue */ 3 29 2 pt_pch fixed bin, /* 1=print, 2=punch */ 3 30 2 notify fixed bin, /* 1 = notify user when done */ 3 31 2 heading char (64), /* first page heading */ 3 32 2 output_module fixed bin, /* 1=print, 2=7punch, 3=mcc, 4=raw, 5=plotter */ 3 33 2 dest char (12), /* version 5 made this a pad - see destination below */ 3 34 /* limit of version 1 structure */ 3 35 2 carriage_control, /* Carriage control flags. */ 3 36 3 nep bit (1) unal, /* TRUE if print trhu perf. */ 3 37 3 single bit (1) unal, /* TRUE if ignore FF and VT */ 3 38 3 non_edited bit (1) unal, /* TRUE if printing in non-edited mode */ 3 39 3 truncate bit (1) unal, /* TRUE if truncating lines at line length */ 3 40 3 center_top_label bit (1) unal, /* TRUE if top label to be centered */ 3 41 3 center_bottom_label bit (1) unal, /* TRUE if bottom label to be centered */ 3 42 3 esc bit (1) unal, /* version 5 TRUE if text escapes are to be processed */ 3 43 3 no_separator bit (1) unal, /* version 8 TRUE if the inner head and tail sheets are to be suppressed. */ 3 44 3 line_nbrs bit (1) unal, /* version 9, line numbers */ 3 45 3 padding bit (27) unal, 3 46 2 pad (30) fixed bin, 3 47 2 forms char (8), /* version 5 made this a pad - see form_name below */ 3 48 2 lmargin fixed bin, /* left margin */ 3 49 2 line_lth fixed bin, /* max line lth */ 3 50 /* limit of version 2 structure */ 3 51 2 class char (8), /* version 6 made this a pad - see request_type below */ 3 52 2 page_lth fixed bin, /* Paper length arg */ 3 53 /* limit of version 3 structure */ 3 54 2 top_label char (136), /* top-of-page label */ 3 55 2 bottom_label char (136), /* bottom-of-page label */ 3 56 /* limit of version 4 structure */ 3 57 2 bit_count fixed bin (35), /* segment bit count */ 3 58 2 form_name char (24), /* name of special forms needed - moved from forms */ 3 59 /* version 10 made this a pad - see forms_name below */ 3 60 2 destination char (24), /* the long destination - moved from dest */ 3 61 2 chan_stop_path char (168), /* path of user channel stops - future */ 3 62 /* limit of version 5 structure */ 3 63 2 request_type character (24) unaligned, /* request type for the request */ 3 64 /* limit of version 6 structure */ 3 65 2 defer_until_process_termination fixed bin, /* 1 = don't process request until requesting process terminates */ 3 66 2 forms_name char (64) unal; /* name of special forms needed - moved from form_name */ 3 67 /* limit of version 10 structure */ 3 68 3 69 dcl dprint_arg_version_1 fixed bin int static options (constant) init (1); 3 70 dcl dprint_arg_version_2 fixed bin int static options (constant) init (2); 3 71 dcl dprint_arg_version_3 fixed bin int static options (constant) init (3); 3 72 dcl dprint_arg_version_4 fixed bin int static options (constant) init (4); 3 73 dcl dprint_arg_version_5 fixed bin int static options (constant) init (5); 3 74 dcl dprint_arg_version_6 fixed bin int static options (constant) init (6); 3 75 dcl dprint_arg_version_7 fixed bin int static options (constant) init (7); 3 76 dcl dprint_arg_version_8 fixed bin int static options (constant) init (8); 3 77 dcl dprint_arg_version_9 fixed bin int static options (constant) init (9); 3 78 dcl dprint_arg_version_10 fixed bin int static options (constant) init (10); 3 79 /* current version */ 3 80 3 81 dcl ( 3 82 DP_PRINT init (1), 3 83 DP_PUNCH init (2), 3 84 DP_PLOT init (3) 3 85 ) fixed bin static options (constant); /* for dprint_arg.pt_pch */ 3 86 3 87 /* END INCLUDE FILE ... dprint_arg.incl.pl1 */ 127 128 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 */ 129 130 5 1 /* BEGIN INCLUDE FILE ... mlsys_message.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(85-12-19,Herbst), approve(86-03-25,MCR7367), 5 6* audit(86-04-28,Margolin), install(86-05-22,MR12.0-1059): 5 7* Added seen switch to message. 5 8* END HISTORY COMMENTS */ 5 9 5 10 5 11 /* Created: June 1983 by G. Palter */ 5 12 5 13 /* Definition of a message as used by the Multics Mail System */ 5 14 5 15 dcl 1 message aligned based (message_ptr), 5 16 2 version character (8) unaligned, 5 17 2 reserved bit (144), /* for exclusive use of the mail system */ 5 18 2 n_reply_references fixed binary, /* # of messages for which this is a reply */ 5 19 2 n_user_fields fixed binary, /* # of non-standard header fields in this message */ 5 20 2 n_redistributions fixed binary, /* # of times this message has been forwarded */ 5 21 2 n_body_sections fixed binary, /* # of sections in the body */ 5 22 2 flags, 5 23 3 interactive bit (1) unaligned, /* ON => this is an interactive message */ 5 24 3 can_be_deleted bit (1) unaligned, /* ON => the user can delete this message if desired */ 5 25 3 marked_for_deletion bit (1) unaligned, /* ON => message will be deleted when mailbox is closed */ 5 26 3 must_be_acknowledged bit (1) unaligned, /* ON => an ACK should be generated when message is read */ 5 27 3 seen bit (1) unaligned, /* ON => user has printed message at least once */ 5 28 3 reserved bit (31) unaligned, /* for use by the mail system */ 5 29 2 pad bit (36), 5 30 2 envelope like message_envelope, /* who/when/how the message was mailed & delivered */ 5 31 2 header, 5 32 3 message_id bit (72), /* ID of this message (same value for all copies) */ 5 33 3 access_class bit (72), /* AIM access class of this message */ 5 34 3 date_time_created fixed binary (71), /* date/time this message was composed */ 5 35 3 from pointer, /* -> address list of author(s) of the message */ 5 36 3 reply_to pointer, /* -> address list of recipients for reply (if not authors) */ 5 37 3 to pointer, /* -> address list of primary recipients */ 5 38 3 cc pointer, /* -> address list of secondary recipients */ 5 39 3 bcc pointer, /* -> address list of blind recipients */ 5 40 3 subject like message_text_field, /* subject of the message */ 5 41 3 reply_references pointer, /* -> list of messages for which this message is a reply */ 5 42 3 user_fields_list pointer, /* -> list of user-defined fields in this message */ 5 43 2 redistributions_list pointer, /* -> redistributions list for this message */ 5 44 2 body, 5 45 3 total_lines fixed binary (21), /* total # of lines in the body or -1 if indeterminate */ 5 46 3 pad bit (36), 5 47 3 body_sections (message_n_body_sections refer (message.n_body_sections)) like message_body_section; 5 48 5 49 dcl MESSAGE_VERSION_2 character (8) static options (constant) initial ("mlsmsg02"); 5 50 5 51 dcl message_subject character (message.header.subject.text_lth) unaligned based (message.header.subject.text_ptr); 5 52 5 53 dcl message_ptr pointer; 5 54 5 55 dcl (message_n_body_sections, message_trace_n_relays, message_n_redistributions, message_n_user_fields, 5 56 message_references_list_n_references) 5 57 fixed binary; /* for exclusive use of the mail system */ 5 58 5 59 /* Definition of a message envelope: describes when, by whom, and by what route the message was mailed */ 5 60 5 61 dcl 1 message_envelope aligned based (message_envelope_ptr), 5 62 2 date_time_mailed fixed binary (71), /* date/time this message was entered into the mail system */ 5 63 2 sender pointer, /* -> address of entity that mailed the message */ 5 64 2 trace pointer, /* -> message_trace describing how it got here */ 5 65 2 date_time_delivered fixed binary (71), /* date/time this message was delivered */ 5 66 2 delivered_by pointer, /* -> address of entity that delivered the message */ 5 67 2 acknowledge_to pointer; /* -> address of entity to receive ACK when message is read */ 5 68 5 69 dcl message_envelope_ptr pointer; 5 70 5 71 5 72 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the message envelope */ 5 73 5 74 dcl 1 message_envelope_parameter aligned based (message_envelope_parameter_ptr), 5 75 2 pad pointer, /* forces even word alignment */ 5 76 2 version character (8) unaligned, 5 77 2 envelope like message_envelope; 5 78 5 79 dcl MESSAGE_ENVELOPE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsenv02"); 5 80 5 81 dcl message_envelope_parameter_ptr pointer; 5 82 5 83 5 84 /* Definition of a message trace: describes the route and each relay operation by which a message was passed through the 5 85* networks to reach this recipient */ 5 86 5 87 dcl 1 message_trace aligned based (message_trace_ptr), 5 88 2 version character (8) unaligned, 5 89 2 reserved bit (144), /* ... exclusively for use by the mail system */ 5 90 2 implicit_route pointer, /* -> an address_route which defines the route it took */ 5 91 2 pad bit (36), 5 92 2 n_relays fixed binary, /* # of relay operations required to reach this site */ 5 93 2 relays (message_trace_n_relays refer (message_trace.n_relays)), 5 94 3 date_time_relayed fixed binary (71), /* ... when this relay operation took place */ 5 95 3 sending_host character (256) varying, /* ... the host which relayed the message */ 5 96 3 receiving_host character (256) varying, /* ... the host which received it */ 5 97 3 communications_media character (32) unaligned, /* ... medium over which relay took place (ARPA, Tymnet) */ 5 98 3 communications_protocol character (32) unaligned,/* ... low-level protocol used (TCP, X.25) */ 5 99 3 mail_protocol character (32) unaligned, /* ... mailer protocol used (SMTP, NBS) */ 5 100 3 relay_id bit (72), /* ... unique ID assigned by receiving system or ""b */ 5 101 3 relay_recipient pointer; /* ... -> address of recipient as given by sending system */ 5 102 5 103 dcl MESSAGE_TRACE_VERSION_2 character (8) static options (constant) initial ("mlstrc02"); 5 104 5 105 dcl message_trace_ptr pointer; 5 106 5 107 /* Definition of a message's redistributions list */ 5 108 5 109 dcl 1 message_redistributions_list aligned based (message.redistributions_list), 5 110 2 version character (8) unaligned, 5 111 2 reserved bit (144), /* ... exclusively for use by the mail system */ 5 112 2 pad bit (36), 5 113 2 n_redistributions fixed binary, /* # of redistributions */ 5 114 2 redistributions (message_n_redistributions refer (message_redistributions_list.n_redistributions)) 5 115 like message_redistribution; /* the redistributions: oldest first */ 5 116 5 117 dcl MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsrl002"); 5 118 5 119 5 120 /* Definition of a single redistribution (forwarding) of a message */ 5 121 5 122 dcl 1 message_redistribution aligned based (message_redistribution_ptr), 5 123 2 envelope like message_envelope, 5 124 2 header, 5 125 3 message_id bit (72), /* ID of this redistribution (same for all copies) */ 5 126 3 date_time_created fixed binary (71), /* date/time when this redistribution was made */ 5 127 3 from pointer, /* -> address list of authors of this redistribution */ 5 128 3 to pointer, /* -> address list of recipients of the redistribution */ 5 129 3 comment like message_text_field; /* optional comment associated with the redistribution */ 5 130 5 131 dcl message_redistribution_comment character (message_redistribution.comment.text_lth) unaligned 5 132 based (message_redistribution.comment.text_ptr); 5 133 5 134 dcl message_redistribution_ptr pointer; 5 135 5 136 5 137 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the redistributions of a message */ 5 138 5 139 dcl 1 message_redistribution_parameter aligned based (message_redistribution_parameter_ptr), 5 140 2 pad pointer, /* forces even word alignment */ 5 141 2 version character (8) unaligned, 5 142 2 redistribution like message_redistribution; 5 143 5 144 dcl MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsdist2"); 5 145 5 146 dcl message_redistribution_parameter_ptr pointer; 5 147 5 148 /* Definition of the list of user-defined fields in a message */ 5 149 5 150 dcl 1 message_user_fields_list aligned based (message.user_fields_list), 5 151 2 version character (8) unaligned, 5 152 2 reserved bit (144), /* ... exclusively for use by the mail system */ 5 153 2 pad bit (36), 5 154 2 n_user_fields fixed binary, /* # of user-defined fields in the message */ 5 155 2 user_fields (message_n_user_fields refer (message_user_fields_list.n_user_fields)) 5 156 like message_user_field; /* the actual user-defined fields */ 5 157 5 158 dcl MESSAGE_USER_FIELDS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsufl02"); 5 159 5 160 5 161 /* Definition of a user defined message header field */ 5 162 5 163 dcl 1 message_user_field aligned based (message_user_field_ptr), 5 164 2 header, 5 165 3 field_id bit (36) aligned, /* identifies the purpose of this field */ 5 166 3 field_type fixed binary, /* type of data contained in this field */ 5 167 2 field_type_variable bit (144); /* the actual data (see below) */ 5 168 5 169 dcl message_user_field_ptr pointer; 5 170 5 171 5 172 /* Defined types of user defined fields */ 5 173 5 174 dcl (MESSAGE_TEXT_USER_FIELD initial (1), /* content of the field is a text string */ 5 175 MESSAGE_ADDRESS_LIST_USER_FIELD initial (2), /* content of the field is an address list */ 5 176 MESSAGE_DATE_USER_FIELD initial (3), /* content of the field is a date/time */ 5 177 MESSAGE_INTEGER_USER_FIELD initial (4)) /* content of the filed is a fixed binary value */ 5 178 fixed binary static options (constant); 5 179 5 180 5 181 /* Structures used to access the data for the different types of user defined fields */ 5 182 5 183 dcl 1 message_text_user_field aligned based (message_user_field_ptr), 5 184 2 header like message_user_field.header, 5 185 2 text like message_text_field; /* the message text */ 5 186 5 187 dcl message_text_user_field_text character (message_text_user_field.text.text_lth) unaligned 5 188 based (message_text_user_field.text.text_ptr); 5 189 5 190 dcl 1 message_address_list_user_field aligned based (message_user_field_ptr), 5 191 2 header like message_user_field.header, 5 192 2 address_list_ptr pointer, /* -> the address list */ 5 193 2 pad bit (72); 5 194 5 195 dcl 1 message_date_user_field aligned based (message_user_field_ptr), 5 196 2 header like message_user_field.header, 5 197 2 date_time fixed binary (71), /* the clock reading */ 5 198 2 pad bit (72); 5 199 5 200 dcl 1 message_integer_user_field aligned based (message_user_field_ptr), 5 201 2 header like message_user_field.header, 5 202 2 value fixed binary (35), /* the integer value */ 5 203 2 pad bit (108); 5 204 5 205 5 206 /* Structure used in calls to mail_system_ entrypoints which manipulate the user-defined fields of a message */ 5 207 5 208 dcl 1 message_user_field_parameter aligned based (message_user_field_parameter_ptr), 5 209 2 pad pointer, /* forces even word alignment */ 5 210 2 version character (8) unaligned, 5 211 2 user_field like message_user_field; 5 212 5 213 dcl MESSAGE_USER_FIELD_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsudf02"); 5 214 5 215 dcl message_user_field_parameter_ptr pointer; 5 216 5 217 /* Definition of a list of message references used as the value of message header fields (eg: In-Reply-To) */ 5 218 5 219 dcl 1 message_references_list aligned based (message_references_list_ptr), 5 220 2 version character (8) unaligned, 5 221 2 reserved bit (144), /* ... exclusively for use by the mail system */ 5 222 2 pad bit (36), 5 223 2 n_references fixed binary, /* # of references in this list */ 5 224 2 references (message_references_list_n_references refer (message_references_list.n_references)) 5 225 like message_reference; /* the references themselves */ 5 226 5 227 dcl MESSAGE_REFERENCES_LIST_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 5 228 5 229 dcl message_references_list_ptr pointer; 5 230 5 231 5 232 /* Definition of a reference to another message */ 5 233 5 234 dcl 1 message_reference aligned based (message_reference_ptr), 5 235 2 message_id bit (72), /* ID of the other message */ 5 236 2 date_time_created fixed binary (71), /* date/time the other message was created */ 5 237 2 from pointer, /* -> address list of authors of the other message */ 5 238 2 subject like message_text_field; /* subject of the other message */ 5 239 5 240 dcl message_reference_subject character (message_reference.subject.text_lth) unaligned 5 241 based (message_reference.subject.text_ptr); 5 242 5 243 dcl message_reference_ptr pointer; 5 244 5 245 5 246 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate message references */ 5 247 5 248 dcl 1 message_reference_parameter aligned based (message_reference_parameter_ptr), 5 249 2 pad pointer, /* forces even word alignment */ 5 250 2 version character (8) unaligned, 5 251 2 reference like message_reference; 5 252 5 253 dcl MESSAGE_REFERENCE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 5 254 5 255 dcl message_reference_parameter_ptr pointer; 5 256 5 257 5 258 /* Definition of a text field in a message (Subject, Comment, or a user defined field) */ 5 259 5 260 dcl 1 message_text_field aligned based (message_text_field_ptr), 5 261 2 text_ptr pointer, /* -> the actual text */ 5 262 2 text_lth fixed binary (21), /* length of said text */ 5 263 2 flags, 5 264 3 multiline_text bit (1) unaligned, /* ON => the text of this field may span multiple lines; 5 265* OFF => the text will always be a single line */ 5 266 3 reserved bit (35) unaligned; /* for exclusive use of the mail system */ 5 267 5 268 dcl message_text_field_text character (message_text_field.text_lth) unaligned based (message_text_field.text_ptr); 5 269 5 270 dcl message_text_field_ptr pointer; 5 271 5 272 /* Definition of a section of the body of a message */ 5 273 5 274 dcl 1 message_body_section aligned based (message_body_section_ptr), 5 275 2 header, 5 276 3 section_type fixed binary, /* type of "text" stored in this section */ 5 277 3 section_n_lines fixed binary (21), /* # of lines in this section or -1 if indeterminate */ 5 278 2 section_type_variable bit (144); /* the actual data (see below) */ 5 279 5 280 dcl message_body_section_ptr pointer; 5 281 5 282 5 283 /* Defined types of message body sections */ 5 284 5 285 dcl (MESSAGE_PREFORMATTED_BODY_SECTION initial (1), /* text formatted by the authors/sender */ 5 286 MESSAGE_BIT_STRING_BODY_SECTION initial (2)) /* arbitrary bit string */ 5 287 fixed binary static options (constant); 5 288 5 289 5 290 /* Structures used to access the data for the different types of message body sections */ 5 291 5 292 dcl 1 message_preformatted_body_section aligned based (message_body_section_ptr), 5 293 2 header like message_body_section.header, 5 294 2 text_ptr pointer, /* -> the text */ 5 295 2 text_lth fixed binary (21), /* length of said text in characters */ 5 296 2 reserved bit (36); /* for exclusive use of the mail system */ 5 297 5 298 dcl message_preformatted_body_section_text character (message_preformatted_body_section.text_lth) unaligned 5 299 based (message_preformatted_body_section.text_ptr); 5 300 5 301 dcl 1 message_bit_string_body_section aligned based (message_body_section_ptr), 5 302 2 header like message_body_section.header, 5 303 2 bit_string_ptr pointer, /* -> the bit string */ 5 304 2 bit_string_lth fixed binary (24), /* length of said bit string in bits (obviously) */ 5 305 2 reserved bit (36); /* for exclusive use of the mail system */ 5 306 5 307 dcl message_bit_string_body_section_bit_string bit (message_bit_string_body_section.bit_string_lth) unaligned 5 308 based (message_bit_string_body_section.bit_string_ptr); 5 309 5 310 5 311 /* Structure used in calls to mail_system_ entrypoints which manipulate the sections of a message's body */ 5 312 5 313 dcl 1 message_body_section_parameter aligned based (message_body_section_parameter_ptr), 5 314 2 pad pointer, /* forces even word alignment */ 5 315 2 version character (8) unaligned, 5 316 2 section like message_body_section; 5 317 5 318 dcl MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsmbs02"); 5 319 5 320 dcl message_body_section_parameter_ptr pointer; 5 321 5 322 /* END INCLUDE FILE ... mlsys_message.incl.pl1 */ 131 132 6 1 /* Created 06/17/81 by Suzanne Krupp */ 6 2 6 3 dcl n_messages fixed bin; 6 4 dcl MSG_STRUCT_VERSION_1 fixed bin int static options(constant) init(1); 6 5 6 6 dcl curr_msgsp ptr; 6 7 6 8 dcl 1 curr_msgs based(curr_msgsp), 6 9 2 version fixed bin, 6 10 2 count fixed bin, 6 11 2 numbers (n_messages refer(curr_msgs.count)) fixed bin; 6 12 6 13 dcl nonexist_msgsp ptr; 6 14 6 15 dcl 1 nonexist_msgs based(nonexist_msgsp), 6 16 2 version fixed bin, 6 17 2 count fixed bin, 6 18 2 numbers (n_messages refer(nonexist_msgs.count)) fixed bin; 6 19 6 20 dcl msg_structp ptr; 6 21 6 22 dcl 1 msg_struct based(msg_structp), 6 23 2 version fixed bin, 6 24 2 count fixed bin, 6 25 2 numbers(n_messages refer(msg_struct.count)) fixed bin; 134 7 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 7 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 7 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 7 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 10* Adding switch to indicate request for menu display came from general help. 7 11* This is so general help menu will be displayed in top screen. 7 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 7 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 14* Add switch to indicate whether or not it is permissible to process mail 7 15* in other users' mailboxes (foreign_mailbox). 7 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 7 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 18* Add bit to indicate whether or not this is a true cleanup condition. 7 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 7 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 21* Rearrange to group all the bit flags together in one word with a pad. 7 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 7 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 7 25* you keep around a pointer to a structure which no longer exists. 7 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 7 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 7 28* Add a field to indicate whether or not we should process interactive msgs. 7 29* Increment version to 4.1 so default value will get set. 7 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 7 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 7 32* Add a field to indicate whether or not we're processing a reply so that we 7 33* will be able to rebuild the screens properly after a disconnect occurs. 7 34* Error_list #114. 7 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 7 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 7 37* Add a bit to indicate whether or not the error segment had to be created 7 38* in the pdir (because we didn't have sma access to the mlsys_dir). 7 39* END HISTORY COMMENTS */ 7 40 7 41 7 42 /* Written 5/13/81 by Paul H. Kyzivat */ 7 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 7 44* and to add n_fkeys_used */ 7 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 7 46* varying string. */ 7 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 7 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 7 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 7 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 7 51 7 52 dcl xmail_data_ptr external static ptr init (null); 7 53 7 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 7 55 2 mail_dir char (168) varying, 7 56 2 first_label label, 7 57 2 quit_label label, 7 58 2 value_seg_pathname char (168) varying, 7 59 2 moved_user_io ptr, 7 60 2 normal_usage char (80) unal, 7 61 2 function_key_info, 7 62 3 function_key_data_ptr ptr, 7 63 3 n_fkeys_used fixed bin, 7 64 2 actee, 7 65 3 person char(32) varying, 7 66 3 project char(32) varying, 7 67 2 flags aligned, 7 68 3 mail_in_incoming bit (1) unal, 7 69 3 lists_as_menus bit (1) unal, /* personalization */ 7 70 3 remove_menus bit (1) unal, /* personalization */ 7 71 3 confirm_print bit (1) unal, /* personalization */ 7 72 3 multics_mode bit (1) unal, /* personalization */ 7 73 3 interactive_msgs bit (1) unal, /* personalization */ 7 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 7 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 7 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 7 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 7 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 7 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 7 80 3 pad bit (24) unal; 7 81 7 82 7 83 7 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 7 85 7 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 135 136 137 /* BEGIN */ 138 139 iocb_ptr, seg_ptr = null; 140 141 on condition (cleanup) begin; 142 call close_detach_and_destroy (iocb_ptr); 143 if seg_ptr ^= null then call xmail_print_$delete_seg (seg_ptr, (0)); /* ignore code */ 144 end; 145 146 call xmail_validate_$mbx (P_mailbox_ptr, code); 147 if code ^= 0 then call xmail_error_$no_code (code, ME_CHAR, "q", "Invalid mailbox structure. This is an internal programming error."); 148 149 if P_curr_msgsp = null 150 then call xmail_error_$code_first (xmail_err_$no_curr_msgs, ME_CHAR, "i"); 151 else do; 152 call xmail_validate_$curr_msgs (P_curr_msgsp, code); 153 if code ^= 0 then call xmail_error_$no_code (code, ME_CHAR, "q", "Invalid message structure. This is an internal programming error."); 154 end; 155 156 curr_msgsp = P_curr_msgsp; 157 mailbox_ptr = P_mailbox_ptr; 158 159 if mailbox.mailbox_type = USER_DEFAULT_MAILBOX | 160 mailbox.mailbox_type = OTHER_MAILBOX 161 then mailbox_name = minus_suffix (mailbox.mailbox_ename, "mbx"); 162 else mailbox_name = minus_suffix (mailbox.mailbox_ename, "sv.mbx"); 163 164 if substr (mailbox_name, 1, 1) = "!" 165 then if length (rtrim (mailbox_name)) = 15 166 then if verify (substr (mailbox_name, 2, 14), CONSONANTS) = 0 167 then mailbox_name = ""; 168 169 /* Translate mailbox_name so it does not have spaces - replace with 170* underscores so it can be printed */ 171 172 if mailbox_name ^= "" 173 then mailbox_name = translate (rtrim (mailbox_name), "_", " "); 174 175 call xmail_print_$create_seg (mailbox_name, seg_ptr, code); 176 if code = 0 then call terminate_file_ (seg_ptr, 0, TERM_FILE_TRUNC, code); 177 if code = 0 then call hcs_$fs_get_path_name (seg_ptr, dname, (0), ename, code); /* ignore code */ 178 if code ^= 0 then call xmail_error_$no_code (code, ME_CHAR, "q", "Unable to prepare file. This is an internal programming error."); 179 180 call iox_$attach_name (unique_chars_ ("0"b), iocb_ptr, "vfile_ " || rtrim (dname) || ">" || (ename), codeptr (ME_ENTRY), code); 181 if code = 0 then call iox_$open (iocb_ptr, Stream_output, UNUSED_BIT, code); 182 if code ^= 0 then call xmail_error_$no_code (code, ME_CHAR, "q", "Unable to prepare output switch to file. This is an internal programming error."); 183 184 if mailbox_name ^= "" 185 then call ioa_$ioa_switch (iocb_ptr, "Mailfile: ^a^/", mailbox_name); 186 187 if curr_msgs.count > 1 188 then do; 189 call xmail_list_msgs_$selected (mailbox_ptr, curr_msgsp, iocb_ptr); 190 call ioa_$ioa_switch (iocb_ptr, "^|"); 191 end; 192 193 call xmail_display_msgs_$ff (mailbox_ptr, curr_msgsp, iocb_ptr); 194 195 call adjust_bit_count_ ((dname), (ename), LAST_CHAR, unused_return_bc, code); 196 if code ^= 0 then call xmail_error_$no_code (code, ME_CHAR, "q", "Unable to adjust bit count of file. This is an internal programming error."); 197 198 unspec (auto_dprint_arg) = "0"b; 199 auto_dprint_arg.version = dprint_arg_version_9; 200 auto_dprint_arg.delete = 1; 201 auto_dprint_arg.carriage_control = "0"b; 202 auto_dprint_arg.line_lth = -1; 203 auto_dprint_arg.page_lth = -1; 204 auto_dprint_arg.top_label = ""; 205 auto_dprint_arg.bottom_label = ""; 206 auto_dprint_arg.form_name = ""; 207 auto_dprint_arg.chan_stop_path = ""; 208 auto_dprint_arg.request_type = "printer"; 209 auto_dprint_arg.defer_until_process_termination = 0; 210 auto_dprint_arg.bit_count = unused_return_bc; 211 212 call xmail_print_$submit_seg (seg_ptr, "", addr (auto_dprint_arg), code); 213 if code = xmail_err_$no_hardcopy 214 then call xmail_error_$code_first (xmail_err_$no_hardcopy, ME_CHAR, "i", "Please specify this information via the ""Personalize Exec Mail"" menu."); 215 else if code = error_table_$moderr 216 then call xmail_error_$code_first (code, ME_CHAR, "q", "^/You do not have access to the requested print queue. ^/See your system administrator."); 217 else if code ^= 0 then call xmail_error_$no_code (code, ME_CHAR, "q", "Unable to submit print request. This is internal programming error."); 218 219 call close_detach_and_destroy (iocb_ptr); 220 221 return; 222 223 /* INTERNAL PROCEDURES */ 224 225 close_detach_and_destroy: proc (P_iocb_ptr); 226 227 dcl P_iocb_ptr ptr; 228 229 if P_iocb_ptr ^= null 230 then do; 231 call iox_$close (P_iocb_ptr, (0)); /* ignore code */ 232 call iox_$detach_iocb (P_iocb_ptr, (0)); /* ignore code */ 233 call iox_$destroy_iocb (P_iocb_ptr, (0)); /* ignore code */ 234 end; 235 236 end close_detach_and_destroy; 237 238 minus_suffix: proc (name, suffix) returns (char (*) var); 239 240 /* Parameter */ 241 242 dcl name char (*); 243 dcl suffix char (*); 244 245 /* Automatic */ 246 247 dcl reverse_name char (length (name)) var; 248 dcl reverse_suffix char (length (suffix)) var; 249 250 reverse_name = reverse (rtrim (name)); 251 reverse_suffix = reverse (rtrim (suffix)); 252 253 return (reverse (after (reverse_name, reverse_suffix || "."))); 254 255 end minus_suffix; 256 257 258 end xmail_dprint_msgs_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/88 1302.1 xmail_dprint_msgs_.pl1 >special_ldd>install>MR12.2-1199>xmail_dprint_msgs_.pl1 123 1 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 125 2 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 127 3 10/28/88 1227.7 dprint_arg.incl.pl1 >special_ldd>install>MR12.2-1199>dprint_arg.incl.pl1 129 4 10/27/83 2104.2 mlsys_mailbox.incl.pl1 >ldd>include>mlsys_mailbox.incl.pl1 131 5 05/22/86 1225.8 mlsys_message.incl.pl1 >ldd>include>mlsys_message.incl.pl1 133 6 06/08/82 1329.4 xmail_curr_msg_info.incl.pl1 >ldd>include>xmail_curr_msg_info.incl.pl1 135 7 09/08/88 2010.9 xmail_data.incl.pl1 >ldd>include>xmail_data.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. CONSONANTS 000006 constant char(32) initial packed unaligned dcl 106 ref 164 LAST_CHAR 000005 constant bit(1) initial dcl 107 set ref 195* ME_CHAR 000000 constant char(18) initial packed unaligned dcl 108 set ref 147* 149* 153* 178* 182* 196* 213* 215* 217* ME_ENTRY 000524 automatic entry variable initial dcl 109 set ref 109* 180 180 OTHER_MAILBOX constant fixed bin(17,0) initial dcl 4-37 ref 159 P_curr_msgsp parameter pointer dcl 63 set ref 36 149 152* 156 P_iocb_ptr parameter pointer dcl 227 set ref 225 229 231* 232* 233* P_mailbox_ptr parameter pointer dcl 63 set ref 36 146* 157 Stream_output 000053 constant fixed bin(17,0) initial dcl 2-15 set ref 181* TERM_FILE_TRUNC 000005 constant bit(1) initial packed unaligned dcl 1-11 set ref 176* UNUSED_BIT 000051 constant bit(1) initial dcl 110 set ref 181* USER_DEFAULT_MAILBOX constant fixed bin(17,0) initial dcl 4-37 ref 159 addr builtin function dcl 79 ref 212 212 adjust_bit_count_ 000010 constant entry external dcl 83 ref 195 after builtin function dcl 79 ref 253 auto_dprint_arg 000201 automatic structure level 1 unaligned dcl 75 set ref 198* 212 212 bit_count 204 000201 automatic fixed bin(35,0) level 2 dcl 75 set ref 210* bottom_label 142 000201 automatic char(136) level 2 packed packed unaligned dcl 75 set ref 205* carriage_control 32 000201 automatic structure level 2 packed packed unaligned dcl 75 set ref 201* chan_stop_path 221 000201 automatic char(168) level 2 packed packed unaligned dcl 75 set ref 207* cleanup 000530 stack reference condition dcl 119 ref 141 code 000100 automatic fixed bin(35,0) dcl 67 set ref 146* 147 147* 152* 153 153* 175* 176 176* 177 177* 178 178* 180* 181 181* 182 182* 195* 196 196* 212* 213 215 215* 217 217* codeptr builtin function dcl 79 ref 180 180 count 1 based fixed bin(17,0) level 2 dcl 6-8 ref 187 curr_msgs based structure level 1 unaligned dcl 6-8 curr_msgsp 000540 automatic pointer dcl 6-6 set ref 156* 187 189* 193* defer_until_process_termination 301 000201 automatic fixed bin(17,0) level 2 dcl 75 set ref 209* delete 2 000201 automatic fixed bin(17,0) level 2 dcl 75 set ref 200* dname 000101 automatic char(168) packed unaligned dcl 68 set ref 177* 180 195 dprint_arg based structure level 1 dcl 3-24 dprint_arg_version_9 constant fixed bin(17,0) initial dcl 3-77 ref 199 ename 000153 automatic char(32) packed unaligned dcl 69 set ref 177* 180 195 error_table_$moderr 000012 external static fixed bin(35,0) dcl 84 ref 215 form_name 205 000201 automatic char(24) level 2 packed packed unaligned dcl 75 set ref 206* hcs_$fs_get_path_name 000014 constant entry external dcl 85 ref 177 header based structure level 2 in structure "message_body_section" dcl 5-274 in procedure "xmail_dprint_msgs_" header based structure level 2 in structure "message_user_field" dcl 5-163 in procedure "xmail_dprint_msgs_" header 64 based structure array level 4 in structure "message" dcl 5-15 in procedure "xmail_dprint_msgs_" header 4 based structure level 3 in structure "message_user_field_parameter" dcl 5-208 in procedure "xmail_dprint_msgs_" header 4 based structure level 3 in structure "message_body_section_parameter" dcl 5-313 in procedure "xmail_dprint_msgs_" header 10 based structure array level 3 in structure "message_user_fields_list" dcl 5-150 in procedure "xmail_dprint_msgs_" ioa_$ioa_switch 000016 constant entry external dcl 86 ref 184 190 iocb_ptr 000164 automatic pointer dcl 70 set ref 139* 142* 180* 181* 184* 189* 190* 193* 219* iox_$attach_name 000020 constant entry external dcl 87 ref 180 iox_$close 000022 constant entry external dcl 88 ref 231 iox_$destroy_iocb 000024 constant entry external dcl 89 ref 233 iox_$detach_iocb 000026 constant entry external dcl 90 ref 232 iox_$open 000030 constant entry external dcl 91 ref 181 length builtin function dcl 79 ref 164 247 248 line_lth 74 000201 automatic fixed bin(17,0) level 2 dcl 75 set ref 202* mailbox based structure level 1 dcl 4-6 mailbox_ename 62 based char(32) level 2 packed packed unaligned dcl 4-6 set ref 159* 162* mailbox_name 000170 automatic char(32) packed unaligned dcl 72 set ref 159* 162* 164 164 164 164* 172 172* 172 175* 184 184* mailbox_ptr 000536 automatic pointer dcl 4-30 set ref 157* 159 159 159 162 189* 193* mailbox_type 72 based fixed bin(17,0) level 2 dcl 4-6 ref 159 159 message_body_section based structure level 1 dcl 5-274 message_envelope based structure level 1 dcl 5-61 message_redistribution based structure level 1 dcl 5-122 message_reference based structure level 1 dcl 5-234 message_text_field based structure level 1 dcl 5-260 message_user_field based structure level 1 dcl 5-163 name parameter char packed unaligned dcl 242 ref 238 247 250 null builtin function dcl 79 ref 139 143 149 229 page_lth 77 000201 automatic fixed bin(17,0) level 2 dcl 75 set ref 203* request_type 273 000201 automatic char(24) level 2 packed packed unaligned dcl 75 set ref 208* reverse builtin function dcl 79 ref 250 251 253 reverse_name 000100 automatic varying char dcl 247 set ref 250* 253 reverse_suffix 000100 automatic varying char dcl 248 set ref 251* 253 rtrim builtin function dcl 79 ref 164 172 180 250 251 seg_ptr 000166 automatic pointer dcl 71 set ref 139* 143 143* 175* 176* 177* 212* substr builtin function dcl 79 ref 164 164 suffix parameter char packed unaligned dcl 243 ref 238 248 251 terminate_file_ 000032 constant entry external dcl 92 ref 176 top_label 100 000201 automatic char(136) level 2 packed packed unaligned dcl 75 set ref 204* translate builtin function dcl 79 ref 172 unique_chars_ 000034 constant entry external dcl 93 ref 180 180 unspec builtin function dcl 79 set ref 198* unused_return_bc 000200 automatic fixed bin(35,0) dcl 73 set ref 195* 210 verify builtin function dcl 79 ref 164 version 000201 automatic fixed bin(17,0) level 2 dcl 75 set ref 199* xmail_display_msgs_$ff 000036 constant entry external dcl 94 ref 193 xmail_err_$no_curr_msgs 000060 external static fixed bin(35,0) dcl 114 set ref 149* xmail_err_$no_hardcopy 000062 external static fixed bin(35,0) dcl 114 set ref 213 213* xmail_error_$code_first 000040 constant entry external dcl 95 ref 149 213 215 xmail_error_$no_code 000042 constant entry external dcl 96 ref 147 153 178 182 196 217 xmail_list_msgs_$selected 000044 constant entry external dcl 97 ref 189 xmail_print_$create_seg 000046 constant entry external dcl 98 ref 175 xmail_print_$delete_seg 000050 constant entry external dcl 99 ref 143 xmail_print_$submit_seg 000052 constant entry external dcl 100 ref 212 xmail_validate_$curr_msgs 000054 constant entry external dcl 101 ref 152 xmail_validate_$mbx 000056 constant entry external dcl 102 ref 146 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DP_PLOT internal static fixed bin(17,0) initial dcl 3-81 DP_PRINT internal static fixed bin(17,0) initial dcl 3-81 DP_PUNCH internal static fixed bin(17,0) initial dcl 3-81 Direct_input internal static fixed bin(17,0) initial dcl 2-15 Direct_output internal static fixed bin(17,0) initial dcl 2-15 Direct_update internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 2-15 MAILBOX_VERSION_2 internal static char(8) initial packed unaligned dcl 4-28 MESSAGE_ADDRESS_LIST_USER_FIELD internal static fixed bin(17,0) initial dcl 5-174 MESSAGE_BIT_STRING_BODY_SECTION internal static fixed bin(17,0) initial dcl 5-285 MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 5-318 MESSAGE_DATE_USER_FIELD internal static fixed bin(17,0) initial dcl 5-174 MESSAGE_ENVELOPE_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 5-79 MESSAGE_INTEGER_USER_FIELD internal static fixed bin(17,0) initial dcl 5-174 MESSAGE_PREFORMATTED_BODY_SECTION internal static fixed bin(17,0) initial dcl 5-285 MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 5-117 MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 5-144 MESSAGE_REFERENCES_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 5-227 MESSAGE_REFERENCE_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 5-253 MESSAGE_TEXT_USER_FIELD internal static fixed bin(17,0) initial dcl 5-174 MESSAGE_TRACE_VERSION_2 internal static char(8) initial packed unaligned dcl 5-103 MESSAGE_USER_FIELDS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 5-158 MESSAGE_USER_FIELD_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 5-213 MESSAGE_VERSION_2 internal static char(8) initial packed unaligned dcl 5-49 MSG_STRUCT_VERSION_1 internal static fixed bin(17,0) initial dcl 6-4 SAVEBOX internal static fixed bin(17,0) initial dcl 4-37 Sequential_input internal static fixed bin(17,0) initial dcl 2-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_update internal static fixed bin(17,0) initial dcl 2-15 Stream_input internal static fixed bin(17,0) initial dcl 2-15 Stream_input_output internal static fixed bin(17,0) initial dcl 2-15 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 1-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 1-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 1-16 TERM_FILE_TERM internal static bit(3) initial packed unaligned dcl 1-14 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 1-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 1-15 USER_LOGBOX internal static fixed bin(17,0) initial dcl 4-37 dpap automatic pointer dcl 3-21 dprint_arg_buf automatic structure level 1 dcl 3-22 dprint_arg_version_1 internal static fixed bin(17,0) initial dcl 3-69 dprint_arg_version_10 internal static fixed bin(17,0) initial dcl 3-78 dprint_arg_version_2 internal static fixed bin(17,0) initial dcl 3-70 dprint_arg_version_3 internal static fixed bin(17,0) initial dcl 3-71 dprint_arg_version_4 internal static fixed bin(17,0) initial dcl 3-72 dprint_arg_version_5 internal static fixed bin(17,0) initial dcl 3-73 dprint_arg_version_6 internal static fixed bin(17,0) initial dcl 3-74 dprint_arg_version_7 internal static fixed bin(17,0) initial dcl 3-75 dprint_arg_version_8 internal static fixed bin(17,0) initial dcl 3-76 iox_modes internal static char(24) initial array dcl 2-6 mailbox_n_messages automatic fixed bin(17,0) dcl 4-32 message based structure level 1 dcl 5-15 message_address_list_user_field based structure level 1 dcl 5-190 message_bit_string_body_section based structure level 1 dcl 5-301 message_bit_string_body_section_bit_string based bit packed unaligned dcl 5-307 message_body_section_parameter based structure level 1 dcl 5-313 message_body_section_parameter_ptr automatic pointer dcl 5-320 message_body_section_ptr automatic pointer dcl 5-280 message_date_user_field based structure level 1 dcl 5-195 message_envelope_parameter based structure level 1 dcl 5-74 message_envelope_parameter_ptr automatic pointer dcl 5-81 message_envelope_ptr automatic pointer dcl 5-69 message_integer_user_field based structure level 1 dcl 5-200 message_n_body_sections automatic fixed bin(17,0) dcl 5-55 message_n_redistributions automatic fixed bin(17,0) dcl 5-55 message_n_user_fields automatic fixed bin(17,0) dcl 5-55 message_preformatted_body_section based structure level 1 dcl 5-292 message_preformatted_body_section_text based char packed unaligned dcl 5-298 message_ptr automatic pointer dcl 5-53 message_redistribution_comment based char packed unaligned dcl 5-131 message_redistribution_parameter based structure level 1 dcl 5-139 message_redistribution_parameter_ptr automatic pointer dcl 5-146 message_redistribution_ptr automatic pointer dcl 5-134 message_redistributions_list based structure level 1 dcl 5-109 message_reference_parameter based structure level 1 dcl 5-248 message_reference_parameter_ptr automatic pointer dcl 5-255 message_reference_ptr automatic pointer dcl 5-243 message_reference_subject based char packed unaligned dcl 5-240 message_references_list based structure level 1 dcl 5-219 message_references_list_n_references automatic fixed bin(17,0) dcl 5-55 message_references_list_ptr automatic pointer dcl 5-229 message_subject based char packed unaligned dcl 5-51 message_text_field_ptr automatic pointer dcl 5-270 message_text_field_text based char packed unaligned dcl 5-268 message_text_user_field based structure level 1 dcl 5-183 message_text_user_field_text based char packed unaligned dcl 5-187 message_trace based structure level 1 dcl 5-87 message_trace_n_relays automatic fixed bin(17,0) dcl 5-55 message_trace_ptr automatic pointer dcl 5-105 message_user_field_parameter based structure level 1 dcl 5-208 message_user_field_parameter_ptr automatic pointer dcl 5-215 message_user_field_ptr automatic pointer dcl 5-169 message_user_fields_list based structure level 1 dcl 5-150 msg_struct based structure level 1 unaligned dcl 6-22 msg_structp automatic pointer dcl 6-20 n_messages automatic fixed bin(17,0) dcl 6-3 nonexist_msgs based structure level 1 unaligned dcl 6-15 nonexist_msgsp automatic pointer dcl 6-13 short_iox_modes internal static char(4) initial array dcl 2-12 terminate_file_switches based structure level 1 packed packed unaligned dcl 1-4 xmail_data based structure level 1 dcl 7-54 xmail_data_ptr external static pointer initial dcl 7-52 xmail_version internal static varying char(10) initial dcl 7-84 NAMES DECLARED BY EXPLICIT CONTEXT. close_detach_and_destroy 001707 constant entry internal dcl 225 ref 142 219 minus_suffix 001762 constant entry internal dcl 238 ref 159 162 xmail_dprint_msgs_ 000322 constant entry external dcl 36 ref 109 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3120 3204 2574 3130 Length 3566 2574 64 346 324 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_dprint_msgs_ 470 external procedure is an external procedure. on unit on line 141 71 on unit close_detach_and_destroy 72 internal procedure is called by several nonquick procedures. minus_suffix 79 internal procedure uses auto adjustable storage, and uses returns(char(*)) or returns(bit(*)). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME minus_suffix 000100 reverse_suffix minus_suffix 000100 reverse_name minus_suffix xmail_dprint_msgs_ 000100 code xmail_dprint_msgs_ 000101 dname xmail_dprint_msgs_ 000153 ename xmail_dprint_msgs_ 000164 iocb_ptr xmail_dprint_msgs_ 000166 seg_ptr xmail_dprint_msgs_ 000170 mailbox_name xmail_dprint_msgs_ 000200 unused_return_bc xmail_dprint_msgs_ 000201 auto_dprint_arg xmail_dprint_msgs_ 000524 ME_ENTRY xmail_dprint_msgs_ 000536 mailbox_ptr xmail_dprint_msgs_ 000540 curr_msgsp xmail_dprint_msgs_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac alloc_auto_adj enable_op shorten_stack ext_entry int_entry int_entry_desc reverse_cs set_chars_eis return_chars_eis index_after_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ hcs_$fs_get_path_name ioa_$ioa_switch iox_$attach_name iox_$close iox_$destroy_iocb iox_$detach_iocb iox_$open terminate_file_ unique_chars_ xmail_display_msgs_$ff xmail_error_$code_first xmail_error_$no_code xmail_list_msgs_$selected xmail_print_$create_seg xmail_print_$delete_seg xmail_print_$submit_seg xmail_validate_$curr_msgs xmail_validate_$mbx THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$moderr xmail_err_$no_curr_msgs xmail_err_$no_hardcopy LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 36 000316 109 000327 139 000333 141 000336 142 000352 143 000362 144 000401 146 000402 147 000414 149 000450 152 000501 153 000512 156 000546 157 000552 159 000555 162 000612 164 000642 172 000677 175 000724 176 000746 177 000776 178 001032 180 001066 181 001205 182 001225 184 001261 187 001312 189 001316 190 001331 193 001350 195 001363 196 001410 198 001444 199 001447 200 001451 201 001453 202 001477 203 001501 204 001502 205 001505 206 001510 207 001513 208 001516 209 001521 210 001522 212 001524 213 001552 215 001610 217 001644 219 001677 221 001705 225 001706 229 001714 231 001721 232 001732 233 001745 236 001760 238 001761 247 002002 248 002015 250 002030 251 002061 253 002112 ----------------------------------------------------------- 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