COMPILATION LISTING OF SEGMENT xmail_Mail_File_Maint_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0751.1 mst Fri 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 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-02-03,Blair), approve(86-02-26,MCR7358), 14* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 15* 85-01-18 JG Backs: Replaced call to SELECT_NEW_FILE at OPT (6) with a call 16* to xmail_select_file_$caller_msg to eliminate opening the mailbox before 17* renaming it. Opening is not necessary and wastes time if a large file. 18* Choosing this option will close the previous mailbox but only after the 19* file to be renamed is accepted. 20* 85-04-22 JG Backs: Modified SELECT_NEW_FILE proc, adding call to ioa_ to 21* display a message to user that the file is being worked on. If the file 22* is large, opening will take some time and the user should know something 23* is happening. 24* 85-04-22 JG Backs: Deleted the P_default_file parameter from this module 25* which was not being used. Also modified xmail_Executive_Mail_.pl1 to 26* call this module without a parameter, since it was only passing a null 27* string and it is the only module to call this one. Trimmed the suffix 28* from star_names before listing the mail files and increasing the size 29* of the space by one for each file. This was a bug where there was no 30* space between files names if a file of max size (25 char) was listed in 31* the first column. 32* 2) change(86-02-03,Blair), approve(86-02-26,MCR7358), 33* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 34* Free the star_entry structures and comment out an unnecessary call to 35* select_msgs_$all so that there aren't a lot of things hanging around 36* in the process_dir (with no way to get to them) which got allocated 37* when various options were looped through in succession. Error_list 38* entry 116. 39* 3) change(87-01-19,Blair), approve(87-02-05,MCR7618), 40* audit(87-04-10,RBarstad), install(87-04-26,MR12.1-1025): 41* Add code to allow the user to discriminate between interactive and 42* ordinary messages when listing them, but always select all and don't give 43* him a choice if he is emptying, discarding or archiving his mailfile. 44* 4) change(87-01-21,Blair), approve(87-02-05,MCR7618), 45* audit(87-04-10,RBarstad), install(87-04-26,MR12.1-1025): 46* Check the width of the window to figure out how many columns are needed 47* when we print a list of mail files. Error_list #121. 48* END HISTORY COMMENTS */ 49 50 51 xmail_Mail_File_Maint_: proc ; 52 53 /* BEGIN DESCRIPTION 54* 55*history: 56* Written by R. Ignagni Nov 1981 57* 58* 82-12-10 Schimke: Changed the code to use star_names (nindex(idx)) 59* rather than star_names (idx) so addnames on mail files don't cause errors 60* when listing mail files. Also changed loop boundary from star_entry_count 61* to sum(star_entries(*).nnames) so addnames can be used to delete the files. 62* TRs: 13951, 13793, 13958, 12803 63* 64* 83-06-27 DJ Schimke: Modified to use new mail_system calls and version 2 65* mailboxes. 66* 67* 83-10-12 DJ Schimke: Replaced call to xmail_archive_msgs_ by a call to the 68* enhanced xmail_file_msgs_$current_msgs_. The only user-visible change is in 69* the error messages which will say "file" rather than "archive". 70* 71* 83-11-01 DJ Schimke: Changed the calling sequence of xmail_select_file_. 72* 73* 84-04-13 DJ Schimke: Deleted the call to mail_system_$get_message_count 74* before opening a new mail file to allow opening of a mailbox without status 75* permission to the mailbox. The message count obtained here wasn't even used. 76* The opening mode was also changed to ACCESSIBLE_MESSAGES rather than 77* ALL_MESSAGES. This allows reading of any mailbox that you have at least 78* "o" or "r" access to. 79* 80* 84-07-03 DJ Schimke: Modified the call to xmail_create_menu_ to add the 81* N_COLUMNS parameter for three-column menu format. 82* 83* 84-08-29 JG Backs: Modified SELECT_NEW_FILE proc to test for 0 messages 84* in a new file immediately after opening mailbox. If there are no messages, 85* the file is closed and not displayed. This prevents a fatal error if the 86* user tries to retrieve deleted messages from someone elses mailbox when 87* there are no accessible messages. 88* 89* 90*END DESCRIPTION 91**/ 92 93 /* CONSTANTS */ 94 95 dcl OPTION_NAMES int static options (constant) init ( 96 "List Files", 97 "Create", 98 "Archive", 99 "Print", 100 "Empty", 101 "Rename", 102 "List Messages", 103 "Discard File", 104 "Retrieve Messages" 105 ) dim (9) char (20) var; 106 107 dcl ALLOW_NEW bit (1) aligned init ("1"b) int static options (constant); 108 dcl ALLOW_OLD bit (1) aligned init ("1"b) int static options (constant); 109 dcl DONT_ALLOW_NEW bit (1) aligned init ("0"b) int static options (constant); 110 dcl DONT_ALLOW_OLD bit (1) aligned init ("0"b) int static options (constant); 111 dcl FULL_MFILE_SUFFIX char (7) init (".sv.mbx") int static options (constant); 112 dcl MFILE_SUFFIX char (6) init ("sv.mbx") int static options (constant); 113 dcl MSGS_AS_MAIL char (15) int static options (constant) init ("msgs_as_mail_yn"); 114 dcl NAME char (22) init ("xmail_Mail_File_Maint_") int static options (constant); 115 dcl NL init (" 116 ") char (1) int static options (constant); 117 dcl NO_FILE_MSG char (23) init ("You have no mail files.") int static options (constant); 118 dcl NO_SELECTION bit (1) aligned init ("0"b) int static options (constant); 119 dcl N_COLUMNS fixed bin int static options (constant) init (3); 120 dcl TITLE char (19) init (" Review Mail Files ") int static options (constant); 121 122 /* AUTOMATIC */ 123 124 dcl choice fixed bin; 125 dcl code fixed bin (35); 126 dcl default_file char (24) varying; 127 dcl dir char (168); 128 dcl display_needed bit (1) aligned; 129 dcl file char (32) varying; 130 dcl file_indicator char (32) var; 131 dcl file_info char (256) var; 132 dcl file_is_empty bit (1); 133 dcl last_file_used char (24) varying; 134 dcl last_opt fixed bin; 135 dcl multiple_msgs bit (1) aligned; 136 dcl new_dir char (168); 137 dcl new_file char (32) varying; 138 dcl pos_line char (256); 139 dcl position char (256) var; 140 dcl response char (3)varying; 141 dcl treat_msgs_as_mail bit (1) aligned; 142 dcl unused_bit bit (1) aligned; 143 dcl unused_bit2 bit (1) aligned; 144 dcl yes_sw bit (1) aligned; 145 dcl 1 auto_open_options like open_options; 146 dcl 1 auto_close_options like close_options; 147 148 /* BUILTINS */ 149 150 dcl (addr, before, char, divide, ltrim, null, rtrim, substr, sum, translate, trunc) builtin; 151 152 /* CONDITIONS */ 153 154 dcl (cleanup, quit, program_interrupt, xmail_redisplay_menu) condition; 155 156 /* ENTRIES */ 157 158 dcl get_system_free_area_ entry () returns (ptr); 159 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, fixed bin (35)); 160 dcl ioa_ entry options (variable); 161 dcl ioa_$nnl entry () options (variable); 162 dcl ioa_$rsnnl entry options (variable); 163 dcl mail_system_$close_mailbox entry (ptr, ptr, fixed bin (35)); 164 dcl mail_system_$open_mailbox entry (char (*), char (*), ptr, char (8), ptr, fixed bin (35)); 165 dcl mailbox_$chname_file entry (char (*), char (*), char (*), char (*), fixed bin (35)); 166 dcl xmail_error_$code_first entry() options(variable); 167 dcl xmail_error_$code_last entry () options (variable); 168 dcl xmail_error_$no_code entry () options (variable); 169 dcl xmail_error_$no_print entry () options (variable); 170 dcl xmail_get_choice_ entry (ptr, char (*), char (*), char (*), char (*), bit (1) aligned, char (*), fixed bin, fixed bin (35)); 171 dcl xmail_get_str_$yes_no entry (char(*) var, bit(1) aligned); 172 dcl xmail_select_file_$caller_msg entry (char (*), char (*), char (*), bit (1) aligned, bit (1) aligned, 173 char (168), char (32) var, char (*), bit (1) aligned, bit (1) aligned, fixed bin (35)); 174 dcl xmail_select_msgs_$all entry (ptr, ptr, char (*)); 175 dcl xmail_create_menu_ entry (char (*), (*) char (*) var, fixed bin, ptr, fixed bin (35)); 176 dcl xmail_value_$get_with_default entry (char(*), char(*) var, char(*) var, fixed bin(35)); 177 178 179 /* EXTERNAL STATIC */ 180 181 dcl error_table_$moderr fixed bin (35) ext static; 182 dcl iox_$user_output ptr external static; 183 dcl xmail_err_$exit_now ext static fixed bin (35); 184 dcl xmail_err_$help_requested ext static fixed bin (35); 185 186 /* INTERNAL STATIC */ 187 188 dcl menup int static ptr init (null); 189 190 /* INCLUDE FILES */ 191 1 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 1 2 1 3 /* This include file contains structures for the hcs_$star_, 1 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 1 5* 1 6* Written 23 October 1978 by Monte Davidoff. 1 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 1 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 1 9**/ 1 10 1 11 /* automatic */ 1 12 1 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 1 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 1 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 1 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 1 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 1 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 1 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 1 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 1 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 1 22 1 23 /* based */ 1 24 1 25 /* hcs_$star_ entry structure */ 1 26 1 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 1 28 2 type fixed binary (2) unsigned unaligned, 1 29 /* storage system type */ 1 30 2 nnames fixed binary (16) unsigned unaligned, 1 31 /* number of names of entry that match star_name */ 1 32 2 nindex fixed binary (18) unsigned unaligned; 1 33 /* index of first name in star_names */ 1 34 1 35 /* hcs_$star_ name structure */ 1 36 1 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 1 38 1 39 /* hcs_$star_list_ branch structure */ 1 40 1 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 42 2 type fixed binary (2) unsigned unaligned, 1 43 /* storage system type */ 1 44 2 nnames fixed binary (16) unsigned unaligned, 1 45 /* number of names of entry that match star_name */ 1 46 2 nindex fixed binary (18) unsigned unaligned, 1 47 /* index of first name in star_list_names */ 1 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 1 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 1 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 1 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 1 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 1 53 2 pad bit (7) unaligned, 1 54 2 records fixed binary (18) unsigned unaligned; 1 55 /* records used by branch */ 1 56 1 57 /* hcs_$star_dir_list_ branch structure */ 1 58 1 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 60 2 type fixed binary (2) unsigned unaligned, 1 61 /* storage system type */ 1 62 2 nnames fixed binary (16) unsigned unaligned, 1 63 /* number of names of entry that match star_name */ 1 64 2 nindex fixed binary (18) unsigned unaligned, 1 65 /* index of first name in star_list_names */ 1 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 1 67 2 pad bit (36) unaligned, 1 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 1 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 1 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 1 71 2 bit_count fixed binary (24) unaligned; 1 72 /* bit count of the branch */ 1 73 1 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 1 75 1 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 77 2 type fixed binary (2) unsigned unaligned, 1 78 /* storage system type */ 1 79 2 nnames fixed binary (16) unsigned unaligned, 1 80 /* number of names of entry that match star_name */ 1 81 2 nindex fixed binary (18) unsigned unaligned, 1 82 /* index of first name in star_list_names */ 1 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 1 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 1 85 2 pathname_len fixed binary (18) unsigned unaligned, 1 86 /* length of the pathname of the link */ 1 87 2 pathname_index fixed binary (18) unsigned unaligned; 1 88 /* index of start of pathname in star_list_names */ 1 89 1 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 1 91 1 92 declare star_list_names char (32) based (star_list_names_ptr) 1 93 dimension (star_links (star_branch_count + star_link_count).nindex 1 94 + star_links (star_branch_count + star_link_count).nnames 1 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 1 96 * binary ( 1 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 1 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 1 99 1 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 1 101 1 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 1 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 1 104 1 105 /* internal static */ 1 106 1 107 /* star_select_sw values */ 1 108 1 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 1 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 1 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 1 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 1 113 fixed binary (3) internal static options (constant) initial (5); 1 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 1 115 fixed binary (3) internal static options (constant) initial (7); 1 116 1 117 /* storage system types */ 1 118 1 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 1 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 1 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 1 122 1 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 192 193 2 1 /* Begin include file: xmail_windows.incl.pl1 */ 2 2 /* Created 6/24/81 by Paul Kyzivat */ 2 3 /* Mofified 6/20/84 by DJ Schimke to add the mm_status window */ 2 4 2 5 dcl 1 xmail_windows aligned external static, 2 6 2 initial_position fixed bin, 2 7 2 min_lines_needed fixed bin, 2 8 2 (status, mm_status, menu, bottom) aligned like xmail_window_info_format; 2 9 2 10 dcl 1 xmail_window_info_format aligned based, 2 11 2 iocb ptr, 2 12 2 position aligned like window_position_info; 2 13 3 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 3 2 /* format: style3 */ 3 3 3 4 /* Modified 26 January 1982 by William York to add the set_more_handler 3 5* and reset_more_handler control orders. */ 3 6 /* Modified October 1982 by WMY to add set and get_token_characters, 3 7* set and get_more_prompt. */ 3 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 3 9* structure. */ 3 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 3 11* partial screen width windows. */ 3 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 3 13* This should be removed when window_info.incl.pl1 is created. */ 3 14 /* Modified 29 February 1984 by Barmar to add version 1 3 15* get_editor_key_bindings_info. */ 3 16 /* Modified 1 March 1984 by Barmar to add version 1 3 17* set_editor_key_bindings_info. */ 3 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 3 19* line_editor_key_bindings_info, which includes the name, description, and 3 20* info path */ 3 21 3 22 /* structure for the set_window_info and get_window_info 3 23* control orders. */ 3 24 3 25 dcl 1 window_position_info 3 26 based (window_position_info_ptr), 3 27 2 version fixed bin, 3 28 2 origin, 3 29 3 column fixed bin, 3 30 3 line fixed bin, 3 31 2 extent, 3 32 3 width fixed bin, 3 33 3 height fixed bin; 3 34 3 35 dcl (window_position_info_version, window_position_info_version_1) 3 36 fixed bin internal static init (1) options (constant); 3 37 dcl window_position_info_ptr 3 38 pointer; 3 39 3 40 /* structure for the set_window_status and get_window_status 3 41* control orders */ 3 42 3 43 declare window_status_info_ptr 3 44 pointer; 3 45 declare 1 window_status_info 3 46 aligned based (window_status_info_ptr), 3 47 2 version fixed bin, 3 48 2 status_string bit (36) aligned; /* string (window_status) */ 3 49 /* see window_status.incl.pl1 for the contents of this string */ 3 50 3 51 3 52 declare (window_status_version, window_status_version_1) 3 53 fixed bin internal static init (1) options (constant); 3 54 3 55 /* info structure for the set_more_responses and get_more_responses control 3 56* orders */ 3 57 3 58 3 59 dcl 1 more_responses_info 3 60 aligned based (more_responses_info_ptr), 3 61 2 version fixed bin, 3 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 3 63 2 n_noes fixed bin, 3 64 2 yeses char (32) unaligned, 3 65 2 noes char (32) unaligned; 3 66 3 67 dcl (more_responses_info_version_1, more_responses_version) 3 68 fixed bin internal static init (1) options (constant); 3 69 dcl more_responses_info_ptr 3 70 pointer; 3 71 3 72 /* structure for the set_break_table and get_break_table 3 73* control orders */ 3 74 3 75 declare break_table_ptr pointer; 3 76 declare 1 break_table_info aligned based (break_table_ptr), 3 77 2 version fixed bin, 3 78 2 breaks (0:127) bit (1) unaligned; 3 79 3 80 declare (break_table_info_version, break_table_info_version_1) 3 81 fixed bin init (1) internal static options (constant); 3 82 3 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 3 84 2 version fixed bin, 3 85 2 flags unaligned, 3 86 3 old_handler_valid 3 87 bit(1), 3 88 3 pad bit(35), 3 89 2 more_handler entry (pointer, bit(1) aligned), 3 90 2 old_more_handler entry (pointer, bit(1) aligned); 3 91 3 92 declare more_handler_info_ptr pointer; 3 93 3 94 declare (more_handler_info_version, more_handler_info_version_3) 3 95 fixed bin internal static options (constant) init (3); 3 96 3 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 3 98 2 version char(8), 3 99 2 token_character_count 3 100 fixed bin, 3 101 2 token_characters 3 102 char (128) unaligned; 3 103 3 104 declare token_characters_info_ptr pointer; 3 105 3 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 3 107 3 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 3 109 2 version char(8), 3 110 2 more_prompt char(80); 3 111 3 112 declare more_prompt_info_ptr pointer; 3 113 3 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 3 115 3 116 /* Line editor stuff ... */ 3 117 3 118 dcl line_editor_key_binding_info_ptr 3 119 pointer; 3 120 3 121 dcl line_editor_binding_count 3 122 fixed bin; 3 123 dcl line_editor_longest_sequence 3 124 fixed bin; 3 125 /* For each binding, action defines what to do for that sequence. Constants 3 126* are defined in window_editor_values.incl.pl1. Only if action is set to 3 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 3 128 3 129 dcl 1 line_editor_key_binding_info 3 130 aligned based (line_editor_key_binding_info_ptr), 3 131 2 version char(8), 3 132 2 binding_count fixed bin, 3 133 2 longest_sequence fixed bin, 3 134 2 bindings (line_editor_binding_count refer 3 135 (line_editor_key_binding_info.binding_count)), 3 136 3 sequence char(line_editor_longest_sequence refer 3 137 (line_editor_key_binding_info.longest_sequence)) varying, 3 138 3 action fixed bin, 3 139 3 numarg_action fixed binary, 3 140 3 editor_routine entry (pointer, fixed bin(35)), 3 141 3 name char (64) varying unaligned, 3 142 3 description char (256) varying unaligned, 3 143 3 info_path unaligned, 3 144 4 info_dir char (168), 3 145 4 info_entry char (32); 3 146 3 147 3 148 dcl line_editor_key_binding_info_version_3 3 149 char(8) static options (constant) init ("lekbi003"); 3 150 3 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 3 152 2 version char (8), 3 153 2 flags, 3 154 3 entire_state bit (1) unaligned, 3 155 3 mbz bit (35) unaligned, 3 156 2 key_binding_info_ptr ptr, 3 157 2 entire_state_ptr ptr; 3 158 3 159 dcl get_editor_key_bindings_info_ptr ptr; 3 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 3 161 3 162 dcl 1 set_editor_key_bindings_info aligned 3 163 based (set_editor_key_bindings_info_ptr), 3 164 2 version char (8), 3 165 2 flags, 3 166 3 replace bit (1) unaligned, 3 167 3 update bit (1) unaligned, 3 168 3 mbz bit (34) unaligned, 3 169 2 key_binding_info_ptr ptr; 3 170 3 171 dcl set_editor_key_bindings_info_ptr ptr; 3 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 3 173 3 174 /* This should be moved to window_info.incl.pl1 when that include file is 3 175* created. JR 2/1/84 */ 3 176 3 177 dcl 1 window_edit_line_info 3 178 based (window_edit_line_info_ptr), 3 179 2 version char (8), 3 180 2 line_ptr ptr, 3 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 3 182 3 183 dcl window_edit_line_info_version_1 3 184 char (8) static options (constant) init ("wedl0001"); 3 185 3 186 dcl window_edit_line_info_ptr 3 187 ptr; 3 188 3 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 2 14 2 15 2 16 /* End include file: xmail_windows.incl.pl1 */ 194 195 4 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 4 2* declarations for the menu_ subroutines MTB 493 4 3* James R. Davis 26 Jan 81 to 20 Februrary 81 4 4**/ 4 5 4 6 /* format: off */ 4 7 4 8 dcl menu_$create entry ( 4 9 (*) char (*) varying, /* input: choices */ 4 10 (*) char (*) varying, /* input: headers */ 4 11 (*) char (*) varying, /* input: trailers */ 4 12 pointer, /* input: to format info */ 4 13 (*) char (1) unal, /* input: keys to use */ 4 14 pointer, /* input: to area */ 4 15 pointer, /* input: to needs str. */ 4 16 pointer, /* to menu: output */ 4 17 fixed bin (35) /* code */ 4 18 ); 4 19 4 20 dcl menu_$display entry ( 4 21 pointer, /* window */ 4 22 pointer, /* menu */ 4 23 fixed bin (35) /* code */ 4 24 ); 4 25 4 26 dcl menu_$get_choice entry ( 4 27 pointer, /* window */ 4 28 pointer, /* menu */ 4 29 pointer, /* to function key info */ 4 30 bit (1) aligned, /* function key hi: output */ 4 31 fixed bin, /* output: selection number */ 4 32 fixed bin (35) /* output: code */ 4 33 ); 4 34 4 35 dcl menu_$describe entry ( 4 36 pointer, /* menu */ 4 37 pointer, /* needs */ 4 38 fixed bin (35) /* code */ 4 39 ); 4 40 4 41 dcl menu_$destroy entry ( 4 42 pointer, /* menu */ 4 43 fixed bin (35) /* code */ 4 44 ); 4 45 4 46 dcl menu_$store entry ( 4 47 character (*), 4 48 character (*), 4 49 character (*), 4 50 bit (1) aligned, 4 51 pointer, 4 52 fixed bin (35)); 4 53 4 54 dcl menu_$retrieve entry ( 4 55 character (*), 4 56 character (*), 4 57 character (*), 4 58 pointer, 4 59 pointer, 4 60 fixed bin (35)); 4 61 dcl menu_$delete entry ( 4 62 character (*), 4 63 character (*), 4 64 character (*), 4 65 fixed binary (35)); 4 66 4 67 dcl menu_$list entry ( 4 68 character (*), 4 69 character (*), 4 70 character (*), 4 71 pointer, 4 72 fixed bin, 4 73 pointer, 4 74 fixed bin (35)); 4 75 4 76 dcl 1 menu_format aligned based (menu_format_ptr), 4 77 2 version fixed bin, 4 78 2 constraints, 4 79 3 max_width fixed bin, 4 80 3 max_height fixed bin, 4 81 2 n_columns fixed bin, 4 82 2 flags, 4 83 3 center_headers bit (1) unal, 4 84 3 center_trailers bit (1) unal, 4 85 3 pad bit (34) unal, 4 86 2 pad_char char (1); 4 87 4 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 4 89 2 version fixed bin, 4 90 2 lines_needed fixed bin, 4 91 2 width_needed fixed bin, 4 92 2 n_options fixed bin; 4 93 4 94 dcl menu_format_ptr pointer; 4 95 dcl menu_requirements_ptr pointer; 4 96 4 97 dcl (menu_format_version_1, menu_requirements_version_1) 4 98 fixed bin internal static init (1) options (constant); 4 99 4 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 4 101 options (constant) init 4 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 4 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 4 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 4 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 4 106 4 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 196 197 5 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 5 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 5 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 5 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 10* Adding switch to indicate request for menu display came from general help. 5 11* This is so general help menu will be displayed in top screen. 5 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 5 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 14* Add switch to indicate whether or not it is permissible to process mail 5 15* in other users' mailboxes (foreign_mailbox). 5 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 5 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 18* Add bit to indicate whether or not this is a true cleanup condition. 5 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 5 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 21* Rearrange to group all the bit flags together in one word with a pad. 5 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 5 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 5 25* you keep around a pointer to a structure which no longer exists. 5 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 5 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 5 28* Add a field to indicate whether or not we should process interactive msgs. 5 29* Increment version to 4.1 so default value will get set. 5 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 5 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 5 32* Add a field to indicate whether or not we're processing a reply so that we 5 33* will be able to rebuild the screens properly after a disconnect occurs. 5 34* Error_list #114. 5 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 5 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 5 37* Add a bit to indicate whether or not the error segment had to be created 5 38* in the pdir (because we didn't have sma access to the mlsys_dir). 5 39* END HISTORY COMMENTS */ 5 40 5 41 5 42 /* Written 5/13/81 by Paul H. Kyzivat */ 5 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 5 44* and to add n_fkeys_used */ 5 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 5 46* varying string. */ 5 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 5 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 5 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 5 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 5 51 5 52 dcl xmail_data_ptr external static ptr init (null); 5 53 5 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 5 55 2 mail_dir char (168) varying, 5 56 2 first_label label, 5 57 2 quit_label label, 5 58 2 value_seg_pathname char (168) varying, 5 59 2 moved_user_io ptr, 5 60 2 normal_usage char (80) unal, 5 61 2 function_key_info, 5 62 3 function_key_data_ptr ptr, 5 63 3 n_fkeys_used fixed bin, 5 64 2 actee, 5 65 3 person char(32) varying, 5 66 3 project char(32) varying, 5 67 2 flags aligned, 5 68 3 mail_in_incoming bit (1) unal, 5 69 3 lists_as_menus bit (1) unal, /* personalization */ 5 70 3 remove_menus bit (1) unal, /* personalization */ 5 71 3 confirm_print bit (1) unal, /* personalization */ 5 72 3 multics_mode bit (1) unal, /* personalization */ 5 73 3 interactive_msgs bit (1) unal, /* personalization */ 5 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 5 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 5 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 5 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 5 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 5 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 5 80 3 pad bit (24) unal; 5 81 5 82 5 83 5 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 5 85 5 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 198 199 6 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 6 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 6 3 6 4 /* format: style3 */ 6 5 6 6 declare window_$bell entry (pointer, fixed binary (35)); 6 7 declare window_$clear_region 6 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 6 9 declare window_$clear_to_end_of_line 6 10 entry (pointer, fixed binary (35)); 6 11 declare window_$clear_to_end_of_window 6 12 entry (pointer, fixed binary (35)); 6 13 declare window_$clear_window 6 14 entry (pointer, fixed binary (35)); 6 15 declare window_$delete_chars 6 16 entry (pointer, fixed binary, fixed binary (35)); 6 17 declare window_$get_cursor_position 6 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 6 19 6 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 6 21 6 22 declare window_$get_echoed_chars 6 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 6 24 fixed binary (35)); 6 25 declare window_$get_unechoed_chars 6 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 6 27 fixed binary (35)); 6 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 6 29 declare window_$overwrite_text 6 30 entry (pointer, character (*), fixed binary (35)); 6 31 declare window_$position_cursor 6 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 6 33 6 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 6 35 6 36 declare window_$position_cursor_rel 6 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 6 38 6 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 6 40* code); */ 6 41 6 42 declare window_$scroll_region 6 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 6 44 declare window_$sync entry (pointer, fixed binary (35)); 6 45 6 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 6 47 6 48 declare window_$write_raw_text 6 49 entry (pointer, character (*), fixed binary (35)); 6 50 6 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 6 52 6 53 declare window_$write_sync_read 6 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 6 55 character (1) var, fixed binary (35)); 6 56 6 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 6 58 6 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 6 60 6 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 6 62 6 63 declare window_$change_column 6 64 entry (pointer, fixed binary, fixed binary (35)); 6 65 6 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 6 67 declare ( 6 68 window_$get_one_unechoed, 6 69 window_$get_one_unechoed_char 6 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 6 71 6 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 6 73 6 74 declare window_$destroy entry (pointer, fixed binary (35)); 6 75 6 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 6 77 6 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 6 79* buffer_len, n_returned, code); */ 6 80 6 81 6 82 /* end include file window_dcls.incl.pl1 */ 200 201 7 1 /* BEGIN INCLUDE FILE ... mlsys_open_options.incl.pl1 */ 7 2 /* Created: June 1983 by G. Palter */ 7 3 7 4 /* Options for the mail_system_$open_mailbox entrypoint */ 7 5 7 6 dcl 1 open_options aligned based (open_options_ptr), 7 7 2 version character (8), 7 8 2 message_selection_mode fixed binary, /* what types are to be read (all/ordinary/interactive) */ 7 9 2 sender_selection_mode fixed binary, /* selects messages by who sent them */ 7 10 2 message_reading_level fixed binary; /* specifies whether all or only part of a message is read */ 7 11 7 12 dcl OPEN_OPTIONS_VERSION_2 character (8) static options (constant) initial ("mlsopn02"); 7 13 7 14 dcl open_options_ptr pointer; 7 15 7 16 7 17 dcl ALL_MESSAGES fixed binary static options (constant) initial (0); 7 18 /* read all messages in the mailbox ... 7 19* ... used as both a message and sender selection mode */ 7 20 7 21 /* Defined message selection modes */ 7 22 7 23 dcl (ORDINARY_MESSAGES initial (1), /* read only ordinary messages */ 7 24 INTERACTIVE_MESSAGES initial (2)) /* read only interactive messages */ 7 25 fixed binary static options (constant); 7 26 7 27 7 28 /* Defined sender selection modes */ 7 29 7 30 dcl (ACCESSIBLE_MESSAGES initial (-1), /* reads whatever messages are accessible */ 7 31 OWN_MESSAGES initial (1), /* reads only those messages sent by this user */ 7 32 NOT_OWN_MESSAGES initial (2)) /* reads only those messages not sent by this user */ 7 33 fixed binary static options (constant); 7 34 7 35 7 36 /* Defined message reading levels */ 7 37 7 38 dcl (READ_KEYS initial (1), /* reads only the unique key of each message */ 7 39 READ_MESSAGES initial (2)) /* reads the entire content of each message */ 7 40 fixed binary static options (constant); 7 41 7 42 /* END INCLUDE FILE ... mlsys_open_options.incl.pl1 */ 202 203 8 1 /* BEGIN INCLUDE FILE ... mlsys_close_options.incl.pl1 */ 8 2 /* Created: June 1983 by G. Palter */ 8 3 8 4 /* Options for the mail_system_$close_mailbox entrypoint */ 8 5 8 6 dcl 1 close_options aligned based (close_options_ptr), 8 7 2 version character (8) unaligned, 8 8 2 flags, 8 9 3 perform_deletions bit (1) unaligned, /* ON => perform deletions requested earlier */ 8 10 3 report_deletion_errors bit (1) unaligned, /* ON => report problems deleting via sub_err_ */ 8 11 3 mbz bit (34) unaligned; /* must be set to ""b by the caller */ 8 12 8 13 dcl CLOSE_OPTIONS_VERSION_2 character (8) static options (constant) initial ("mlsclo02"); 8 14 8 15 dcl close_options_ptr pointer; 8 16 8 17 /* END INCLUDE FILE ... mlsys_close_options.incl.pl1 */ 204 205 9 1 /* BEGIN INCLUDE FILE ... mlsys_mailbox.incl.pl1 */ 9 2 /* Created: April 1983 by G. Palter */ 9 3 9 4 /* Definition of a mailbox as used by the Multics Mail System */ 9 5 9 6 dcl 1 mailbox aligned based (mailbox_ptr), 9 7 2 version character (8) unaligned, 9 8 2 reserved bit (144), /* for exclusive use of the mail system */ 9 9 2 mailbox_address pointer, /* mail system address of this mailbox */ 9 10 2 mailbox_dirname character (168) unaligned, /* directory containing this mailbox */ 9 11 2 mailbox_ename character (32) unaligned, /* entry name of this mailbox (includes ".mbx") */ 9 12 2 mailbox_type fixed binary, /* type of mailbox (see below) */ 9 13 2 mode bit (36), /* user's effective extended access to this mailbox */ 9 14 2 flags, 9 15 3 salvaged bit (1) unaligned, /* ON => this mailbox has been salvaged since last open */ 9 16 3 reserved bit (35) unaligned, /* for exclusive use of the mail system */ 9 17 2 message_selection_mode fixed binary, /* types of messages read: all/ordinary/interactive */ 9 18 2 sender_selection_mode fixed binary, /* whose messages were read: all/own/not-own */ 9 19 2 message_reading_level fixed binary, /* how much of each message read: keys/messages */ 9 20 2 n_messages fixed binary, /* total # of messages in this mailbox structure */ 9 21 2 n_ordinary_messages fixed binary, /* ... # of ordinary messages here */ 9 22 2 n_interactive_messages fixed binary, /* ... # of interactive messages here */ 9 23 2 n_deleted_messages fixed binary, /* ... # of messages here marked for later deletion */ 9 24 2 messages (mailbox_n_messages refer (mailbox.n_messages)), 9 25 3 key bit (72), /* unique key to read this message if not already read */ 9 26 3 message_ptr pointer; /* -> the message structure */ 9 27 9 28 dcl MAILBOX_VERSION_2 character (8) static options (constant) initial ("mlsmbx02"); 9 29 9 30 dcl mailbox_ptr pointer; 9 31 9 32 dcl mailbox_n_messages fixed binary; /* for exclusive use of the mail system */ 9 33 9 34 9 35 /* Types of mailboxes distinguished by the mail system */ 9 36 9 37 dcl (USER_DEFAULT_MAILBOX initial (1), /* the user's default mailbox for receiving mail */ 9 38 USER_LOGBOX initial (2), /* the user's logbox */ 9 39 SAVEBOX initial (3), /* a savebox */ 9 40 OTHER_MAILBOX initial (4)) /* any other type of mailbox */ 9 41 fixed binary static options (constant); 9 42 9 43 /* END INCLUDE FILE ... mlsys_mailbox.incl.pl1 */ 206 207 10 1 /* BEGIN INCLUDE FILE ... mlsys_message.incl.pl1 */ 10 2 10 3 10 4 /****^ HISTORY COMMENTS: 10 5* 1) change(85-12-19,Herbst), approve(86-03-25,MCR7367), 10 6* audit(86-04-28,Margolin), install(86-05-22,MR12.0-1059): 10 7* Added seen switch to message. 10 8* END HISTORY COMMENTS */ 10 9 10 10 10 11 /* Created: June 1983 by G. Palter */ 10 12 10 13 /* Definition of a message as used by the Multics Mail System */ 10 14 10 15 dcl 1 message aligned based (message_ptr), 10 16 2 version character (8) unaligned, 10 17 2 reserved bit (144), /* for exclusive use of the mail system */ 10 18 2 n_reply_references fixed binary, /* # of messages for which this is a reply */ 10 19 2 n_user_fields fixed binary, /* # of non-standard header fields in this message */ 10 20 2 n_redistributions fixed binary, /* # of times this message has been forwarded */ 10 21 2 n_body_sections fixed binary, /* # of sections in the body */ 10 22 2 flags, 10 23 3 interactive bit (1) unaligned, /* ON => this is an interactive message */ 10 24 3 can_be_deleted bit (1) unaligned, /* ON => the user can delete this message if desired */ 10 25 3 marked_for_deletion bit (1) unaligned, /* ON => message will be deleted when mailbox is closed */ 10 26 3 must_be_acknowledged bit (1) unaligned, /* ON => an ACK should be generated when message is read */ 10 27 3 seen bit (1) unaligned, /* ON => user has printed message at least once */ 10 28 3 reserved bit (31) unaligned, /* for use by the mail system */ 10 29 2 pad bit (36), 10 30 2 envelope like message_envelope, /* who/when/how the message was mailed & delivered */ 10 31 2 header, 10 32 3 message_id bit (72), /* ID of this message (same value for all copies) */ 10 33 3 access_class bit (72), /* AIM access class of this message */ 10 34 3 date_time_created fixed binary (71), /* date/time this message was composed */ 10 35 3 from pointer, /* -> address list of author(s) of the message */ 10 36 3 reply_to pointer, /* -> address list of recipients for reply (if not authors) */ 10 37 3 to pointer, /* -> address list of primary recipients */ 10 38 3 cc pointer, /* -> address list of secondary recipients */ 10 39 3 bcc pointer, /* -> address list of blind recipients */ 10 40 3 subject like message_text_field, /* subject of the message */ 10 41 3 reply_references pointer, /* -> list of messages for which this message is a reply */ 10 42 3 user_fields_list pointer, /* -> list of user-defined fields in this message */ 10 43 2 redistributions_list pointer, /* -> redistributions list for this message */ 10 44 2 body, 10 45 3 total_lines fixed binary (21), /* total # of lines in the body or -1 if indeterminate */ 10 46 3 pad bit (36), 10 47 3 body_sections (message_n_body_sections refer (message.n_body_sections)) like message_body_section; 10 48 10 49 dcl MESSAGE_VERSION_2 character (8) static options (constant) initial ("mlsmsg02"); 10 50 10 51 dcl message_subject character (message.header.subject.text_lth) unaligned based (message.header.subject.text_ptr); 10 52 10 53 dcl message_ptr pointer; 10 54 10 55 dcl (message_n_body_sections, message_trace_n_relays, message_n_redistributions, message_n_user_fields, 10 56 message_references_list_n_references) 10 57 fixed binary; /* for exclusive use of the mail system */ 10 58 10 59 /* Definition of a message envelope: describes when, by whom, and by what route the message was mailed */ 10 60 10 61 dcl 1 message_envelope aligned based (message_envelope_ptr), 10 62 2 date_time_mailed fixed binary (71), /* date/time this message was entered into the mail system */ 10 63 2 sender pointer, /* -> address of entity that mailed the message */ 10 64 2 trace pointer, /* -> message_trace describing how it got here */ 10 65 2 date_time_delivered fixed binary (71), /* date/time this message was delivered */ 10 66 2 delivered_by pointer, /* -> address of entity that delivered the message */ 10 67 2 acknowledge_to pointer; /* -> address of entity to receive ACK when message is read */ 10 68 10 69 dcl message_envelope_ptr pointer; 10 70 10 71 10 72 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the message envelope */ 10 73 10 74 dcl 1 message_envelope_parameter aligned based (message_envelope_parameter_ptr), 10 75 2 pad pointer, /* forces even word alignment */ 10 76 2 version character (8) unaligned, 10 77 2 envelope like message_envelope; 10 78 10 79 dcl MESSAGE_ENVELOPE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsenv02"); 10 80 10 81 dcl message_envelope_parameter_ptr pointer; 10 82 10 83 10 84 /* Definition of a message trace: describes the route and each relay operation by which a message was passed through the 10 85* networks to reach this recipient */ 10 86 10 87 dcl 1 message_trace aligned based (message_trace_ptr), 10 88 2 version character (8) unaligned, 10 89 2 reserved bit (144), /* ... exclusively for use by the mail system */ 10 90 2 implicit_route pointer, /* -> an address_route which defines the route it took */ 10 91 2 pad bit (36), 10 92 2 n_relays fixed binary, /* # of relay operations required to reach this site */ 10 93 2 relays (message_trace_n_relays refer (message_trace.n_relays)), 10 94 3 date_time_relayed fixed binary (71), /* ... when this relay operation took place */ 10 95 3 sending_host character (256) varying, /* ... the host which relayed the message */ 10 96 3 receiving_host character (256) varying, /* ... the host which received it */ 10 97 3 communications_media character (32) unaligned, /* ... medium over which relay took place (ARPA, Tymnet) */ 10 98 3 communications_protocol character (32) unaligned,/* ... low-level protocol used (TCP, X.25) */ 10 99 3 mail_protocol character (32) unaligned, /* ... mailer protocol used (SMTP, NBS) */ 10 100 3 relay_id bit (72), /* ... unique ID assigned by receiving system or ""b */ 10 101 3 relay_recipient pointer; /* ... -> address of recipient as given by sending system */ 10 102 10 103 dcl MESSAGE_TRACE_VERSION_2 character (8) static options (constant) initial ("mlstrc02"); 10 104 10 105 dcl message_trace_ptr pointer; 10 106 10 107 /* Definition of a message's redistributions list */ 10 108 10 109 dcl 1 message_redistributions_list aligned based (message.redistributions_list), 10 110 2 version character (8) unaligned, 10 111 2 reserved bit (144), /* ... exclusively for use by the mail system */ 10 112 2 pad bit (36), 10 113 2 n_redistributions fixed binary, /* # of redistributions */ 10 114 2 redistributions (message_n_redistributions refer (message_redistributions_list.n_redistributions)) 10 115 like message_redistribution; /* the redistributions: oldest first */ 10 116 10 117 dcl MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsrl002"); 10 118 10 119 10 120 /* Definition of a single redistribution (forwarding) of a message */ 10 121 10 122 dcl 1 message_redistribution aligned based (message_redistribution_ptr), 10 123 2 envelope like message_envelope, 10 124 2 header, 10 125 3 message_id bit (72), /* ID of this redistribution (same for all copies) */ 10 126 3 date_time_created fixed binary (71), /* date/time when this redistribution was made */ 10 127 3 from pointer, /* -> address list of authors of this redistribution */ 10 128 3 to pointer, /* -> address list of recipients of the redistribution */ 10 129 3 comment like message_text_field; /* optional comment associated with the redistribution */ 10 130 10 131 dcl message_redistribution_comment character (message_redistribution.comment.text_lth) unaligned 10 132 based (message_redistribution.comment.text_ptr); 10 133 10 134 dcl message_redistribution_ptr pointer; 10 135 10 136 10 137 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate the redistributions of a message */ 10 138 10 139 dcl 1 message_redistribution_parameter aligned based (message_redistribution_parameter_ptr), 10 140 2 pad pointer, /* forces even word alignment */ 10 141 2 version character (8) unaligned, 10 142 2 redistribution like message_redistribution; 10 143 10 144 dcl MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsdist2"); 10 145 10 146 dcl message_redistribution_parameter_ptr pointer; 10 147 10 148 /* Definition of the list of user-defined fields in a message */ 10 149 10 150 dcl 1 message_user_fields_list aligned based (message.user_fields_list), 10 151 2 version character (8) unaligned, 10 152 2 reserved bit (144), /* ... exclusively for use by the mail system */ 10 153 2 pad bit (36), 10 154 2 n_user_fields fixed binary, /* # of user-defined fields in the message */ 10 155 2 user_fields (message_n_user_fields refer (message_user_fields_list.n_user_fields)) 10 156 like message_user_field; /* the actual user-defined fields */ 10 157 10 158 dcl MESSAGE_USER_FIELDS_LIST_VERSION_2 character (8) static options (constant) initial ("mlsufl02"); 10 159 10 160 10 161 /* Definition of a user defined message header field */ 10 162 10 163 dcl 1 message_user_field aligned based (message_user_field_ptr), 10 164 2 header, 10 165 3 field_id bit (36) aligned, /* identifies the purpose of this field */ 10 166 3 field_type fixed binary, /* type of data contained in this field */ 10 167 2 field_type_variable bit (144); /* the actual data (see below) */ 10 168 10 169 dcl message_user_field_ptr pointer; 10 170 10 171 10 172 /* Defined types of user defined fields */ 10 173 10 174 dcl (MESSAGE_TEXT_USER_FIELD initial (1), /* content of the field is a text string */ 10 175 MESSAGE_ADDRESS_LIST_USER_FIELD initial (2), /* content of the field is an address list */ 10 176 MESSAGE_DATE_USER_FIELD initial (3), /* content of the field is a date/time */ 10 177 MESSAGE_INTEGER_USER_FIELD initial (4)) /* content of the filed is a fixed binary value */ 10 178 fixed binary static options (constant); 10 179 10 180 10 181 /* Structures used to access the data for the different types of user defined fields */ 10 182 10 183 dcl 1 message_text_user_field aligned based (message_user_field_ptr), 10 184 2 header like message_user_field.header, 10 185 2 text like message_text_field; /* the message text */ 10 186 10 187 dcl message_text_user_field_text character (message_text_user_field.text.text_lth) unaligned 10 188 based (message_text_user_field.text.text_ptr); 10 189 10 190 dcl 1 message_address_list_user_field aligned based (message_user_field_ptr), 10 191 2 header like message_user_field.header, 10 192 2 address_list_ptr pointer, /* -> the address list */ 10 193 2 pad bit (72); 10 194 10 195 dcl 1 message_date_user_field aligned based (message_user_field_ptr), 10 196 2 header like message_user_field.header, 10 197 2 date_time fixed binary (71), /* the clock reading */ 10 198 2 pad bit (72); 10 199 10 200 dcl 1 message_integer_user_field aligned based (message_user_field_ptr), 10 201 2 header like message_user_field.header, 10 202 2 value fixed binary (35), /* the integer value */ 10 203 2 pad bit (108); 10 204 10 205 10 206 /* Structure used in calls to mail_system_ entrypoints which manipulate the user-defined fields of a message */ 10 207 10 208 dcl 1 message_user_field_parameter aligned based (message_user_field_parameter_ptr), 10 209 2 pad pointer, /* forces even word alignment */ 10 210 2 version character (8) unaligned, 10 211 2 user_field like message_user_field; 10 212 10 213 dcl MESSAGE_USER_FIELD_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsudf02"); 10 214 10 215 dcl message_user_field_parameter_ptr pointer; 10 216 10 217 /* Definition of a list of message references used as the value of message header fields (eg: In-Reply-To) */ 10 218 10 219 dcl 1 message_references_list aligned based (message_references_list_ptr), 10 220 2 version character (8) unaligned, 10 221 2 reserved bit (144), /* ... exclusively for use by the mail system */ 10 222 2 pad bit (36), 10 223 2 n_references fixed binary, /* # of references in this list */ 10 224 2 references (message_references_list_n_references refer (message_references_list.n_references)) 10 225 like message_reference; /* the references themselves */ 10 226 10 227 dcl MESSAGE_REFERENCES_LIST_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 10 228 10 229 dcl message_references_list_ptr pointer; 10 230 10 231 10 232 /* Definition of a reference to another message */ 10 233 10 234 dcl 1 message_reference aligned based (message_reference_ptr), 10 235 2 message_id bit (72), /* ID of the other message */ 10 236 2 date_time_created fixed binary (71), /* date/time the other message was created */ 10 237 2 from pointer, /* -> address list of authors of the other message */ 10 238 2 subject like message_text_field; /* subject of the other message */ 10 239 10 240 dcl message_reference_subject character (message_reference.subject.text_lth) unaligned 10 241 based (message_reference.subject.text_ptr); 10 242 10 243 dcl message_reference_ptr pointer; 10 244 10 245 10 246 /* Structure used in calls to mail_system_daemon_ entrypoints which manipulate message references */ 10 247 10 248 dcl 1 message_reference_parameter aligned based (message_reference_parameter_ptr), 10 249 2 pad pointer, /* forces even word alignment */ 10 250 2 version character (8) unaligned, 10 251 2 reference like message_reference; 10 252 10 253 dcl MESSAGE_REFERENCE_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsref02"); 10 254 10 255 dcl message_reference_parameter_ptr pointer; 10 256 10 257 10 258 /* Definition of a text field in a message (Subject, Comment, or a user defined field) */ 10 259 10 260 dcl 1 message_text_field aligned based (message_text_field_ptr), 10 261 2 text_ptr pointer, /* -> the actual text */ 10 262 2 text_lth fixed binary (21), /* length of said text */ 10 263 2 flags, 10 264 3 multiline_text bit (1) unaligned, /* ON => the text of this field may span multiple lines; 10 265* OFF => the text will always be a single line */ 10 266 3 reserved bit (35) unaligned; /* for exclusive use of the mail system */ 10 267 10 268 dcl message_text_field_text character (message_text_field.text_lth) unaligned based (message_text_field.text_ptr); 10 269 10 270 dcl message_text_field_ptr pointer; 10 271 10 272 /* Definition of a section of the body of a message */ 10 273 10 274 dcl 1 message_body_section aligned based (message_body_section_ptr), 10 275 2 header, 10 276 3 section_type fixed binary, /* type of "text" stored in this section */ 10 277 3 section_n_lines fixed binary (21), /* # of lines in this section or -1 if indeterminate */ 10 278 2 section_type_variable bit (144); /* the actual data (see below) */ 10 279 10 280 dcl message_body_section_ptr pointer; 10 281 10 282 10 283 /* Defined types of message body sections */ 10 284 10 285 dcl (MESSAGE_PREFORMATTED_BODY_SECTION initial (1), /* text formatted by the authors/sender */ 10 286 MESSAGE_BIT_STRING_BODY_SECTION initial (2)) /* arbitrary bit string */ 10 287 fixed binary static options (constant); 10 288 10 289 10 290 /* Structures used to access the data for the different types of message body sections */ 10 291 10 292 dcl 1 message_preformatted_body_section aligned based (message_body_section_ptr), 10 293 2 header like message_body_section.header, 10 294 2 text_ptr pointer, /* -> the text */ 10 295 2 text_lth fixed binary (21), /* length of said text in characters */ 10 296 2 reserved bit (36); /* for exclusive use of the mail system */ 10 297 10 298 dcl message_preformatted_body_section_text character (message_preformatted_body_section.text_lth) unaligned 10 299 based (message_preformatted_body_section.text_ptr); 10 300 10 301 dcl 1 message_bit_string_body_section aligned based (message_body_section_ptr), 10 302 2 header like message_body_section.header, 10 303 2 bit_string_ptr pointer, /* -> the bit string */ 10 304 2 bit_string_lth fixed binary (24), /* length of said bit string in bits (obviously) */ 10 305 2 reserved bit (36); /* for exclusive use of the mail system */ 10 306 10 307 dcl message_bit_string_body_section_bit_string bit (message_bit_string_body_section.bit_string_lth) unaligned 10 308 based (message_bit_string_body_section.bit_string_ptr); 10 309 10 310 10 311 /* Structure used in calls to mail_system_ entrypoints which manipulate the sections of a message's body */ 10 312 10 313 dcl 1 message_body_section_parameter aligned based (message_body_section_parameter_ptr), 10 314 2 pad pointer, /* forces even word alignment */ 10 315 2 version character (8) unaligned, 10 316 2 section like message_body_section; 10 317 10 318 dcl MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 character (8) static options (constant) initial ("mlsmbs02"); 10 319 10 320 dcl message_body_section_parameter_ptr pointer; 10 321 10 322 /* END INCLUDE FILE ... mlsys_message.incl.pl1 */ 208 209 11 1 /* Created 06/17/81 by Suzanne Krupp */ 11 2 11 3 dcl n_messages fixed bin; 11 4 dcl MSG_STRUCT_VERSION_1 fixed bin int static options(constant) init(1); 11 5 11 6 dcl curr_msgsp ptr; 11 7 11 8 dcl 1 curr_msgs based(curr_msgsp), 11 9 2 version fixed bin, 11 10 2 count fixed bin, 11 11 2 numbers (n_messages refer(curr_msgs.count)) fixed bin; 11 12 11 13 dcl nonexist_msgsp ptr; 11 14 11 15 dcl 1 nonexist_msgs based(nonexist_msgsp), 11 16 2 version fixed bin, 11 17 2 count fixed bin, 11 18 2 numbers (n_messages refer(nonexist_msgs.count)) fixed bin; 11 19 11 20 dcl msg_structp ptr; 11 21 11 22 dcl 1 msg_struct based(msg_structp), 11 23 2 version fixed bin, 11 24 2 count fixed bin, 11 25 2 numbers(n_messages refer(msg_struct.count)) fixed bin; 211 12 1 /* BEGIN INCLUDE FILE xmail_responses.incl.pl1 */ 12 2 12 3 /****^ HISTORY COMMENTS: 12 4* 1) change(86-02-07,Blair), approve(86-03-06,MCR7358), 12 5* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 12 6* 85-03-05 JG Backs: Modified to add a response of date. 12 7* 85-03-11 JG Backs: Modified to add short forms of keywords (a,l,p,f). 12 8* 85-03-14 JG Backs: Modified to add ASK, SET, and S. 12 9* 2) change(86-02-07,Blair), approve(86-03-06,MCR7358), 12 10* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 12 11* Modify to add SEEN and UNSEEN. 12 12* END HISTORY COMMENTS */ 12 13 12 14 /* Created 06/17/81 by Suzanne Krupp */ 12 15 12 16 dcl (QUESTION char(1) init("?"), 12 17 LIST char(2) init("??"), 12 18 A char(1) init("a"), 12 19 ALL char(3) init("all"), 12 20 ASK char(3) init("ask"), 12 21 DATE char(4) init("date"), 12 22 F char(1) init("f"), 12 23 FIRST char(5) init("first"), 12 24 L char(1) init("l"), 12 25 LAST char(4) init("last"), 12 26 N char (1) init ("n"), 12 27 NO char(2) init("no"), 12 28 NEXT char(4) init("next"), 12 29 NEW char(3) init("new"), 12 30 P char(1) init("p"), 12 31 PREV char(4) init("prev"), 12 32 S char(1) init("s"), 12 33 SEEN char (4) init("seen"), 12 34 SET char(3) init("set"), 12 35 SEARCH char(6) init("search"), 12 36 UNSEEN char (6) init("unseen"), 12 37 Y char (1) init ("y"), 12 38 YES char(3) init("yes")) 12 39 int static options(constant); 12 40 12 41 /* END INCLUDE FILE ... xmail_responses.incl.pl1 */ 212 213 214 /* BEGIN */ 215 216 on condition (xmail_redisplay_menu) begin; 217 if menup ^= null 218 then call menu_$display (xmail_windows.menu.iocb, menup, code); 219 if code ^= 0 then call xmail_error_$no_code (code, NAME, "l", "Unable to display menu. This is an internal programming error."); 220 end; 221 222 menup = null (); 223 last_opt = 0; 224 default_file = ""; 225 mailbox_ptr = null; 226 curr_msgsp = null; 227 file_info = " "; 228 position = " "; 229 file = ""; 230 star_names_ptr = null (); 231 star_entry_ptr = null (); 232 233 on condition (cleanup) begin; 234 call CLEAN_UP (); 235 end; 236 237 if menup = null then do; 238 call xmail_create_menu_ (TITLE, OPTION_NAMES, N_COLUMNS, menup, code); 239 if code ^= 0 then call xmail_error_$no_code (code, NAME, "q", "Unable to get menu. This is an internal programming error."); 240 end; 241 242 on condition (program_interrupt) go to START; 243 on condition (quit) 244 begin; 245 dcl xmail_window_manager_$reconnect entry (); 246 call xmail_window_manager_$reconnect (); 247 go to START; 248 end; 249 250 START: display_needed = "1"b; 251 252 do while ("1"b); 253 254 if star_names_ptr ^= null () then free star_names;/* order is important */ 255 if star_entry_ptr ^= null () then free star_entries; 256 star_entry_ptr, star_names_ptr = null; 257 call hcs_$star_ ((xmail_data.mail_dir), "**" || FULL_MFILE_SUFFIX, star_ALL_ENTRIES, get_system_free_area_ (), star_entry_count, star_entry_ptr, star_names_ptr, (0)); 258 259 if mailbox_ptr = null () 260 then do; 261 file_indicator = " "; 262 file_info = " "; 263 go to skipit; 264 end; 265 266 call ioa_$rsnnl ("Total messages: ^d", file_info, (0), mailbox.n_messages - mailbox.n_deleted_messages); 267 if (mailbox.n_messages - mailbox.n_deleted_messages) > 0 then 268 file_is_empty = "0"b; 269 else file_is_empty = "1"b; 270 if curr_msgsp ^= null 271 then if curr_msgs.count > 1 then multiple_msgs = "1"b; 272 else multiple_msgs = "0"b; 273 file_indicator = "File: " || file; 274 skipit: position = " "; 275 call xmail_get_choice_ (menup, 276 (file_indicator), 277 (file_info), 278 (position), 279 xmail_data.normal_usage, 280 display_needed, 281 "", 282 choice, 283 code); 284 display_needed = "0"b; 285 if code = 0 then call PERFORM_OPTION (choice, display_needed); 286 else if code = xmail_err_$help_requested then call EXPLAIN_OPTION (choice); 287 else if code = xmail_err_$exit_now 288 then go to EXIT; 289 else do; 290 call window_$bell (iox_$user_output, code); 291 if code ^= 0 then call xmail_error_$no_print (code, NAME, "l", "Cannot ring terminal bell. This is an internal programming error."); 292 end; 293 end; 294 295 EXIT: call CLEAN_UP (); 296 return; 297 298 299 /* INTERNAL PROCEDURES */ 300 301 PERFORM_OPTION: proc (opt, redisplay); 302 303 /* Auto */ 304 305 dcl discarded bit (1) aligned; 306 dcl entry_is_link bit (1); 307 dcl i fixed bin; 308 dcl idx fixed bin; 309 dcl mbx_name char (32); 310 dcl msg_pointer ptr; 311 dcl opt fixed bin; 312 dcl redisplay bit (1) aligned; 313 314 /* Entries */ 315 316 dcl mlsys_utils_$create_mailbox entry (char (*), char (*), fixed bin (35)); 317 dcl xmail_delete_msgs_ entry (ptr, ptr, char (*), char (*)); 318 dcl xmail_discard_file_ entry (ptr, ptr, char (*), bit (1) aligned); 319 dcl xmail_discard_file_$link entry (ptr, ptr, char (*), bit (1) aligned); 320 dcl xmail_dprint_msgs_ entry (ptr, ptr); 321 dcl xmail_file_msgs_$current_msgs entry (ptr, ptr, char (32) var, bit (1) aligned); 322 dcl xmail_list_msgs_ entry (ptr, ptr, ptr); 323 dcl xmail_undelete_msgs_ entry (ptr, ptr, char (*), char (*)); 324 325 326 327 /* BEGIN PERFORM OPTION */ 328 329 call window_$clear_window (iox_$user_output, code); 330 331 if code ^= 0 then call xmail_error_$no_print (code, NAME, "l", "Cannot clear user_io window. This is an internal programming error."); 332 333 334 entry_is_link = "0"b; 335 336 if opt = last_opt then last_file_used = ""; 337 else last_file_used = default_file; 338 go to OPT (opt); 339 340 OPT (1): /* List mail files option */ 341 342 if star_entry_count = 0 343 then do; 344 call ioa_ ("^a", NO_FILE_MSG); 345 return; 346 end; 347 348 call ioa_ ("You have ^d mail files:", star_entry_count); 349 350 begin; 351 dcl mail_file_list char (star_entry_count * 27); 352 dcl char_count fixed bin; 353 dcl no_columns fixed bin; 354 355 mail_file_list = ""; 356 char_count = 0; 357 /* How many columns will fit across our line width? */ 358 no_columns = trunc(divide(xmail_windows.bottom.extent.width,26,2)); 359 360 do i = 1 to star_entry_count; /* strip off suffix */ 361 star_names (star_entries.nindex (i)) = rtrim (before (star_names (star_entries.nindex (i)), FULL_MFILE_SUFFIX)); 362 end; 363 364 do i = 1 by no_columns to star_entry_count; /* put a newline char in front of each set of 3 files */ 365 366 star_names (star_entries.nindex (i)) = NL || substr (star_names (star_entries.nindex (i)), 1, 31); 367 end; 368 369 do i = 1 to star_entry_count; 370 371 mail_file_list = substr (mail_file_list, 1, char_count) || (star_names (star_entries.nindex (i))); 372 373 char_count = char_count + 27; 374 end; /* end of do loop */ 375 call ioa_ ("^a", mail_file_list); 376 end; /* end of begin block */ 377 return; 378 379 380 381 OPT (2): /* Create mail file option */ 382 call xmail_select_file_$caller_msg ("mail file", MFILE_SUFFIX, "", DONT_ALLOW_OLD, ALLOW_NEW, new_dir, new_file, "Enter name of mail file you wish to create", unused_bit, unused_bit2, code); 383 if code ^= 0 384 then do; 385 call ioa_ ("Unable to create mail file. This is an internal programming error."); 386 return; 387 end; 388 mbx_name = rtrim (new_file) || FULL_MFILE_SUFFIX; 389 call mlsys_utils_$create_mailbox (new_dir, mbx_name, code); 390 if code = 0 391 then call ioa_ ("Mail file ""^a"" created.", new_file); 392 else call ioa_ ("Unable to create mail file ""^a"".^/This is an internal programming error.", new_file); 393 return; 394 395 OPT (3): /* Archive file option */ 396 397 if star_entry_count = 0 398 then do; 399 call ioa_ (NO_FILE_MSG); 400 return; 401 end; 402 if default_file = "xmail_archive" | file_is_empty then call SELECT_NEW_FILE ("archive", ""); 403 else call SELECT_NEW_FILE ("archive", (last_file_used)); 404 last_opt = opt; 405 if file = "xmail_archive" 406 then do; 407 call ioa_ ("Sorry, but you cannot archive your archive file."); 408 return; 409 end; 410 411 if file_is_empty 412 then do; 413 call ioa_ ("Mail file ""^a"" is empty.", file); 414 return; 415 end; 416 call xmail_file_msgs_$current_msgs (mailbox_ptr, curr_msgsp, "xmail_archive", NO_SELECTION); 417 call xmail_delete_msgs_ (mailbox_ptr, curr_msgsp, pos_line, (file)); 418 file_is_empty = "1"b; 419 return; 420 421 OPT (4): /* Print all messages option */ 422 423 if star_entry_count = 0 424 then do; 425 call ioa_ (NO_FILE_MSG); 426 return; 427 end; 428 429 if file_is_empty then last_file_used = ""; 430 call SELECT_NEW_FILE ("print", (last_file_used)); 431 last_opt = opt; 432 if file_is_empty 433 then do; 434 call ioa_ ("Mail file ""^a"" is empty.", file); 435 return; 436 end; 437 call xmail_dprint_msgs_ (mailbox_ptr, curr_msgsp); 438 return; 439 440 441 OPT (5): /* Empty File Option */ 442 443 if star_entry_count = 0 444 then do; 445 call ioa_ (NO_FILE_MSG); 446 return; 447 end; 448 449 if file_is_empty then last_file_used = ""; 450 call SELECT_NEW_FILE ("empty", (last_file_used)); 451 last_opt = opt; 452 if file_is_empty 453 then do; 454 call ioa_ ("Mail file ""^a"" is already empty.", file); 455 return; 456 end; 457 call xmail_select_msgs_$all (mailbox_ptr, curr_msgsp, pos_line); 458 call xmail_delete_msgs_ (mailbox_ptr, curr_msgsp, pos_line, (file)); 459 file_is_empty = "1"b; 460 return; 461 462 OPT (6): /* Rename Option */ 463 464 if default_file = "outgoing" then last_file_used = ""; 465 466 call xmail_select_file_$caller_msg ("mail file", "sv.mbx", (last_file_used), ALLOW_OLD, DONT_ALLOW_NEW, new_dir, new_file, "Enter name of file you wish to rename", unused_bit, unused_bit2, code); 467 468 if new_file = "outgoing" 469 then do; 470 call ioa_ ("Sorry, but the ""^a"" mail file is required and cannot be renamed.", new_file); 471 return; 472 end; 473 474 call done_with_file (); /* close prev mailbox */ 475 /* but do not open new one */ 476 dir = new_dir; 477 file = new_file; 478 default_file = file; 479 480 call ioa_$nnl ("Renaming ""^a"": ", file); 481 call xmail_select_file_$caller_msg ("mail file", "sv.mbx", "", DONT_ALLOW_OLD, ALLOW_NEW, new_dir, new_file, "New name", unused_bit, unused_bit2, code); 482 if code ^= 0 483 then do; 484 call ioa_ ("Selection of new mail file name not successful."); 485 return; 486 end; 487 488 call mailbox_$chname_file (rtrim (new_dir), file || "." || MFILE_SUFFIX, file || "." || MFILE_SUFFIX, rtrim (new_file) || "." || MFILE_SUFFIX, code); 489 if code ^= 0 then call xmail_error_$code_last (code, NAME, "q", "Renaming of mail file failed."); 490 call ioa_ ("Mail file name changed from ""^a"" to ""^a"".", file, new_file); 491 file = new_file; 492 dir = new_dir; 493 default_file = file; 494 last_opt = opt; 495 return; 496 497 OPT (7): /* Display Summary of Messages Option */ 498 499 if star_entry_count = 0 500 then do; 501 call ioa_ (NO_FILE_MSG); 502 return; 503 end; 504 505 if file_is_empty then last_file_used = ""; 506 call SELECT_NEW_FILE ("list", (last_file_used)); 507 last_opt = opt; 508 if file_is_empty 509 then do; 510 call ioa_ ("Mail file ""^a"" is empty.", file); 511 return; 512 end; 513 call xmail_list_msgs_ (mailbox_ptr, curr_msgsp, iox_$user_output); 514 return; 515 516 OPT (8): /* Discard mail file option */ 517 518 if star_entry_count = 0 519 then do; 520 call ioa_ (NO_FILE_MSG); 521 return; 522 end; 523 if default_file = "outgoing" then call SELECT_NEW_FILE ("discard", ""); 524 else call SELECT_NEW_FILE ("discard", (last_file_used)); 525 if file = "outgoing" 526 then do; 527 call ioa_ ("Sorry, but the ""^a"" mail file is required and cannot be discarded.", file); 528 return; 529 end; 530 last_opt = opt; 531 msg_pointer = curr_msgsp; 532 if file_is_empty then msg_pointer = null (); 533 /* else call xmail_select_msgs_$all (mailbox_ptr, msg_pointer, pos_line); this is redundant because selection is done above */ 534 do idx = 1 to star_entry_count; 535 do i = star_entries (idx).nindex to star_entries (idx).nindex + star_entries (idx).nnames - 1; 536 if rtrim (file) = before (star_names (i), FULL_MFILE_SUFFIX) then go to success; 537 end; 538 end; 539 call xmail_error_$no_code (code, NAME, "q", "Sorry, but an internal programming error has occurred.^/Mail file ""^a"" could not be discarded.", file); 540 541 success: 542 if star_entries (idx).type = 0 543 then call xmail_discard_file_$link (mailbox_ptr, msg_pointer, (file), discarded); 544 else call xmail_discard_file_ (mailbox_ptr, msg_pointer, (file), discarded); 545 /* curr_msgsp = null; */ 546 547 if discarded = "0"b then return; 548 mailbox_ptr = null (); 549 file_info = ""; 550 default_file = ""; 551 file = ""; 552 if (star_entry_count - 1) < 1 553 then call ioa_ ("You have no more mail files."); 554 return; 555 556 OPT (9): /* Retrieve option */ 557 558 if mailbox_ptr = null () 559 then do; 560 call ioa_ ("Sorry, but no messages can be retrieved for one 561 or more reasons: 562 1. You have not discarded any messages 563 2. You have changed mail file since you last discarded messages 564 3. You have discarded the mail file"); 565 return; 566 end; 567 call xmail_undelete_msgs_ (mailbox_ptr, curr_msgsp, pos_line, "all"); 568 return; 569 570 571 end PERFORM_OPTION; 572 573 574 EXPLAIN_OPTION: proc (opt); 575 576 dcl opt fixed bin; 577 578 dcl xmail_display_help_ entry (char (*), char (*), fixed bin (35)); 579 580 call window_$clear_window (iox_$user_output, code); 581 if code ^= 0 then call xmail_error_$no_print (code, NAME, "l", "Cannot clear user_io window. This is an internal programming error."); 582 call xmail_display_help_ (NAME || ".gi.info", 583 translate (OPTION_NAMES (opt), "_", " "), code); 584 if code ^= 0 then call xmail_error_$no_print (code, NAME, "l", "Unable to display help. This is an internal programming error."); 585 586 end EXPLAIN_OPTION; 587 588 done_with_file: proc (); 589 590 if mailbox_ptr ^= null 591 then do; 592 auto_close_options.version = CLOSE_OPTIONS_VERSION_2; 593 auto_close_options.flags.perform_deletions = "1"b; 594 auto_close_options.flags.report_deletion_errors = "0"b; 595 auto_close_options.flags.mbz = "0"b; 596 call mail_system_$close_mailbox (mailbox_ptr, addr (auto_close_options), code); 597 if code ^= 0 then call xmail_error_$no_code (code, NAME, "l", "Unable to close user mailbox. This is an internal programming error."); 598 end; 599 600 if curr_msgsp ^= null then do; 601 free curr_msgs; 602 curr_msgsp = null; 603 end; 604 return; 605 606 end done_with_file; 607 608 SELECT_NEW_FILE: proc (P_text, P_default_file); 609 610 dcl P_text char (*) parameter; 611 dcl P_default_file char (*) parameter; 612 dcl user_message char (78) varying; 613 614 dcl xmail_sw_$update_file entry (char (*)); 615 dcl xmail_sw_$update_file_info entry (char (*)); 616 dcl xmail_sw_$redisplay entry (); 617 618 user_message = "Enter name of file you wish to " || P_text || " "; 619 620 call xmail_select_file_$caller_msg ("file", "sv.mbx", (P_default_file), ALLOW_OLD, DONT_ALLOW_NEW, new_dir, new_file, (user_message), unused_bit, unused_bit2, code); 621 if code = 0 then do; 622 /* msg to user */ 623 call ioa_ ("The ""^a"" file has been selected...", new_file); 624 call done_with_file (); 625 dir = new_dir; 626 file = new_file; 627 628 /* Determine if we want all msgs or just ordinary ones */ 629 call xmail_value_$get_with_default (MSGS_AS_MAIL, (NO), response, code); 630 if code ^= 0 then call xmail_error_$code_first (code, NAME, "q", 631 "^/Unable to get a value for ""^a"" in the xmail value segment.", MSGS_AS_MAIL); 632 633 treat_msgs_as_mail = "0"b; 634 if response = YES | choice = 3 | choice = 5 | choice = 8 635 then do; 636 treat_msgs_as_mail = "1"b; 637 xmail_data.msgs_as_mail = "1"b; 638 end; 639 else if response = ASK 640 then do; 641 call xmail_get_str_$yes_no ("Do you wish to treat interactive msgs as mail? ", yes_sw); 642 if yes_sw then do; 643 treat_msgs_as_mail = "1"b; 644 xmail_data.msgs_as_mail = "1"b; 645 end; 646 end; 647 else xmail_data.msgs_as_mail = "0"b; 648 649 /* Open the mailbox and set the first current message to one */ 650 651 auto_open_options.version = OPEN_OPTIONS_VERSION_2; 652 if treat_msgs_as_mail then 653 auto_open_options.message_selection_mode = ALL_MESSAGES; 654 else auto_open_options.message_selection_mode = ORDINARY_MESSAGES; 655 auto_open_options.sender_selection_mode = ACCESSIBLE_MESSAGES; 656 auto_open_options.message_reading_level = READ_KEYS; 657 658 call mail_system_$open_mailbox (dir, file || ".sv", addr (auto_open_options), MAILBOX_VERSION_2, mailbox_ptr, code); 659 if code = error_table_$moderr then call xmail_error_$no_code (code, NAME, "i", "You do not have access to the ""^a"" mail file.", new_file); 660 if code ^= 0 then call xmail_error_$no_code (code, NAME, "q", "Unable to open mail file. This is an internal programming error."); 661 662 /* clear msg */ 663 call window_$clear_window (iox_$user_output, code); 664 if code ^= 0 then call xmail_error_$no_print (code, NAME, "l", "Cannot clear user_io window. This is an internal programming error."); 665 666 if mailbox.n_messages = 0 667 then do; 668 call done_with_file; 669 file_is_empty = "1"b; 670 end; 671 else do; 672 call xmail_select_msgs_$all (mailbox_ptr, curr_msgsp, pos_line); 673 674 call xmail_sw_$update_file ("File: " || (file)); 675 call xmail_sw_$update_file_info (rtrim ("Total messages: " || ltrim (char (mailbox.n_messages - mailbox.n_deleted_messages)))); 676 call xmail_sw_$redisplay (); 677 if (mailbox.n_messages - mailbox.n_deleted_messages) > 0 678 then file_is_empty = "0"b; 679 else file_is_empty = "1"b; 680 default_file = file; 681 end; 682 end; 683 684 SELECT_NEW_FILE_EXIT: 685 return; 686 687 end SELECT_NEW_FILE; 688 689 CLEAN_UP: proc (); 690 call done_with_file; 691 if star_names_ptr ^= null () then free star_names;/* order is important */ 692 if star_entry_ptr ^= null () then free star_entries; 693 return; 694 end CLEAN_UP; 695 696 end xmail_Mail_File_Maint_; 697 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0745.0 xmail_Mail_File_Maint_.pl1 >spec>install>MR12.2-1098>xmail_Mail_File_Maint_.pl1 192 1 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.incl.pl1 194 2 12/02/84 1132.9 xmail_windows.incl.pl1 >ldd>include>xmail_windows.incl.pl1 2-14 3 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 196 4 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 198 5 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 200 6 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 202 7 10/27/83 2104.2 mlsys_open_options.incl.pl1 >ldd>include>mlsys_open_options.incl.pl1 204 8 10/27/83 2104.2 mlsys_close_options.incl.pl1 >ldd>include>mlsys_close_options.incl.pl1 206 9 10/27/83 2104.2 mlsys_mailbox.incl.pl1 >ldd>include>mlsys_mailbox.incl.pl1 208 10 05/22/86 1225.8 mlsys_message.incl.pl1 >ldd>include>mlsys_message.incl.pl1 210 11 06/08/82 1329.4 xmail_curr_msg_info.incl.pl1 >ldd>include>xmail_curr_msg_info.incl.pl1 212 12 05/28/86 1117.7 xmail_responses.incl.pl1 >ldd>include>xmail_responses.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. ACCESSIBLE_MESSAGES constant fixed bin(17,0) initial dcl 7-30 ref 655 ALLOW_NEW 000234 constant bit(1) initial dcl 107 set ref 381* 481* ALLOW_OLD 000234 constant bit(1) initial dcl 108 set ref 466* 620* ALL_MESSAGES constant fixed bin(17,0) initial dcl 7-17 ref 652 ASK 000012 constant char(3) initial packed unaligned dcl 12-16 ref 639 CLOSE_OPTIONS_VERSION_2 000016 constant char(8) initial packed unaligned dcl 8-13 ref 592 DONT_ALLOW_NEW 000270 constant bit(1) initial dcl 109 set ref 466* 620* DONT_ALLOW_OLD 000270 constant bit(1) initial dcl 110 set ref 381* 481* FULL_MFILE_SUFFIX 000052 constant char(7) initial packed unaligned dcl 111 ref 257 361 388 536 MAILBOX_VERSION_2 000014 constant char(8) initial packed unaligned dcl 9-28 set ref 658* MFILE_SUFFIX 000050 constant char(6) initial packed unaligned dcl 112 set ref 381* 488 488 488 MSGS_AS_MAIL 000043 constant char(15) initial packed unaligned dcl 113 set ref 629* 630* NAME 000035 constant char(22) initial packed unaligned dcl 114 set ref 219* 239* 291* 331* 489* 539* 581* 582 584* 597* 630* 659* 660* 664* NL 006756 constant char(1) initial packed unaligned dcl 115 ref 366 NO constant char(2) initial packed unaligned dcl 12-16 ref 629 NO_FILE_MSG 000027 constant char(23) initial packed unaligned dcl 117 set ref 344* 399* 425* 445* 501* 520* NO_SELECTION 000270 constant bit(1) initial dcl 118 set ref 416* N_COLUMNS 000146 constant fixed bin(17,0) initial dcl 119 set ref 238* OPEN_OPTIONS_VERSION_2 000020 constant char(8) initial packed unaligned dcl 7-12 ref 651 OPTION_NAMES 000054 constant varying char(20) initial array dcl 95 set ref 238* 582 582 ORDINARY_MESSAGES constant fixed bin(17,0) initial dcl 7-23 ref 654 P_default_file parameter char packed unaligned dcl 611 ref 608 620 P_text parameter char packed unaligned dcl 610 ref 608 618 READ_KEYS constant fixed bin(17,0) initial dcl 7-38 ref 656 TITLE 000022 constant char(19) initial packed unaligned dcl 120 set ref 238* YES 000011 constant char(3) initial packed unaligned dcl 12-16 ref 634 addr builtin function dcl 150 ref 596 596 658 658 auto_close_options 000621 automatic structure level 1 packed packed unaligned dcl 146 set ref 596 596 auto_open_options 000614 automatic structure level 1 unaligned dcl 145 set ref 658 658 before builtin function dcl 150 ref 361 536 bottom 32 000066 external static structure level 2 dcl 2-5 char builtin function dcl 150 ref 675 675 char_count 000100 automatic fixed bin(17,0) dcl 352 set ref 356* 371 373* 373 choice 000100 automatic fixed bin(17,0) dcl 124 set ref 275* 285* 286* 634 634 634 cleanup 000624 stack reference condition dcl 154 ref 233 close_options based structure level 1 dcl 8-6 code 000101 automatic fixed bin(35,0) dcl 125 set ref 217* 219 219* 238* 239 239* 275* 285 286 287 290* 291 291* 329* 331 331* 381* 383 389* 390 466* 481* 482 488* 489 489* 539* 580* 581 581* 582* 584 584* 596* 597 597* 620* 621 629* 630 630* 658* 659 659* 660 660* 663* 664 664* count 1 based fixed bin(17,0) level 2 dcl 11-8 ref 270 601 curr_msgs based structure level 1 unaligned dcl 11-8 ref 601 curr_msgsp 000664 automatic pointer dcl 11-6 set ref 226* 270 270 416* 417* 437* 457* 458* 513* 531 567* 600 601 602* 672* default_file 000102 automatic varying char(24) dcl 126 set ref 224* 337 402 462 478* 493* 523 550* 680* dir 000111 automatic char(168) packed unaligned dcl 127 set ref 476* 492* 625* 658* discarded 000702 automatic bit(1) dcl 305 set ref 541* 544* 547 display_needed 000163 automatic bit(1) dcl 128 set ref 250* 275* 284* 285* divide builtin function dcl 150 ref 358 entry_is_link 000703 automatic bit(1) packed unaligned dcl 306 set ref 334* error_table_$moderr 000056 external static fixed bin(35,0) dcl 181 ref 659 extent 37 000066 external static structure level 4 dcl 2-5 file 000164 automatic varying char(32) dcl 129 set ref 229* 273 405 413* 417 434* 454* 458 477* 478 480* 488 488 490* 491* 493 510* 525 527* 536 539* 541 544 551* 626* 658 674 680 file_indicator 000175 automatic varying char(32) dcl 130 set ref 261* 273* 275 file_info 000206 automatic varying char(256) dcl 131 set ref 227* 262* 266* 275 549* file_is_empty 000307 automatic bit(1) packed unaligned dcl 132 set ref 267* 269* 402 411 418* 429 432 449 452 459* 505 508 532 669* 677* 679* flags 2 000621 automatic structure level 2 in structure "auto_close_options" packed packed unaligned dcl 146 in procedure "xmail_Mail_File_Maint_" flags 213 based structure level 2 in structure "xmail_data" dcl 5-54 in procedure "xmail_Mail_File_Maint_" get_system_free_area_ 000012 constant entry external dcl 158 ref 257 257 hcs_$star_ 000014 constant entry external dcl 159 ref 257 header 4 based structure level 3 in structure "message_user_field_parameter" dcl 10-208 in procedure "xmail_Mail_File_Maint_" header based structure level 2 in structure "message_body_section" dcl 10-274 in procedure "xmail_Mail_File_Maint_" header 64 based structure array level 4 in structure "message" dcl 10-15 in procedure "xmail_Mail_File_Maint_" header 4 based structure level 3 in structure "message_body_section_parameter" dcl 10-313 in procedure "xmail_Mail_File_Maint_" header based structure level 2 in structure "message_user_field" dcl 10-163 in procedure "xmail_Mail_File_Maint_" header 10 based structure array level 3 in structure "message_user_fields_list" dcl 10-150 in procedure "xmail_Mail_File_Maint_" i 000704 automatic fixed bin(17,0) dcl 307 set ref 360* 361 361* 364* 366 366* 369* 371* 535* 536* idx 000705 automatic fixed bin(17,0) dcl 308 set ref 534* 535 535 535* 541 ioa_ 000016 constant entry external dcl 160 ref 344 348 375 385 390 392 399 407 413 425 434 445 454 470 484 490 501 510 520 527 552 560 623 ioa_$nnl 000020 constant entry external dcl 161 ref 480 ioa_$rsnnl 000022 constant entry external dcl 162 ref 266 iocb 22 000066 external static pointer level 3 dcl 2-5 set ref 217* iox_$user_output 000060 external static pointer dcl 182 set ref 290* 329* 513* 580* 663* last_file_used 000310 automatic varying char(24) dcl 133 set ref 336* 337* 403 429* 430 449* 450 462* 466 505* 506 524 last_opt 000317 automatic fixed bin(17,0) dcl 134 set ref 223* 336 404* 431* 451* 494* 507* 530* ltrim builtin function dcl 150 ref 675 675 mail_dir based varying char(168) level 2 dcl 5-54 ref 257 mail_file_list 000100 automatic char packed unaligned dcl 351 set ref 355* 371* 371 375* mail_system_$close_mailbox 000024 constant entry external dcl 163 ref 596 mail_system_$open_mailbox 000026 constant entry external dcl 164 ref 658 mailbox based structure level 1 dcl 9-6 mailbox_$chname_file 000030 constant entry external dcl 165 ref 488 mailbox_ptr 000662 automatic pointer dcl 9-30 set ref 225* 259 266 266 267 267 416* 417* 437* 457* 458* 513* 541* 544* 548* 556 567* 590 596* 658* 666 672* 675 675 675 675 677 677 mbx_name 000706 automatic char(32) packed unaligned dcl 309 set ref 388* 389* mbz 2(02) 000621 automatic bit(34) level 3 packed packed unaligned dcl 146 set ref 595* menu 22 000066 external static structure level 2 dcl 2-5 menu_$display 000070 constant entry external dcl 4-20 ref 217 menup 000010 internal static pointer initial dcl 188 set ref 217 217* 222* 237 238* 275* message_body_section based structure level 1 dcl 10-274 message_envelope based structure level 1 dcl 10-61 message_reading_level 4 000614 automatic fixed bin(17,0) level 2 dcl 145 set ref 656* message_redistribution based structure level 1 dcl 10-122 message_reference based structure level 1 dcl 10-234 message_selection_mode 2 000614 automatic fixed bin(17,0) level 2 dcl 145 set ref 652* 654* message_text_field based structure level 1 dcl 10-260 message_user_field based structure level 1 dcl 10-163 mlsys_utils_$create_mailbox 000102 constant entry external dcl 316 ref 389 msg_pointer 000716 automatic pointer dcl 310 set ref 531* 532* 541* 544* msgs_as_mail 213(09) based bit(1) level 3 packed packed unaligned dcl 5-54 set ref 637* 644* 647* multiple_msgs 000320 automatic bit(1) dcl 135 set ref 270* 272* n_deleted_messages 103 based fixed bin(17,0) level 2 dcl 9-6 ref 266 267 675 675 677 n_messages 100 based fixed bin(17,0) level 2 dcl 9-6 ref 266 267 666 675 675 677 new_dir 000321 automatic char(168) packed unaligned dcl 136 set ref 381* 389* 466* 476 481* 488 488 492 620* 625 new_file 000373 automatic varying char(32) dcl 137 set ref 381* 388 390* 392* 466* 468 470* 477 481* 488 490* 491 620* 623* 626 659* nindex 0(18) based fixed bin(18,0) array level 2 packed packed unsigned unaligned dcl 1-27 ref 361 361 366 366 371 535 535 nnames 0(02) based fixed bin(16,0) array level 2 packed packed unsigned unaligned dcl 1-27 ref 254 535 691 no_columns 000101 automatic fixed bin(17,0) dcl 353 set ref 358* 364 normal_usage 142 based char(80) level 2 packed packed unaligned dcl 5-54 set ref 275* null builtin function dcl 150 ref 217 222 225 226 230 231 237 254 255 256 259 270 532 548 556 590 600 602 691 692 open_options based structure level 1 dcl 7-6 opt parameter fixed bin(17,0) dcl 576 in procedure "EXPLAIN_OPTION" ref 574 582 582 opt parameter fixed bin(17,0) dcl 311 in procedure "PERFORM_OPTION" ref 301 336 338 404 431 451 494 507 530 perform_deletions 2 000621 automatic bit(1) level 3 packed packed unaligned dcl 146 set ref 593* pos_line 000404 automatic char(256) packed unaligned dcl 138 set ref 417* 457* 458* 567* 672* position 34 000066 external static structure level 3 in structure "xmail_windows" dcl 2-5 in procedure "xmail_Mail_File_Maint_" position 000504 automatic varying char(256) dcl 139 in procedure "xmail_Mail_File_Maint_" set ref 228* 274* 275 program_interrupt 000640 stack reference condition dcl 154 ref 242 quit 000632 stack reference condition dcl 154 ref 243 redisplay parameter bit(1) dcl 312 ref 301 report_deletion_errors 2(01) 000621 automatic bit(1) level 3 packed packed unaligned dcl 146 set ref 594* response 000606 automatic varying char(3) dcl 140 set ref 629* 634 639 rtrim builtin function dcl 150 ref 361 388 488 488 488 536 675 675 sender_selection_mode 3 000614 automatic fixed bin(17,0) level 2 dcl 145 set ref 655* star_ALL_ENTRIES 000146 constant fixed bin(2,0) initial dcl 1-111 set ref 257* star_entries based structure array level 1 dcl 1-27 ref 255 692 star_entry_count 000654 automatic fixed bin(17,0) dcl 1-14 set ref 254 255 257* 340 348* 351 360 364 369 395 421 441 497 516 534 552 691 692 star_entry_ptr 000656 automatic pointer dcl 1-15 set ref 231* 254 255 255 256* 257* 361 361 366 366 371 535 535 535 541 691 692 692 star_names based char(32) array packed unaligned dcl 1-37 set ref 254 361* 361 366* 366 371 536 691 star_names_ptr 000660 automatic pointer dcl 1-19 set ref 230* 254 254 256* 257* 361 361 366 366 371 536 691 691 substr builtin function dcl 150 ref 366 371 sum builtin function dcl 150 ref 254 691 translate builtin function dcl 150 ref 582 582 treat_msgs_as_mail 000610 automatic bit(1) dcl 141 set ref 633* 636* 643* 652 trunc builtin function dcl 150 ref 358 type based fixed bin(2,0) array level 2 packed packed unsigned unaligned dcl 1-27 ref 541 unused_bit 000611 automatic bit(1) dcl 142 set ref 381* 466* 481* 620* unused_bit2 000612 automatic bit(1) dcl 143 set ref 381* 466* 481* 620* user_message 000100 automatic varying char(78) dcl 612 set ref 618* 620 version 000614 automatic char(8) level 2 in structure "auto_open_options" packed packed unaligned dcl 145 in procedure "xmail_Mail_File_Maint_" set ref 651* version 000621 automatic char(8) level 2 in structure "auto_close_options" packed packed unaligned dcl 146 in procedure "xmail_Mail_File_Maint_" set ref 592* width 37 000066 external static fixed bin(17,0) level 5 dcl 2-5 ref 358 window_$bell 000074 constant entry external dcl 6-6 ref 290 window_$clear_window 000076 constant entry external dcl 6-13 ref 329 580 663 window_position_info based structure level 1 unaligned dcl 3-25 xmail_create_menu_ 000052 constant entry external dcl 175 ref 238 xmail_data based structure level 1 dcl 5-54 xmail_data_ptr 000072 external static pointer initial dcl 5-52 ref 257 275 637 644 647 xmail_delete_msgs_ 000104 constant entry external dcl 317 ref 417 458 xmail_discard_file_ 000106 constant entry external dcl 318 ref 544 xmail_discard_file_$link 000110 constant entry external dcl 319 ref 541 xmail_display_help_ 000122 constant entry external dcl 578 ref 582 xmail_dprint_msgs_ 000112 constant entry external dcl 320 ref 437 xmail_err_$exit_now 000062 external static fixed bin(35,0) dcl 183 ref 287 xmail_err_$help_requested 000064 external static fixed bin(35,0) dcl 184 ref 286 xmail_error_$code_first 000032 constant entry external dcl 166 ref 630 xmail_error_$code_last 000034 constant entry external dcl 167 ref 489 xmail_error_$no_code 000036 constant entry external dcl 168 ref 219 239 539 597 659 660 xmail_error_$no_print 000040 constant entry external dcl 169 ref 291 331 581 584 664 xmail_file_msgs_$current_msgs 000114 constant entry external dcl 321 ref 416 xmail_get_choice_ 000042 constant entry external dcl 170 ref 275 xmail_get_str_$yes_no 000044 constant entry external dcl 171 ref 641 xmail_list_msgs_ 000116 constant entry external dcl 322 ref 513 xmail_redisplay_menu 000646 stack reference condition dcl 154 ref 216 xmail_select_file_$caller_msg 000046 constant entry external dcl 172 ref 381 466 481 620 xmail_select_msgs_$all 000050 constant entry external dcl 174 ref 457 672 xmail_sw_$redisplay 000130 constant entry external dcl 616 ref 676 xmail_sw_$update_file 000124 constant entry external dcl 614 ref 674 xmail_sw_$update_file_info 000126 constant entry external dcl 615 ref 675 xmail_undelete_msgs_ 000120 constant entry external dcl 323 ref 567 xmail_value_$get_with_default 000054 constant entry external dcl 176 ref 629 xmail_window_info_format based structure level 1 dcl 2-10 xmail_window_manager_$reconnect 000100 constant entry external dcl 245 ref 246 xmail_windows 000066 external static structure level 1 dcl 2-5 yes_sw 000613 automatic bit(1) dcl 144 set ref 641* 642 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A internal static char(1) initial packed unaligned dcl 12-16 ALL internal static char(3) initial packed unaligned dcl 12-16 DATE internal static char(4) initial packed unaligned dcl 12-16 F internal static char(1) initial packed unaligned dcl 12-16 FIRST internal static char(5) initial packed unaligned dcl 12-16 INTERACTIVE_MESSAGES internal static fixed bin(17,0) initial dcl 7-23 L internal static char(1) initial packed unaligned dcl 12-16 LAST internal static char(4) initial packed unaligned dcl 12-16 LIST internal static char(2) initial packed unaligned dcl 12-16 MENU_OPTION_KEYS internal static char(1) initial array packed unaligned dcl 4-100 MESSAGE_ADDRESS_LIST_USER_FIELD internal static fixed bin(17,0) initial dcl 10-174 MESSAGE_BIT_STRING_BODY_SECTION internal static fixed bin(17,0) initial dcl 10-285 MESSAGE_BODY_SECTION_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 10-318 MESSAGE_DATE_USER_FIELD internal static fixed bin(17,0) initial dcl 10-174 MESSAGE_ENVELOPE_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 10-79 MESSAGE_INTEGER_USER_FIELD internal static fixed bin(17,0) initial dcl 10-174 MESSAGE_PREFORMATTED_BODY_SECTION internal static fixed bin(17,0) initial dcl 10-285 MESSAGE_REDISTRIBUTIONS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 10-117 MESSAGE_REDISTRIBUTION_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 10-144 MESSAGE_REFERENCES_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 10-227 MESSAGE_REFERENCE_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 10-253 MESSAGE_TEXT_USER_FIELD internal static fixed bin(17,0) initial dcl 10-174 MESSAGE_TRACE_VERSION_2 internal static char(8) initial packed unaligned dcl 10-103 MESSAGE_USER_FIELDS_LIST_VERSION_2 internal static char(8) initial packed unaligned dcl 10-158 MESSAGE_USER_FIELD_PARAMETER_VERSION_2 internal static char(8) initial packed unaligned dcl 10-213 MESSAGE_VERSION_2 internal static char(8) initial packed unaligned dcl 10-49 MSG_STRUCT_VERSION_1 internal static fixed bin(17,0) initial dcl 11-4 N internal static char(1) initial packed unaligned dcl 12-16 NEW internal static char(3) initial packed unaligned dcl 12-16 NEXT internal static char(4) initial packed unaligned dcl 12-16 NOT_OWN_MESSAGES internal static fixed bin(17,0) initial dcl 7-30 OTHER_MAILBOX internal static fixed bin(17,0) initial dcl 9-37 OWN_MESSAGES internal static fixed bin(17,0) initial dcl 7-30 P internal static char(1) initial packed unaligned dcl 12-16 PREV internal static char(4) initial packed unaligned dcl 12-16 QUESTION internal static char(1) initial packed unaligned dcl 12-16 READ_MESSAGES internal static fixed bin(17,0) initial dcl 7-38 S internal static char(1) initial packed unaligned dcl 12-16 SAVEBOX internal static fixed bin(17,0) initial dcl 9-37 SEARCH internal static char(6) initial packed unaligned dcl 12-16 SEEN internal static char(4) initial packed unaligned dcl 12-16 SET internal static char(3) initial packed unaligned dcl 12-16 UNSEEN internal static char(6) initial packed unaligned dcl 12-16 USER_DEFAULT_MAILBOX internal static fixed bin(17,0) initial dcl 9-37 USER_LOGBOX internal static fixed bin(17,0) initial dcl 9-37 Y internal static char(1) initial packed unaligned dcl 12-16 break_table_info based structure level 1 dcl 3-76 break_table_info_version internal static fixed bin(17,0) initial dcl 3-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 3-80 break_table_ptr automatic pointer dcl 3-75 close_options_ptr automatic pointer dcl 8-15 get_editor_key_bindings_info based structure level 1 dcl 3-151 get_editor_key_bindings_info_ptr automatic pointer dcl 3-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 3-160 line_editor_binding_count automatic fixed bin(17,0) dcl 3-121 line_editor_key_binding_info based structure level 1 dcl 3-129 line_editor_key_binding_info_ptr automatic pointer dcl 3-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 3-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 3-123 mailbox_n_messages automatic fixed bin(17,0) dcl 9-32 menu_$create 000000 constant entry external dcl 4-8 menu_$delete 000000 constant entry external dcl 4-61 menu_$describe 000000 constant entry external dcl 4-35 menu_$destroy 000000 constant entry external dcl 4-41 menu_$get_choice 000000 constant entry external dcl 4-26 menu_$list 000000 constant entry external dcl 4-67 menu_$retrieve 000000 constant entry external dcl 4-54 menu_$store 000000 constant entry external dcl 4-46 menu_format based structure level 1 dcl 4-76 menu_format_ptr automatic pointer dcl 4-94 menu_format_version_1 internal static fixed bin(17,0) initial dcl 4-97 menu_requirements based structure level 1 dcl 4-88 menu_requirements_ptr automatic pointer dcl 4-95 menu_requirements_version_1 internal static fixed bin(17,0) initial dcl 4-97 message based structure level 1 dcl 10-15 message_address_list_user_field based structure level 1 dcl 10-190 message_bit_string_body_section based structure level 1 dcl 10-301 message_bit_string_body_section_bit_string based bit packed unaligned dcl 10-307 message_body_section_parameter based structure level 1 dcl 10-313 message_body_section_parameter_ptr automatic pointer dcl 10-320 message_body_section_ptr automatic pointer dcl 10-280 message_date_user_field based structure level 1 dcl 10-195 message_envelope_parameter based structure level 1 dcl 10-74 message_envelope_parameter_ptr automatic pointer dcl 10-81 message_envelope_ptr automatic pointer dcl 10-69 message_integer_user_field based structure level 1 dcl 10-200 message_n_body_sections automatic fixed bin(17,0) dcl 10-55 message_n_redistributions automatic fixed bin(17,0) dcl 10-55 message_n_user_fields automatic fixed bin(17,0) dcl 10-55 message_preformatted_body_section based structure level 1 dcl 10-292 message_preformatted_body_section_text based char packed unaligned dcl 10-298 message_ptr automatic pointer dcl 10-53 message_redistribution_comment based char packed unaligned dcl 10-131 message_redistribution_parameter based structure level 1 dcl 10-139 message_redistribution_parameter_ptr automatic pointer dcl 10-146 message_redistribution_ptr automatic pointer dcl 10-134 message_redistributions_list based structure level 1 dcl 10-109 message_reference_parameter based structure level 1 dcl 10-248 message_reference_parameter_ptr automatic pointer dcl 10-255 message_reference_ptr automatic pointer dcl 10-243 message_reference_subject based char packed unaligned dcl 10-240 message_references_list based structure level 1 dcl 10-219 message_references_list_n_references automatic fixed bin(17,0) dcl 10-55 message_references_list_ptr automatic pointer dcl 10-229 message_subject based char packed unaligned dcl 10-51 message_text_field_ptr automatic pointer dcl 10-270 message_text_field_text based char packed unaligned dcl 10-268 message_text_user_field based structure level 1 dcl 10-183 message_text_user_field_text based char packed unaligned dcl 10-187 message_trace based structure level 1 dcl 10-87 message_trace_n_relays automatic fixed bin(17,0) dcl 10-55 message_trace_ptr automatic pointer dcl 10-105 message_user_field_parameter based structure level 1 dcl 10-208 message_user_field_parameter_ptr automatic pointer dcl 10-215 message_user_field_ptr automatic pointer dcl 10-169 message_user_fields_list based structure level 1 dcl 10-150 more_handler_info based structure level 1 dcl 3-83 more_handler_info_ptr automatic pointer dcl 3-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 3-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 3-94 more_prompt_info based structure level 1 dcl 3-108 more_prompt_info_ptr automatic pointer dcl 3-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 3-114 more_responses_info based structure level 1 dcl 3-59 more_responses_info_ptr automatic pointer dcl 3-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 3-67 more_responses_version internal static fixed bin(17,0) initial dcl 3-67 msg_struct based structure level 1 unaligned dcl 11-22 msg_structp automatic pointer dcl 11-20 n_messages automatic fixed bin(17,0) dcl 11-3 nonexist_msgs based structure level 1 unaligned dcl 11-15 nonexist_msgsp automatic pointer dcl 11-13 open_options_ptr automatic pointer dcl 7-14 set_editor_key_bindings_info based structure level 1 dcl 3-162 set_editor_key_bindings_info_ptr automatic pointer dcl 3-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 3-172 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 1-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 1-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 1-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 1-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 1-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 1-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 1-120 star_branch_count automatic fixed bin(17,0) dcl 1-13 star_dir_list_branch based structure array level 1 dcl 1-59 star_link_count automatic fixed bin(17,0) dcl 1-17 star_link_pathname based char packed unaligned dcl 1-102 star_links based structure array level 1 dcl 1-76 star_linkx automatic fixed bin(17,0) dcl 1-18 star_list_branch based structure array level 1 dcl 1-41 star_list_branch_ptr automatic pointer dcl 1-16 star_list_names based char(32) array packed unaligned dcl 1-92 star_list_names_ptr automatic pointer dcl 1-20 star_select_sw automatic fixed bin(3,0) dcl 1-21 token_characters_info based structure level 1 dcl 3-97 token_characters_info_ptr automatic pointer dcl 3-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 3-106 window_$change_column 000000 constant entry external dcl 6-63 window_$change_line 000000 constant entry external dcl 6-59 window_$clear_region 000000 constant entry external dcl 6-7 window_$clear_to_end_of_line 000000 constant entry external dcl 6-9 window_$clear_to_end_of_window 000000 constant entry external dcl 6-11 window_$create 000000 constant entry external dcl 6-72 window_$delete_chars 000000 constant entry external dcl 6-15 window_$destroy 000000 constant entry external dcl 6-74 window_$edit_line 000000 constant entry external dcl 6-76 window_$get_cursor_position 000000 constant entry external dcl 6-17 window_$get_echoed_chars 000000 constant entry external dcl 6-22 window_$get_one_unechoed 000000 constant entry external dcl 6-67 window_$get_one_unechoed_char 000000 constant entry external dcl 6-67 window_$get_unechoed_chars 000000 constant entry external dcl 6-25 window_$insert_text 000000 constant entry external dcl 6-28 window_$overwrite_text 000000 constant entry external dcl 6-29 window_$position_cursor 000000 constant entry external dcl 6-31 window_$position_cursor_rel 000000 constant entry external dcl 6-36 window_$scroll_region 000000 constant entry external dcl 6-42 window_$sync 000000 constant entry external dcl 6-44 window_$write_raw_text 000000 constant entry external dcl 6-48 window_$write_sync_read 000000 constant entry external dcl 6-53 window_edit_line_info based structure level 1 unaligned dcl 3-177 window_edit_line_info_ptr automatic pointer dcl 3-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 3-183 window_position_info_ptr automatic pointer dcl 3-37 window_position_info_version internal static fixed bin(17,0) initial dcl 3-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 3-35 window_status_info based structure level 1 dcl 3-45 window_status_info_ptr automatic pointer dcl 3-43 window_status_version internal static fixed bin(17,0) initial dcl 3-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 3-52 xmail_version internal static varying char(10) initial dcl 5-84 NAMES DECLARED BY EXPLICIT CONTEXT. CLEAN_UP 006466 constant entry internal dcl 689 ref 234 295 EXIT 002150 constant label dcl 295 set ref 287 EXPLAIN_OPTION 005114 constant entry internal dcl 574 ref 286 OPT 000000 constant label array(9) dcl 340 ref 338 PERFORM_OPTION 002155 constant entry internal dcl 301 ref 285 SELECT_NEW_FILE 005402 constant entry internal dcl 608 ref 402 403 430 450 506 523 524 SELECT_NEW_FILE_EXIT 006464 constant label dcl 684 START 001465 constant label dcl 250 ref 242 247 done_with_file 005267 constant entry internal dcl 588 ref 474 624 668 690 skipit 001746 constant label dcl 274 ref 263 success 004712 constant label dcl 541 ref 536 xmail_Mail_File_Maint_ 001170 constant entry external dcl 51 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7602 7734 6762 7612 Length 10522 6762 132 552 617 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_Mail_File_Maint_ 820 external procedure is an external procedure. on unit on line 216 108 on unit on unit on line 233 64 on unit on unit on line 242 64 on unit on unit on line 243 64 on unit PERFORM_OPTION internal procedure shares stack frame of external procedure xmail_Mail_File_Maint_. begin block on line 350 90 begin block uses auto adjustable storage. EXPLAIN_OPTION internal procedure shares stack frame of external procedure xmail_Mail_File_Maint_. done_with_file 112 internal procedure is called by several nonquick procedures. SELECT_NEW_FILE 175 internal procedure is called during a stack extension. CLEAN_UP 64 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 menup xmail_Mail_File_Maint_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME SELECT_NEW_FILE 000100 user_message SELECT_NEW_FILE begin block on line 350 000100 char_count begin block on line 350 000100 mail_file_list begin block on line 350 000101 no_columns begin block on line 350 xmail_Mail_File_Maint_ 000100 choice xmail_Mail_File_Maint_ 000101 code xmail_Mail_File_Maint_ 000102 default_file xmail_Mail_File_Maint_ 000111 dir xmail_Mail_File_Maint_ 000163 display_needed xmail_Mail_File_Maint_ 000164 file xmail_Mail_File_Maint_ 000175 file_indicator xmail_Mail_File_Maint_ 000206 file_info xmail_Mail_File_Maint_ 000307 file_is_empty xmail_Mail_File_Maint_ 000310 last_file_used xmail_Mail_File_Maint_ 000317 last_opt xmail_Mail_File_Maint_ 000320 multiple_msgs xmail_Mail_File_Maint_ 000321 new_dir xmail_Mail_File_Maint_ 000373 new_file xmail_Mail_File_Maint_ 000404 pos_line xmail_Mail_File_Maint_ 000504 position xmail_Mail_File_Maint_ 000606 response xmail_Mail_File_Maint_ 000610 treat_msgs_as_mail xmail_Mail_File_Maint_ 000611 unused_bit xmail_Mail_File_Maint_ 000612 unused_bit2 xmail_Mail_File_Maint_ 000613 yes_sw xmail_Mail_File_Maint_ 000614 auto_open_options xmail_Mail_File_Maint_ 000621 auto_close_options xmail_Mail_File_Maint_ 000654 star_entry_count xmail_Mail_File_Maint_ 000656 star_entry_ptr xmail_Mail_File_Maint_ 000660 star_names_ptr xmail_Mail_File_Maint_ 000662 mailbox_ptr xmail_Mail_File_Maint_ 000664 curr_msgsp xmail_Mail_File_Maint_ 000702 discarded PERFORM_OPTION 000703 entry_is_link PERFORM_OPTION 000704 i PERFORM_OPTION 000705 idx PERFORM_OPTION 000706 mbx_name PERFORM_OPTION 000716 msg_pointer PERFORM_OPTION THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars enter_begin_block leave_begin_block call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac tra_ext_1 alloc_auto_adj mpfx2 enable_op shorten_stack ext_entry int_entry int_entry_desc set_chars_eis op_freen_ index_before_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_system_free_area_ hcs_$star_ ioa_ ioa_$nnl ioa_$rsnnl mail_system_$close_mailbox mail_system_$open_mailbox mailbox_$chname_file menu_$display mlsys_utils_$create_mailbox window_$bell window_$clear_window xmail_create_menu_ xmail_delete_msgs_ xmail_discard_file_ xmail_discard_file_$link xmail_display_help_ xmail_dprint_msgs_ xmail_error_$code_first xmail_error_$code_last xmail_error_$no_code xmail_error_$no_print xmail_file_msgs_$current_msgs xmail_get_choice_ xmail_get_str_$yes_no xmail_list_msgs_ xmail_select_file_$caller_msg xmail_select_msgs_$all xmail_sw_$redisplay xmail_sw_$update_file xmail_sw_$update_file_info xmail_undelete_msgs_ xmail_value_$get_with_default xmail_window_manager_$reconnect THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$moderr iox_$user_output xmail_data_ptr xmail_err_$exit_now xmail_err_$help_requested xmail_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 51 001167 216 001175 217 001211 219 001231 220 001266 222 001267 223 001272 224 001273 225 001274 226 001275 227 001276 228 001302 229 001304 230 001305 231 001307 233 001310 234 001324 235 001331 237 001332 238 001337 239 001367 242 001423 243 001442 246 001456 247 001462 250 001465 252 001467 254 001470 255 001522 256 001530 257 001533 259 001630 261 001635 262 001641 263 001643 266 001644 267 001701 269 001707 270 001711 272 001724 273 001725 274 001746 275 001753 284 002056 285 002060 286 002073 287 002101 290 002103 291 002113 293 002147 295 002150 296 002154 301 002155 329 002157 331 002170 334 002224 336 002225 337 002233 338 002240 340 002242 344 002244 345 002263 348 002264 350 002307 351 002312 375 002323 355 002326 356 002332 358 002333 360 002340 361 002350 362 002414 364 002416 366 002440 367 002471 369 002475 371 002506 373 002534 374 002537 375 002541 376 002560 377 002561 381 002562 383 002647 385 002651 386 002665 388 002666 389 002715 390 002737 392 002765 393 003005 395 003006 399 003010 400 003021 402 003022 403 003050 404 003076 405 003102 407 003107 408 003123 411 003124 413 003126 414 003151 416 003152 417 003174 418 003230 419 003233 421 003234 425 003236 426 003247 429 003250 430 003253 431 003301 432 003305 434 003307 435 003332 437 003333 438 003344 441 003345 445 003347 446 003360 449 003361 450 003364 451 003412 452 003416 454 003420 455 003440 457 003441 458 003461 459 003515 460 003520 462 003521 466 003527 468 003626 470 003634 471 003654 474 003655 476 003661 477 003664 478 003671 480 003701 481 003724 482 004012 484 004014 485 004030 488 004031 489 004211 490 004246 491 004271 492 004276 493 004301 494 004311 495 004314 497 004315 501 004317 502 004330 505 004331 506 004334 507 004362 508 004366 510 004370 511 004413 513 004414 514 004427 516 004430 520 004432 521 004443 523 004444 524 004470 525 004516 527 004524 528 004544 530 004545 531 004550 532 004552 534 004556 535 004565 536 004607 537 004650 538 004652 539 004654 541 004712 544 004754 547 005011 548 005016 549 005020 550 005021 551 005022 552 005023 554 005043 556 005044 560 005050 565 005064 567 005065 568 005113 574 005114 580 005116 581 005127 582 005163 584 005230 586 005265 588 005266 590 005274 592 005301 593 005304 594 005306 595 005310 596 005312 597 005326 600 005363 601 005370 602 005375 604 005400 608 005401 618 005422 620 005456 621 005561 623 005565 624 005605 625 005612 626 005616 629 005623 630 005654 633 005715 634 005717 636 005733 637 005735 638 005742 639 005743 641 005750 642 005772 643 005776 644 006000 646 006005 647 006006 651 006013 652 006015 654 006022 655 006024 656 006026 658 006030 659 006104 660 006147 663 006204 664 006216 666 006253 668 006257 669 006264 670 006267 672 006270 674 006310 675 006337 676 006435 677 006443 679 006452 680 006454 684 006464 689 006465 690 006473 691 006500 692 006535 693 006544 ----------------------------------------------------------- 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