COMPILATION LISTING OF SEGMENT xmail_Send_Mail_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0749.8 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(86-01-10,Blair), approve(86-02-26,MCR7358), 16* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 17* Set switch to allow processing of your mail in other users' mailboxes when 18* the option to Select Filed Mail is chosen. 19* 2) change(87-01-13,Blair), approve(87-02-05,MCR7618), 20* audit(87-04-10,RBarstad), install(87-04-26,MR12.1-1025): 21* Create a new option for printing deferred messages and update the prompt 22* for deleting deferred messages to distinguish between deferred files and 23* save files. Error list entries 131, 132. 24* 3) change(87-01-19,Blair), approve(87-02-05,MCR7618), 25* audit(87-04-10,RBarstad), install(87-04-26,MR12.1-1025): 26* Determine whether we've been looking at all msgs or ordinary ones only 27* before checking to see if we have any messages in the mailbox. 28* 4) change(87-08-10,Blair), approve(87-12-10,MCR7818), 29* audit(87-12-23,LJAdams), install(88-01-12,MR12.2-1013): 30* Initialize the reply-to field in the message header of a new 31* message. 32* END HISTORY COMMENTS */ 33 34 35 xmail_Send_Mail_: proc (what_next); 36 37 /* BEGIN DESCRIPTION 38* 39*function: 40* 41*history: Written by P. Kizivat, format: style1 42* 43* Extensively modified by R. Ignagni 44* 45* 83-06-27 DJ Schimke: Modified to use new mail_system calls and version 2 46* mailboxes. 47* 48* 83-10-04 DJ Schimke: Added calls to xmail_get_str_$yes_no to handle all 49* yes/no type questions. Restructured the code to remove coding standards 50* violations and satisfy audit. 51* 52* 83-11-01 DJ Schimke: Changed the calling sequence of xmail_select_file_. 53* 54* 84-07-03 DJ Schimke: Modified to use a three-column menu format changing 55* the calls to xmail_create_emnu_ to include a N_COLUMNS parameter. 56* 57* 84-08-08 JG Backs: Modified for the addition of blind carbon copies (bcc). 58* 59* 84-10-02 JG Backs: Modified the code at OPT (7) in PERFORM_OPTION proc to 60* stay in Send Mail Menu if there are no messages in "incoming" mailbox. 61* 62* 84-11-14 JG Backs: Deleted a call to window_$clear_window in the internal 63* procedure CLEAN_UP, so there would be no screen output if cleanup condition. 64* 65*END DESCRIPTION 66**/ 67 68 /* PARAMETERS */ 69 70 dcl what_next char (9); 71 72 /* AUTOMATIC */ 73 74 dcl choice fixed bin; 75 dcl code fixed bin (35); 76 dcl display_needed bit (1) aligned; 77 dcl message_count, ordinary_message_count, total_message_count fixed bin; 78 dcl return_to_caller bit (1) aligned; 79 dcl sm_area_ptr ptr; 80 dcl yes_sw bit (1) aligned; 81 dcl unused_bit bit (1) aligned; 82 dcl unused_bit2 bit (1) aligned; 83 84 /* BASED */ 85 86 dcl send_mail_area area based (sm_area_ptr); 87 88 /* BUILTINS */ 89 90 dcl (null, rtrim, translate) builtin; 91 92 /* CONDITIONS */ 93 94 dcl (cleanup, program_interrupt, xmail_redisplay_menu, quit) condition; 95 96 /* CONSTANTS */ 97 98 dcl ACCEPT_OLD init ("1"b) bit (1) aligned 99 int static options (constant); 100 dcl ALLOW_SELECTION init ("1"b) bit (1) aligned 101 int static options (constant); 102 dcl COUNT_BY_TYPE init ("1"b) bit (1) aligned 103 int static options (constant); 104 dcl DELETE_SEGMENT_FORCE init ("100100"b) bit (6) 105 int static options (constant); 106 dcl DELETE_SEGMENT_FORCE_CHASE 107 init ("100101"b) bit (6) 108 int static options (constant); 109 dcl DONT_ACCEPT_NEW init ("0"b) bit (1) aligned 110 int static options (constant); 111 dcl MENU_HEADING init ("Send Mail") char (9) 112 int static options (constant); 113 dcl NAME init ("xmail_Send_Mail_") char (16) 114 int static options (constant); 115 dcl N_COLUMNS init (3) fixed bin 116 int static options (constant); 117 dcl OPTION_NAMES int static options (constant) init ( 118 "New Message", 119 "Deferred Message", 120 "File Sent Message", 121 "Print Sent Message", 122 "Print Deferred Msg", 123 "Discard Deferred Msg", 124 "Mailing Lists", 125 "Process Incoming Mail", 126 "Process Filed Mail" 127 ) dim (9) char (30) varying; 128 129 /* EXTERNAL STATIC */ 130 131 dcl iox_$user_output ptr external static; 132 dcl xmail_err_$help_requested ext static fixed bin (35); 133 dcl xmail_err_$exit_now ext static fixed bin (35); 134 135 /* ENTRIES */ 136 137 dcl delete_$ptr entry (ptr, bit (6), char (*), fixed bin (35)); 138 dcl get_system_free_area_ entry () returns (ptr); 139 dcl ioa_ entry options (variable); 140 dcl ioa_$rsnnl entry () options (variable); 141 dcl mail_system_$free_message entry (ptr, fixed bin (35)); 142 dcl mail_system_$free_address_list entry (ptr, fixed bin (35)); 143 dcl mail_system_$get_message_counts entry (char (*), char (*), bit (1) aligned, fixed bin, fixed bin, fixed bin, fixed bin (35)); 144 dcl xmail_create_menu_ entry (char (*), (*) char (*) var, 145 fixed bin, ptr, fixed bin (35)); 146 dcl xmail_display_help_ entry (char (*), char (*), fixed bin (35)); 147 dcl xmail_error_$no_code entry options (variable); 148 dcl xmail_get_choice_ entry (ptr, char (*), char (*), char (*), char (*), bit (1) aligned, char (*), fixed bin, fixed bin (35)); 149 dcl xmail_get_str_$yes_no entry (char (*) var, bit (1) aligned); 150 dcl xmail_select_file_$caller_msg entry (char (*), char (*), char (*), bit (1) aligned, bit (1) aligned, char (168), char (32) var, char (*), bit (1) aligned, bit (1) aligned, fixed bin (35)); 151 dcl xmail_window_manager_$reconnect entry (); 152 153 /* INTERNAL STATIC */ 154 155 dcl menup int static ptr init (null); 156 157 /* INCLUDE FILES */ 158 1 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 1 2 1 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 1 4 1 5 dcl area_infop ptr; 1 6 1 7 dcl 1 area_info aligned based (area_infop), 1 8 2 version fixed bin, /* version number for this structure is 1 */ 1 9 2 control aligned like area_control, /* control bits for the area */ 1 10 2 owner char (32) unal, /* creator of the area */ 1 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 1 12 2 size fixed bin (18), /* size of the area in words */ 1 13 2 version_of_area fixed bin, /* version of area (returned only) */ 1 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 1 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 1 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 1 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 1 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 1 19 1 20 dcl 1 area_control aligned based, 1 21 2 extend bit (1) unal, /* says area is extensible */ 1 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 1 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 1 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 1 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 1 26 2 system bit (1) unal, /* says area is managed by system */ 1 27 2 pad bit (30) unal; 1 28 1 29 /* END INCLUDE FILE area_info.incl.pl1 */ 159 160 2 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 2 2* declarations for the menu_ subroutines MTB 493 2 3* James R. Davis 26 Jan 81 to 20 Februrary 81 2 4**/ 2 5 2 6 /* format: off */ 2 7 2 8 dcl menu_$create entry ( 2 9 (*) char (*) varying, /* input: choices */ 2 10 (*) char (*) varying, /* input: headers */ 2 11 (*) char (*) varying, /* input: trailers */ 2 12 pointer, /* input: to format info */ 2 13 (*) char (1) unal, /* input: keys to use */ 2 14 pointer, /* input: to area */ 2 15 pointer, /* input: to needs str. */ 2 16 pointer, /* to menu: output */ 2 17 fixed bin (35) /* code */ 2 18 ); 2 19 2 20 dcl menu_$display entry ( 2 21 pointer, /* window */ 2 22 pointer, /* menu */ 2 23 fixed bin (35) /* code */ 2 24 ); 2 25 2 26 dcl menu_$get_choice entry ( 2 27 pointer, /* window */ 2 28 pointer, /* menu */ 2 29 pointer, /* to function key info */ 2 30 bit (1) aligned, /* function key hi: output */ 2 31 fixed bin, /* output: selection number */ 2 32 fixed bin (35) /* output: code */ 2 33 ); 2 34 2 35 dcl menu_$describe entry ( 2 36 pointer, /* menu */ 2 37 pointer, /* needs */ 2 38 fixed bin (35) /* code */ 2 39 ); 2 40 2 41 dcl menu_$destroy entry ( 2 42 pointer, /* menu */ 2 43 fixed bin (35) /* code */ 2 44 ); 2 45 2 46 dcl menu_$store entry ( 2 47 character (*), 2 48 character (*), 2 49 character (*), 2 50 bit (1) aligned, 2 51 pointer, 2 52 fixed bin (35)); 2 53 2 54 dcl menu_$retrieve entry ( 2 55 character (*), 2 56 character (*), 2 57 character (*), 2 58 pointer, 2 59 pointer, 2 60 fixed bin (35)); 2 61 dcl menu_$delete entry ( 2 62 character (*), 2 63 character (*), 2 64 character (*), 2 65 fixed binary (35)); 2 66 2 67 dcl menu_$list entry ( 2 68 character (*), 2 69 character (*), 2 70 character (*), 2 71 pointer, 2 72 fixed bin, 2 73 pointer, 2 74 fixed bin (35)); 2 75 2 76 dcl 1 menu_format aligned based (menu_format_ptr), 2 77 2 version fixed bin, 2 78 2 constraints, 2 79 3 max_width fixed bin, 2 80 3 max_height fixed bin, 2 81 2 n_columns fixed bin, 2 82 2 flags, 2 83 3 center_headers bit (1) unal, 2 84 3 center_trailers bit (1) unal, 2 85 3 pad bit (34) unal, 2 86 2 pad_char char (1); 2 87 2 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 2 89 2 version fixed bin, 2 90 2 lines_needed fixed bin, 2 91 2 width_needed fixed bin, 2 92 2 n_options fixed bin; 2 93 2 94 dcl menu_format_ptr pointer; 2 95 dcl menu_requirements_ptr pointer; 2 96 2 97 dcl (menu_format_version_1, menu_requirements_version_1) 2 98 fixed bin internal static init (1) options (constant); 2 99 2 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 2 101 options (constant) init 2 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 2 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 2 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 2 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 2 106 2 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 161 162 3 1 /* BEGIN INCLUDE FILE xmail_help_infos.incl.pl1 */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(85-03-06,Backs), approve(86-03-06,MCR7358), 3 5* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 3 6* Modified to add date info. 3 7* END HISTORY COMMENTS */ 3 8 3 9 /* Created 06/18/81 by Suzanne Krupp */ 3 10 3 11 /* Help files and info entry points. */ 3 12 3 13 dcl (PROMPT_REPLIES_HELP char(28) init("xmail_prompt_replies.gi.info"), 3 14 GENERAL_HELP_HELP char(26) init("xmail_general_help.gi.info"), 3 15 GETTING_STARTED_HELP char(29) init("xmail_getting_started.gi.info"), 3 16 INITIAL_HELP char(26) init("xmail_initial_help.gi.info"), 3 17 MULTICS_MODE_HELP char(27) init("xmail_multics_mode_.gi.info"), 3 18 REVIEW_DEFAULTS_HELP char(29) init("xmail_Review_Defaults.gi.info")) 3 19 int static options(constant); 3 20 3 21 dcl (CREATE_MFILE_INFO char(19) init("creating_mail_files"), /* Prompt Infos */ 3 22 DEL_MSG_SELECT_INFO char(23) init("which_discarded_message"), 3 23 SEARCH_STR_INFO char(14) init("search_string"), 3 24 MSG_SELECT_INFO char(14) init("which_message"), 3 25 USE_SPEC_SET_INFO char(12) init("use_spec_set"), 3 26 GETTING_HELP_INFO char(12) init("getting_help"), 3 27 DATE_INFO char(14) init("date_selection"), 3 28 MORE_HELP_INFO char(9) init("more_help")) 3 29 int static options(constant); 3 30 3 31 /* END INCLUDE FILE ... xmail_help_infos.incl.pl1 */ 163 164 4 1 /* BEGIN INCLUDE FILE ... xmail_send_mail.incl.pl1 */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(87-08-10,Blair), approve(87-12-17,MCR7818), 4 5* audit(87-12-23,LJAdams), install(88-01-12,MR12.2-1013): 4 6* Add pointer for reply_to field. 4 7* END HISTORY COMMENTS */ 4 8 4 9 /* Created by R. Ignagni July 1981 */ 4 10 4 11 /* 84-08-06 JG Backs: Modified to add pointer for bcc. */ 4 12 4 13 dcl 1 send_mail_info aligned based (send_mail_info_ptr), 4 14 2 msg_exists bit (1), /* ON = new message exists */ 4 15 2 stored_seg_ptr ptr, /* ptr to stored msg seg */ 4 16 2 emacs_seg_ptr ptr, /* ptr to seg containing msg */ 4 17 2 new_msg_ptr ptr, /* ptr to new_msg structure */ 4 18 2 reply_to_list_ptr ptr, /* ptr to reply_to addr struct */ 4 19 2 to_list_ptr ptr, /* ptr to recipients addr struct */ 4 20 2 cc_list_ptr ptr, /* ptr to cc address structure */ 4 21 2 bcc_list_ptr ptr, /* ptr to bcc address structure */ 4 22 2 send_mail_area_ptr ptr, /* ptr to send_mail_area */ 4 23 2 emacs_seg_pathname char (168); 4 24 4 25 4 26 dcl send_mail_info_ptr ptr external static init (null); 4 27 4 28 /* END INCLUDE FILE xmail_send_mail.inl.pl1 */ 165 166 5 1 /* Begin include file: xmail_windows.incl.pl1 */ 5 2 /* Created 6/24/81 by Paul Kyzivat */ 5 3 /* Mofified 6/20/84 by DJ Schimke to add the mm_status window */ 5 4 5 5 dcl 1 xmail_windows aligned external static, 5 6 2 initial_position fixed bin, 5 7 2 min_lines_needed fixed bin, 5 8 2 (status, mm_status, menu, bottom) aligned like xmail_window_info_format; 5 9 5 10 dcl 1 xmail_window_info_format aligned based, 5 11 2 iocb ptr, 5 12 2 position aligned like window_position_info; 5 13 6 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 6 2 /* format: style3 */ 6 3 6 4 /* Modified 26 January 1982 by William York to add the set_more_handler 6 5* and reset_more_handler control orders. */ 6 6 /* Modified October 1982 by WMY to add set and get_token_characters, 6 7* set and get_more_prompt. */ 6 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 6 9* structure. */ 6 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 6 11* partial screen width windows. */ 6 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 6 13* This should be removed when window_info.incl.pl1 is created. */ 6 14 /* Modified 29 February 1984 by Barmar to add version 1 6 15* get_editor_key_bindings_info. */ 6 16 /* Modified 1 March 1984 by Barmar to add version 1 6 17* set_editor_key_bindings_info. */ 6 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 6 19* line_editor_key_bindings_info, which includes the name, description, and 6 20* info path */ 6 21 6 22 /* structure for the set_window_info and get_window_info 6 23* control orders. */ 6 24 6 25 dcl 1 window_position_info 6 26 based (window_position_info_ptr), 6 27 2 version fixed bin, 6 28 2 origin, 6 29 3 column fixed bin, 6 30 3 line fixed bin, 6 31 2 extent, 6 32 3 width fixed bin, 6 33 3 height fixed bin; 6 34 6 35 dcl (window_position_info_version, window_position_info_version_1) 6 36 fixed bin internal static init (1) options (constant); 6 37 dcl window_position_info_ptr 6 38 pointer; 6 39 6 40 /* structure for the set_window_status and get_window_status 6 41* control orders */ 6 42 6 43 declare window_status_info_ptr 6 44 pointer; 6 45 declare 1 window_status_info 6 46 aligned based (window_status_info_ptr), 6 47 2 version fixed bin, 6 48 2 status_string bit (36) aligned; /* string (window_status) */ 6 49 /* see window_status.incl.pl1 for the contents of this string */ 6 50 6 51 6 52 declare (window_status_version, window_status_version_1) 6 53 fixed bin internal static init (1) options (constant); 6 54 6 55 /* info structure for the set_more_responses and get_more_responses control 6 56* orders */ 6 57 6 58 6 59 dcl 1 more_responses_info 6 60 aligned based (more_responses_info_ptr), 6 61 2 version fixed bin, 6 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 6 63 2 n_noes fixed bin, 6 64 2 yeses char (32) unaligned, 6 65 2 noes char (32) unaligned; 6 66 6 67 dcl (more_responses_info_version_1, more_responses_version) 6 68 fixed bin internal static init (1) options (constant); 6 69 dcl more_responses_info_ptr 6 70 pointer; 6 71 6 72 /* structure for the set_break_table and get_break_table 6 73* control orders */ 6 74 6 75 declare break_table_ptr pointer; 6 76 declare 1 break_table_info aligned based (break_table_ptr), 6 77 2 version fixed bin, 6 78 2 breaks (0:127) bit (1) unaligned; 6 79 6 80 declare (break_table_info_version, break_table_info_version_1) 6 81 fixed bin init (1) internal static options (constant); 6 82 6 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 6 84 2 version fixed bin, 6 85 2 flags unaligned, 6 86 3 old_handler_valid 6 87 bit(1), 6 88 3 pad bit(35), 6 89 2 more_handler entry (pointer, bit(1) aligned), 6 90 2 old_more_handler entry (pointer, bit(1) aligned); 6 91 6 92 declare more_handler_info_ptr pointer; 6 93 6 94 declare (more_handler_info_version, more_handler_info_version_3) 6 95 fixed bin internal static options (constant) init (3); 6 96 6 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 6 98 2 version char(8), 6 99 2 token_character_count 6 100 fixed bin, 6 101 2 token_characters 6 102 char (128) unaligned; 6 103 6 104 declare token_characters_info_ptr pointer; 6 105 6 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 6 107 6 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 6 109 2 version char(8), 6 110 2 more_prompt char(80); 6 111 6 112 declare more_prompt_info_ptr pointer; 6 113 6 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 6 115 6 116 /* Line editor stuff ... */ 6 117 6 118 dcl line_editor_key_binding_info_ptr 6 119 pointer; 6 120 6 121 dcl line_editor_binding_count 6 122 fixed bin; 6 123 dcl line_editor_longest_sequence 6 124 fixed bin; 6 125 /* For each binding, action defines what to do for that sequence. Constants 6 126* are defined in window_editor_values.incl.pl1. Only if action is set to 6 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 6 128 6 129 dcl 1 line_editor_key_binding_info 6 130 aligned based (line_editor_key_binding_info_ptr), 6 131 2 version char(8), 6 132 2 binding_count fixed bin, 6 133 2 longest_sequence fixed bin, 6 134 2 bindings (line_editor_binding_count refer 6 135 (line_editor_key_binding_info.binding_count)), 6 136 3 sequence char(line_editor_longest_sequence refer 6 137 (line_editor_key_binding_info.longest_sequence)) varying, 6 138 3 action fixed bin, 6 139 3 numarg_action fixed binary, 6 140 3 editor_routine entry (pointer, fixed bin(35)), 6 141 3 name char (64) varying unaligned, 6 142 3 description char (256) varying unaligned, 6 143 3 info_path unaligned, 6 144 4 info_dir char (168), 6 145 4 info_entry char (32); 6 146 6 147 6 148 dcl line_editor_key_binding_info_version_3 6 149 char(8) static options (constant) init ("lekbi003"); 6 150 6 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 6 152 2 version char (8), 6 153 2 flags, 6 154 3 entire_state bit (1) unaligned, 6 155 3 mbz bit (35) unaligned, 6 156 2 key_binding_info_ptr ptr, 6 157 2 entire_state_ptr ptr; 6 158 6 159 dcl get_editor_key_bindings_info_ptr ptr; 6 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 6 161 6 162 dcl 1 set_editor_key_bindings_info aligned 6 163 based (set_editor_key_bindings_info_ptr), 6 164 2 version char (8), 6 165 2 flags, 6 166 3 replace bit (1) unaligned, 6 167 3 update bit (1) unaligned, 6 168 3 mbz bit (34) unaligned, 6 169 2 key_binding_info_ptr ptr; 6 170 6 171 dcl set_editor_key_bindings_info_ptr ptr; 6 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 6 173 6 174 /* This should be moved to window_info.incl.pl1 when that include file is 6 175* created. JR 2/1/84 */ 6 176 6 177 dcl 1 window_edit_line_info 6 178 based (window_edit_line_info_ptr), 6 179 2 version char (8), 6 180 2 line_ptr ptr, 6 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 6 182 6 183 dcl window_edit_line_info_version_1 6 184 char (8) static options (constant) init ("wedl0001"); 6 185 6 186 dcl window_edit_line_info_ptr 6 187 ptr; 6 188 6 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 5 14 5 15 5 16 /* End include file: xmail_windows.incl.pl1 */ 167 168 7 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 7 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 7 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 7 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 10* Adding switch to indicate request for menu display came from general help. 7 11* This is so general help menu will be displayed in top screen. 7 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 7 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 14* Add switch to indicate whether or not it is permissible to process mail 7 15* in other users' mailboxes (foreign_mailbox). 7 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 7 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 18* Add bit to indicate whether or not this is a true cleanup condition. 7 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 7 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 21* Rearrange to group all the bit flags together in one word with a pad. 7 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 7 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 7 25* you keep around a pointer to a structure which no longer exists. 7 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 7 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 7 28* Add a field to indicate whether or not we should process interactive msgs. 7 29* Increment version to 4.1 so default value will get set. 7 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 7 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 7 32* Add a field to indicate whether or not we're processing a reply so that we 7 33* will be able to rebuild the screens properly after a disconnect occurs. 7 34* Error_list #114. 7 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 7 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 7 37* Add a bit to indicate whether or not the error segment had to be created 7 38* in the pdir (because we didn't have sma access to the mlsys_dir). 7 39* END HISTORY COMMENTS */ 7 40 7 41 7 42 /* Written 5/13/81 by Paul H. Kyzivat */ 7 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 7 44* and to add n_fkeys_used */ 7 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 7 46* varying string. */ 7 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 7 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 7 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 7 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 7 51 7 52 dcl xmail_data_ptr external static ptr init (null); 7 53 7 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 7 55 2 mail_dir char (168) varying, 7 56 2 first_label label, 7 57 2 quit_label label, 7 58 2 value_seg_pathname char (168) varying, 7 59 2 moved_user_io ptr, 7 60 2 normal_usage char (80) unal, 7 61 2 function_key_info, 7 62 3 function_key_data_ptr ptr, 7 63 3 n_fkeys_used fixed bin, 7 64 2 actee, 7 65 3 person char(32) varying, 7 66 3 project char(32) varying, 7 67 2 flags aligned, 7 68 3 mail_in_incoming bit (1) unal, 7 69 3 lists_as_menus bit (1) unal, /* personalization */ 7 70 3 remove_menus bit (1) unal, /* personalization */ 7 71 3 confirm_print bit (1) unal, /* personalization */ 7 72 3 multics_mode bit (1) unal, /* personalization */ 7 73 3 interactive_msgs bit (1) unal, /* personalization */ 7 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 7 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 7 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 7 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 7 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 7 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 7 80 3 pad bit (24) unal; 7 81 7 82 7 83 7 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 7 85 7 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 169 170 8 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 8 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 8 3 8 4 /* format: style3 */ 8 5 8 6 declare window_$bell entry (pointer, fixed binary (35)); 8 7 declare window_$clear_region 8 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 8 9 declare window_$clear_to_end_of_line 8 10 entry (pointer, fixed binary (35)); 8 11 declare window_$clear_to_end_of_window 8 12 entry (pointer, fixed binary (35)); 8 13 declare window_$clear_window 8 14 entry (pointer, fixed binary (35)); 8 15 declare window_$delete_chars 8 16 entry (pointer, fixed binary, fixed binary (35)); 8 17 declare window_$get_cursor_position 8 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 8 19 8 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 8 21 8 22 declare window_$get_echoed_chars 8 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 8 24 fixed binary (35)); 8 25 declare window_$get_unechoed_chars 8 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 8 27 fixed binary (35)); 8 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 8 29 declare window_$overwrite_text 8 30 entry (pointer, character (*), fixed binary (35)); 8 31 declare window_$position_cursor 8 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 8 33 8 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 8 35 8 36 declare window_$position_cursor_rel 8 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 8 38 8 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 8 40* code); */ 8 41 8 42 declare window_$scroll_region 8 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 8 44 declare window_$sync entry (pointer, fixed binary (35)); 8 45 8 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 8 47 8 48 declare window_$write_raw_text 8 49 entry (pointer, character (*), fixed binary (35)); 8 50 8 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 8 52 8 53 declare window_$write_sync_read 8 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 8 55 character (1) var, fixed binary (35)); 8 56 8 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 8 58 8 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 8 60 8 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 8 62 8 63 declare window_$change_column 8 64 entry (pointer, fixed binary, fixed binary (35)); 8 65 8 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 8 67 declare ( 8 68 window_$get_one_unechoed, 8 69 window_$get_one_unechoed_char 8 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 8 71 8 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 8 73 8 74 declare window_$destroy entry (pointer, fixed binary (35)); 8 75 8 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 8 77 8 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 8 79* buffer_len, n_returned, code); */ 8 80 8 81 8 82 /* end include file window_dcls.incl.pl1 */ 171 172 9 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 9 2 9 3 /* This include file contains structures for the hcs_$star_, 9 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 9 5* 9 6* Written 23 October 1978 by Monte Davidoff. 9 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 9 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 9 9**/ 9 10 9 11 /* automatic */ 9 12 9 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 9 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 9 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 9 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 9 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 9 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 9 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 9 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 9 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 9 22 9 23 /* based */ 9 24 9 25 /* hcs_$star_ entry structure */ 9 26 9 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 9 28 2 type fixed binary (2) unsigned unaligned, 9 29 /* storage system type */ 9 30 2 nnames fixed binary (16) unsigned unaligned, 9 31 /* number of names of entry that match star_name */ 9 32 2 nindex fixed binary (18) unsigned unaligned; 9 33 /* index of first name in star_names */ 9 34 9 35 /* hcs_$star_ name structure */ 9 36 9 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 9 38 9 39 /* hcs_$star_list_ branch structure */ 9 40 9 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 9 42 2 type fixed binary (2) unsigned unaligned, 9 43 /* storage system type */ 9 44 2 nnames fixed binary (16) unsigned unaligned, 9 45 /* number of names of entry that match star_name */ 9 46 2 nindex fixed binary (18) unsigned unaligned, 9 47 /* index of first name in star_list_names */ 9 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 9 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 9 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 9 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 9 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 9 53 2 pad bit (7) unaligned, 9 54 2 records fixed binary (18) unsigned unaligned; 9 55 /* records used by branch */ 9 56 9 57 /* hcs_$star_dir_list_ branch structure */ 9 58 9 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 9 60 2 type fixed binary (2) unsigned unaligned, 9 61 /* storage system type */ 9 62 2 nnames fixed binary (16) unsigned unaligned, 9 63 /* number of names of entry that match star_name */ 9 64 2 nindex fixed binary (18) unsigned unaligned, 9 65 /* index of first name in star_list_names */ 9 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 9 67 2 pad bit (36) unaligned, 9 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 9 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 9 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 9 71 2 bit_count fixed binary (24) unaligned; 9 72 /* bit count of the branch */ 9 73 9 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 9 75 9 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 9 77 2 type fixed binary (2) unsigned unaligned, 9 78 /* storage system type */ 9 79 2 nnames fixed binary (16) unsigned unaligned, 9 80 /* number of names of entry that match star_name */ 9 81 2 nindex fixed binary (18) unsigned unaligned, 9 82 /* index of first name in star_list_names */ 9 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 9 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 9 85 2 pathname_len fixed binary (18) unsigned unaligned, 9 86 /* length of the pathname of the link */ 9 87 2 pathname_index fixed binary (18) unsigned unaligned; 9 88 /* index of start of pathname in star_list_names */ 9 89 9 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 9 91 9 92 declare star_list_names char (32) based (star_list_names_ptr) 9 93 dimension (star_links (star_branch_count + star_link_count).nindex 9 94 + star_links (star_branch_count + star_link_count).nnames 9 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 9 96 * binary ( 9 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 9 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 9 99 9 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 9 101 9 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 9 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 9 104 9 105 /* internal static */ 9 106 9 107 /* star_select_sw values */ 9 108 9 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 9 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 9 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 9 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 9 113 fixed binary (3) internal static options (constant) initial (5); 9 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 9 115 fixed binary (3) internal static options (constant) initial (7); 9 116 9 117 /* storage system types */ 9 118 9 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 9 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 9 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 9 122 9 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 173 174 175 /* BEGIN */ 176 177 on condition (xmail_redisplay_menu) begin; 178 if menup ^= null () 179 then call menu_$display (xmail_windows.menu.iocb, menup, (0)); /* error ignored, no recovery */ 180 end; 181 182 if menup = null then do; 183 call xmail_create_menu_ (MENU_HEADING, OPTION_NAMES, N_COLUMNS, menup, code); 184 if code ^= 0 then call xmail_error_$no_code (code, NAME, "q", "A program error has occurred which prevents the use of the ^a menu.", MENU_HEADING); 185 if menup = null then go to EXIT; 186 end; 187 188 call window_$clear_window (iox_$user_output, (0));/* ignore error */ 189 190 sm_area_ptr = get_system_free_area_ (); 191 192 send_mail_info_ptr = null (); 193 on condition (cleanup) call CLEAN_UP; 194 195 allocate send_mail_info in (send_mail_area) set (send_mail_info_ptr); 196 197 /* Initialize the message status */ 198 199 send_mail_info.send_mail_area_ptr = sm_area_ptr; 200 send_mail_info.msg_exists = "0"b; 201 send_mail_info.emacs_seg_ptr = null (); 202 send_mail_info.stored_seg_ptr = null (); 203 send_mail_info.new_msg_ptr = null (); 204 send_mail_info.reply_to_list_ptr = null (); 205 send_mail_info.to_list_ptr = null (); 206 send_mail_info.cc_list_ptr = null (); 207 send_mail_info.bcc_list_ptr = null (); 208 send_mail_info.emacs_seg_pathname = ""; 209 210 211 on condition (program_interrupt) goto START; 212 on condition (quit) 213 begin; 214 call xmail_window_manager_$reconnect (); 215 go to START; 216 end; 217 218 219 START: 220 221 display_needed = "1"b; 222 return_to_caller = "0"b; 223 do while ("1"b); 224 if return_to_caller then goto EXIT; 225 call xmail_get_choice_ (menup, "", "", "", xmail_data.normal_usage, display_needed, "", choice, code); 226 display_needed = "0"b; 227 if code = 0 228 then call PERFORM_OPTION (choice, display_needed); 229 else if code = xmail_err_$help_requested then call EXPLAIN_OPTION (choice); 230 231 else if code = xmail_err_$exit_now then go to EXIT; 232 233 else call window_$bell (xmail_windows.menu.iocb, (0)); /* ignore error */ 234 end; 235 236 EXIT: return; 237 238 /* INTERNAL PROCEDURES */ 239 240 PERFORM_OPTION: proc (opt, redisplay); 241 242 /* PARAMETERS */ 243 dcl opt fixed bin; 244 dcl redisplay bit (1) aligned; 245 246 /* AUTOMATIC */ 247 248 dcl prompt_string char (80) var; 249 dcl star_entry_count fixed bin; 250 dcl defer_dir char (168); 251 dcl defer_file char (32) var; 252 253 /* ENTRIES */ 254 255 dcl xmail_Consult_Files_ entry (); 256 dcl xmail_Review_Mlist_ entry (); 257 dcl xmail_dprint_mlist_ entry (char(*), char(*)); 258 dcl xmail_file_msgs_$single_msg entry (ptr, char (32) var, bit (1) aligned); 259 dcl xmail_prepare_msg_ entry (bit (1)); 260 dcl xmail_send_mail_print_msg_ entry (); 261 dcl xmail_send_stored_msg_ entry (); 262 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 263 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, fixed bin (35)); 264 dcl delete_$path entry (char (*), char (*), bit (6), char (*), fixed bin (35)); 265 266 /* BEGIN */ 267 268 call window_$clear_window (iox_$user_output, (0)); 269 go to OPT (opt); 270 271 OPT (1): redisplay = "0"b; 272 call xmail_prepare_msg_ ("0"b); 273 go to OPT_EXIT; 274 275 OPT (2): redisplay = "0"b; 276 call xmail_send_stored_msg_ (); 277 go to OPT_EXIT; 278 279 OPT (3): redisplay = "0"b; 280 if send_mail_info.msg_exists 281 then call xmail_file_msgs_$single_msg (send_mail_info.new_msg_ptr, "", ALLOW_SELECTION); 282 else call ioa_ ("There is no message to file."); 283 go to OPT_EXIT; 284 285 OPT (4): redisplay = "0"b; 286 call xmail_send_mail_print_msg_ (); 287 go to OPT_EXIT; 288 289 OPT (5): redisplay = "0"b; 290 291 call xmail_select_file_$caller_msg ("deferred message", "defer", "", ACCEPT_OLD, DONT_ACCEPT_NEW, defer_dir, defer_file, "Enter name of ""deferred"" message to be printed (or ?? for list)", unused_bit, unused_bit2, code); 292 if code ^= 0 then goto OPT_EXIT; 293 call xmail_dprint_mlist_ (defer_dir, rtrim(defer_file) || "." || "defer"); 294 goto OPT_EXIT; 295 296 OPT (6): redisplay = "0"b; 297 call xmail_select_file_$caller_msg ("deferred message", "defer", "", ACCEPT_OLD, DONT_ACCEPT_NEW, defer_dir, defer_file, "Enter name of ""deferred"" message to be discarded (or ?? for list)", unused_bit, unused_bit2, code); 298 if code ^= 0 then go to OPT_EXIT; 299 call ioa_$rsnnl ("Do you wish to discard the deferred message ""^a""? ", prompt_string, (0), defer_file, code); 300 call xmail_get_str_$yes_no (prompt_string, yes_sw); 301 if yes_sw then do; 302 call delete_$path (defer_dir, rtrim (defer_file) || ".defer", DELETE_SEGMENT_FORCE, NAME, code); 303 if code ^= 0 then call xmail_error_$no_code (code, NAME, "q", "Sorry, the ""deferred"" message not discarded. An internal error."); 304 call ioa_ ("Deferred message ""^a"" discarded.", defer_file); 305 end; 306 go to OPT_EXIT; 307 308 OPT (7): redisplay = "1"b; 309 call xmail_Review_Mlist_ (); 310 go to OPT_EXIT; 311 312 OPT (8): 313 xmail_data.mail_in_incoming = "1"b; 314 call mail_system_$get_message_counts ((mail_dir), "incoming", COUNT_BY_TYPE, total_message_count, ordinary_message_count, (0), code); 315 if xmail_data.msgs_as_mail then 316 message_count = total_message_count; 317 else message_count = ordinary_message_count; 318 if message_count = 0 319 then do; /* mailbox is empty */ 320 321 xmail_data.mail_in_incoming = "0"b; 322 call iox_$control (iox_$user_output, "reset_more", null, (0)); 323 call ioa_ ("There are no messages in your ""incoming"" mailbox."); 324 call hcs_$star_ ((xmail_data.mail_dir), "*.mbx", star_ALL_ENTRIES, null (), 325 star_entry_count, (null ()), (null ()), (0)); /* ignore code since star_entry_count tells us want we need to know */ 326 327 if star_entry_count > 1 328 then do; /* may want another incoming mailbox */ 329 call xmail_get_str_$yes_no ("Still wish to go to ""Process Incoming Mail""?", yes_sw); 330 if ^yes_sw then go to OPT_EXIT; 331 end; 332 else go to OPT_EXIT; /* stay in Send Mail Menu */ 333 334 end; 335 call window_$clear_window (iox_$user_output, (0)); 336 what_next = "proc_mail"; 337 return_to_caller = "1"b; 338 go to OPT_EXIT; 339 340 OPT (9): redisplay = "1"b; 341 xmail_data.foreign_mailbox = "1"b; 342 call xmail_Consult_Files_ (); 343 xmail_data.foreign_mailbox = "0"b; 344 go to OPT_EXIT; 345 346 OPT_EXIT: 347 return; 348 end PERFORM_OPTION; 349 350 EXPLAIN_OPTION: proc (opt); 351 352 /* PARAMETERS */ 353 354 dcl opt fixed bin; 355 356 /* BEGIN */ 357 358 call window_$clear_window (iox_$user_output, (0)); 359 call xmail_display_help_ (NAME || ".gi.info", translate (OPTION_NAMES (opt), "_", " "), (0)); 360 361 end EXPLAIN_OPTION; 362 363 CLEAN_UP: proc (); 364 365 if send_mail_info_ptr ^= null 366 then do; 367 if send_mail_info.emacs_seg_ptr ^= null () 368 then do; 369 call delete_$ptr (send_mail_info.emacs_seg_ptr, DELETE_SEGMENT_FORCE_CHASE, NAME, code); 370 send_mail_info.emacs_seg_ptr = null (); 371 end; 372 373 if send_mail_info.new_msg_ptr ^= null () 374 then do; 375 call mail_system_$free_message (send_mail_info.new_msg_ptr, code); 376 send_mail_info.new_msg_ptr = null (); 377 end; 378 379 if send_mail_info.to_list_ptr ^= null () 380 then do; 381 call mail_system_$free_address_list (send_mail_info.to_list_ptr, code); 382 send_mail_info.to_list_ptr = null (); 383 end; 384 385 if send_mail_info.reply_to_list_ptr ^= null () 386 then do; 387 call mail_system_$free_address_list (send_mail_info.reply_to_list_ptr, code); 388 send_mail_info.reply_to_list_ptr = null (); 389 end; 390 391 if send_mail_info.cc_list_ptr ^= null () 392 then do; 393 call mail_system_$free_address_list (send_mail_info.cc_list_ptr, code); 394 send_mail_info.cc_list_ptr = null (); 395 end; 396 397 /* Add for bcc */ 398 399 if send_mail_info.bcc_list_ptr ^= null () 400 then do; 401 call mail_system_$free_address_list (send_mail_info.bcc_list_ptr, code); 402 send_mail_info.bcc_list_ptr = null (); 403 end; 404 405 end; 406 407 return; 408 end CLEAN_UP; 409 410 end xmail_Send_Mail_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0746.6 xmail_Send_Mail_.pl1 >spec>install>MR12.2-1098>xmail_Send_Mail_.pl1 159 1 06/11/76 1043.4 area_info.incl.pl1 >ldd>include>area_info.incl.pl1 161 2 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 163 3 05/28/86 1117.7 xmail_help_infos.incl.pl1 >ldd>include>xmail_help_infos.incl.pl1 165 4 01/14/88 2003.9 xmail_send_mail.incl.pl1 >ldd>include>xmail_send_mail.incl.pl1 167 5 12/02/84 1132.9 xmail_windows.incl.pl1 >ldd>include>xmail_windows.incl.pl1 5-14 6 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 169 7 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 171 8 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 173 9 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.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. ACCEPT_OLD 000171 constant bit(1) initial dcl 98 set ref 291* 297* ALLOW_SELECTION 000171 constant bit(1) initial dcl 100 set ref 280* COUNT_BY_TYPE 000171 constant bit(1) initial dcl 102 set ref 314* DELETE_SEGMENT_FORCE 000143 constant bit(6) initial packed unaligned dcl 104 set ref 302* DELETE_SEGMENT_FORCE_CHASE 000142 constant bit(6) initial packed unaligned dcl 106 set ref 369* DONT_ACCEPT_NEW 000175 constant bit(1) initial dcl 109 set ref 291* 297* MENU_HEADING 000137 constant char(9) initial packed unaligned dcl 111 set ref 183* 184* NAME 000133 constant char(16) initial packed unaligned dcl 113 set ref 184* 302* 303* 359 369* N_COLUMNS 000132 constant fixed bin(17,0) initial dcl 115 set ref 183* OPTION_NAMES 000011 constant varying char(30) initial array dcl 117 set ref 183* 359 359 area_control based structure level 1 dcl 1-20 bcc_list_ptr 16 based pointer level 2 dcl 4-13 set ref 207* 399 401* 402* cc_list_ptr 14 based pointer level 2 dcl 4-13 set ref 206* 391 393* 394* choice 000100 automatic fixed bin(17,0) dcl 74 set ref 225* 227* 229* cleanup 000116 stack reference condition dcl 94 ref 193 code 000101 automatic fixed bin(35,0) dcl 75 set ref 183* 184 184* 225* 227 229 231 291* 292 297* 298 299* 302* 303 303* 314* 369* 375* 381* 387* 393* 401* defer_dir 000202 automatic char(168) packed unaligned dcl 250 set ref 291* 293* 297* 302* defer_file 000254 automatic varying char(32) dcl 251 set ref 291* 293 297* 299* 302 304* delete_$path 000112 constant entry external dcl 264 ref 302 delete_$ptr 000020 constant entry external dcl 137 ref 369 display_needed 000102 automatic bit(1) dcl 76 set ref 219* 225* 226* 227* emacs_seg_pathname 22 based char(168) level 2 dcl 4-13 set ref 208* emacs_seg_ptr 4 based pointer level 2 dcl 4-13 set ref 201* 367 369* 370* flags 213 based structure level 2 dcl 7-54 foreign_mailbox 213(06) based bit(1) level 3 packed packed unaligned dcl 7-54 set ref 341* 343* get_system_free_area_ 000022 constant entry external dcl 138 ref 190 hcs_$star_ 000110 constant entry external dcl 263 ref 324 ioa_ 000024 constant entry external dcl 139 ref 282 304 323 ioa_$rsnnl 000026 constant entry external dcl 140 ref 299 iocb 22 000060 external static pointer level 3 dcl 5-5 set ref 178* 233* iox_$control 000106 constant entry external dcl 262 ref 322 iox_$user_output 000012 external static pointer dcl 131 set ref 188* 268* 322* 335* 358* mail_dir based varying char(168) level 2 dcl 7-54 ref 314 324 mail_in_incoming 213 based bit(1) level 3 packed packed unaligned dcl 7-54 set ref 312* 321* mail_system_$free_address_list 000032 constant entry external dcl 142 ref 381 387 393 401 mail_system_$free_message 000030 constant entry external dcl 141 ref 375 mail_system_$get_message_counts 000034 constant entry external dcl 143 ref 314 menu 22 000060 external static structure level 2 dcl 5-5 menu_$display 000054 constant entry external dcl 2-20 ref 178 menup 000010 internal static pointer initial dcl 155 set ref 178 178* 182 183* 185 225* message_count 000103 automatic fixed bin(17,0) dcl 77 set ref 315* 317* 318 msg_exists based bit(1) level 2 dcl 4-13 set ref 200* 280 msgs_as_mail 213(09) based bit(1) level 3 packed packed unaligned dcl 7-54 ref 315 new_msg_ptr 6 based pointer level 2 dcl 4-13 set ref 203* 280* 373 375* 376* normal_usage 142 based char(80) level 2 packed packed unaligned dcl 7-54 set ref 225* null builtin function dcl 90 ref 178 182 185 192 201 202 203 204 205 206 207 322 322 324 324 324 324 365 367 370 373 376 379 382 385 388 391 394 399 402 opt parameter fixed bin(17,0) dcl 354 in procedure "EXPLAIN_OPTION" ref 350 359 359 opt parameter fixed bin(17,0) dcl 243 in procedure "PERFORM_OPTION" ref 240 269 ordinary_message_count 000104 automatic fixed bin(17,0) dcl 77 set ref 314* 317 program_interrupt 000124 stack reference condition dcl 94 ref 211 prompt_string 000154 automatic varying char(80) dcl 248 set ref 299* 300* quit 000140 stack reference condition dcl 94 ref 212 redisplay parameter bit(1) dcl 244 set ref 240 271* 275* 279* 285* 289* 296* 308* 340* reply_to_list_ptr 10 based pointer level 2 dcl 4-13 set ref 204* 385 387* 388* return_to_caller 000106 automatic bit(1) dcl 78 set ref 222* 224 337* rtrim builtin function dcl 90 ref 293 302 send_mail_area based area(1024) dcl 86 ref 195 send_mail_area_ptr 20 based pointer level 2 dcl 4-13 set ref 199* send_mail_info based structure level 1 dcl 4-13 set ref 195 send_mail_info_ptr 000056 external static pointer initial dcl 4-26 set ref 192* 195* 199 200 201 202 203 204 205 206 207 208 280 280 365 367 369 370 373 375 376 379 381 382 385 387 388 391 393 394 399 401 402 sm_area_ptr 000110 automatic pointer dcl 79 set ref 190* 195 199 star_ALL_ENTRIES 000132 constant fixed bin(2,0) initial dcl 9-111 set ref 324* star_entry_count 000201 automatic fixed bin(17,0) dcl 249 set ref 324* 327 stored_seg_ptr 2 based pointer level 2 dcl 4-13 set ref 202* to_list_ptr 12 based pointer level 2 dcl 4-13 set ref 205* 379 381* 382* total_message_count 000105 automatic fixed bin(17,0) dcl 77 set ref 314* 315 translate builtin function dcl 90 ref 359 359 unused_bit 000113 automatic bit(1) dcl 81 set ref 291* 297* unused_bit2 000114 automatic bit(1) dcl 82 set ref 291* 297* what_next parameter char(9) packed unaligned dcl 70 set ref 35 336* window_$bell 000064 constant entry external dcl 8-6 ref 233 window_$clear_window 000066 constant entry external dcl 8-13 ref 188 268 335 358 window_position_info based structure level 1 unaligned dcl 6-25 xmail_Consult_Files_ 000070 constant entry external dcl 255 ref 342 xmail_Review_Mlist_ 000072 constant entry external dcl 256 ref 309 xmail_create_menu_ 000036 constant entry external dcl 144 ref 183 xmail_data based structure level 1 dcl 7-54 xmail_data_ptr 000062 external static pointer initial dcl 7-52 ref 225 312 314 315 321 324 341 343 xmail_display_help_ 000040 constant entry external dcl 146 ref 359 xmail_dprint_mlist_ 000074 constant entry external dcl 257 ref 293 xmail_err_$exit_now 000016 external static fixed bin(35,0) dcl 133 ref 231 xmail_err_$help_requested 000014 external static fixed bin(35,0) dcl 132 ref 229 xmail_error_$no_code 000042 constant entry external dcl 147 ref 184 303 xmail_file_msgs_$single_msg 000076 constant entry external dcl 258 ref 280 xmail_get_choice_ 000044 constant entry external dcl 148 ref 225 xmail_get_str_$yes_no 000046 constant entry external dcl 149 ref 300 329 xmail_prepare_msg_ 000100 constant entry external dcl 259 ref 272 xmail_redisplay_menu 000132 stack reference condition dcl 94 ref 177 xmail_select_file_$caller_msg 000050 constant entry external dcl 150 ref 291 297 xmail_send_mail_print_msg_ 000102 constant entry external dcl 260 ref 286 xmail_send_stored_msg_ 000104 constant entry external dcl 261 ref 276 xmail_window_info_format based structure level 1 dcl 5-10 xmail_window_manager_$reconnect 000052 constant entry external dcl 151 ref 214 xmail_windows 000060 external static structure level 1 dcl 5-5 yes_sw 000112 automatic bit(1) dcl 80 set ref 300* 301 329* 330 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CREATE_MFILE_INFO internal static char(19) initial packed unaligned dcl 3-21 DATE_INFO internal static char(14) initial packed unaligned dcl 3-21 DEL_MSG_SELECT_INFO internal static char(23) initial packed unaligned dcl 3-21 GENERAL_HELP_HELP internal static char(26) initial packed unaligned dcl 3-13 GETTING_HELP_INFO internal static char(12) initial packed unaligned dcl 3-21 GETTING_STARTED_HELP internal static char(29) initial packed unaligned dcl 3-13 INITIAL_HELP internal static char(26) initial packed unaligned dcl 3-13 MENU_OPTION_KEYS internal static char(1) initial array packed unaligned dcl 2-100 MORE_HELP_INFO internal static char(9) initial packed unaligned dcl 3-21 MSG_SELECT_INFO internal static char(14) initial packed unaligned dcl 3-21 MULTICS_MODE_HELP internal static char(27) initial packed unaligned dcl 3-13 PROMPT_REPLIES_HELP internal static char(28) initial packed unaligned dcl 3-13 REVIEW_DEFAULTS_HELP internal static char(29) initial packed unaligned dcl 3-13 SEARCH_STR_INFO internal static char(14) initial packed unaligned dcl 3-21 USE_SPEC_SET_INFO internal static char(12) initial packed unaligned dcl 3-21 area_info based structure level 1 dcl 1-7 area_info_version_1 internal static fixed bin(17,0) initial dcl 1-3 area_infop automatic pointer dcl 1-5 break_table_info based structure level 1 dcl 6-76 break_table_info_version internal static fixed bin(17,0) initial dcl 6-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 6-80 break_table_ptr automatic pointer dcl 6-75 get_editor_key_bindings_info based structure level 1 dcl 6-151 get_editor_key_bindings_info_ptr automatic pointer dcl 6-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 6-160 line_editor_binding_count automatic fixed bin(17,0) dcl 6-121 line_editor_key_binding_info based structure level 1 dcl 6-129 line_editor_key_binding_info_ptr automatic pointer dcl 6-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 6-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 6-123 menu_$create 000000 constant entry external dcl 2-8 menu_$delete 000000 constant entry external dcl 2-61 menu_$describe 000000 constant entry external dcl 2-35 menu_$destroy 000000 constant entry external dcl 2-41 menu_$get_choice 000000 constant entry external dcl 2-26 menu_$list 000000 constant entry external dcl 2-67 menu_$retrieve 000000 constant entry external dcl 2-54 menu_$store 000000 constant entry external dcl 2-46 menu_format based structure level 1 dcl 2-76 menu_format_ptr automatic pointer dcl 2-94 menu_format_version_1 internal static fixed bin(17,0) initial dcl 2-97 menu_requirements based structure level 1 dcl 2-88 menu_requirements_ptr automatic pointer dcl 2-95 menu_requirements_version_1 internal static fixed bin(17,0) initial dcl 2-97 more_handler_info based structure level 1 dcl 6-83 more_handler_info_ptr automatic pointer dcl 6-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 6-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 6-94 more_prompt_info based structure level 1 dcl 6-108 more_prompt_info_ptr automatic pointer dcl 6-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 6-114 more_responses_info based structure level 1 dcl 6-59 more_responses_info_ptr automatic pointer dcl 6-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 6-67 more_responses_version internal static fixed bin(17,0) initial dcl 6-67 set_editor_key_bindings_info based structure level 1 dcl 6-162 set_editor_key_bindings_info_ptr automatic pointer dcl 6-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 6-172 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 9-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 9-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 9-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 9-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 9-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 9-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 9-120 star_branch_count automatic fixed bin(17,0) dcl 9-13 star_dir_list_branch based structure array level 1 dcl 9-59 star_entries based structure array level 1 dcl 9-27 star_entry_count automatic fixed bin(17,0) dcl 9-14 star_entry_ptr automatic pointer dcl 9-15 star_link_count automatic fixed bin(17,0) dcl 9-17 star_link_pathname based char packed unaligned dcl 9-102 star_links based structure array level 1 dcl 9-76 star_linkx automatic fixed bin(17,0) dcl 9-18 star_list_branch based structure array level 1 dcl 9-41 star_list_branch_ptr automatic pointer dcl 9-16 star_list_names based char(32) array packed unaligned dcl 9-92 star_list_names_ptr automatic pointer dcl 9-20 star_names based char(32) array packed unaligned dcl 9-37 star_names_ptr automatic pointer dcl 9-19 star_select_sw automatic fixed bin(3,0) dcl 9-21 token_characters_info based structure level 1 dcl 6-97 token_characters_info_ptr automatic pointer dcl 6-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 6-106 window_$change_column 000000 constant entry external dcl 8-63 window_$change_line 000000 constant entry external dcl 8-59 window_$clear_region 000000 constant entry external dcl 8-7 window_$clear_to_end_of_line 000000 constant entry external dcl 8-9 window_$clear_to_end_of_window 000000 constant entry external dcl 8-11 window_$create 000000 constant entry external dcl 8-72 window_$delete_chars 000000 constant entry external dcl 8-15 window_$destroy 000000 constant entry external dcl 8-74 window_$edit_line 000000 constant entry external dcl 8-76 window_$get_cursor_position 000000 constant entry external dcl 8-17 window_$get_echoed_chars 000000 constant entry external dcl 8-22 window_$get_one_unechoed 000000 constant entry external dcl 8-67 window_$get_one_unechoed_char 000000 constant entry external dcl 8-67 window_$get_unechoed_chars 000000 constant entry external dcl 8-25 window_$insert_text 000000 constant entry external dcl 8-28 window_$overwrite_text 000000 constant entry external dcl 8-29 window_$position_cursor 000000 constant entry external dcl 8-31 window_$position_cursor_rel 000000 constant entry external dcl 8-36 window_$scroll_region 000000 constant entry external dcl 8-42 window_$sync 000000 constant entry external dcl 8-44 window_$write_raw_text 000000 constant entry external dcl 8-48 window_$write_sync_read 000000 constant entry external dcl 8-53 window_edit_line_info based structure level 1 unaligned dcl 6-177 window_edit_line_info_ptr automatic pointer dcl 6-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 6-183 window_position_info_ptr automatic pointer dcl 6-37 window_position_info_version internal static fixed bin(17,0) initial dcl 6-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 6-35 window_status_info based structure level 1 dcl 6-45 window_status_info_ptr automatic pointer dcl 6-43 window_status_version internal static fixed bin(17,0) initial dcl 6-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 6-52 xmail_version internal static varying char(10) initial dcl 7-84 NAMES DECLARED BY EXPLICIT CONTEXT. CLEAN_UP 002262 constant entry internal dcl 363 ref 193 EXIT 001055 constant label dcl 236 ref 185 224 231 EXPLAIN_OPTION 002176 constant entry internal dcl 350 ref 229 OPT 000000 constant label array(9) dcl 271 ref 269 OPT_EXIT 002175 constant label dcl 346 ref 273 277 283 287 292 294 298 306 310 327 330 338 344 PERFORM_OPTION 001056 constant entry internal dcl 240 ref 227 START 000747 constant label dcl 219 ref 211 215 xmail_Send_Mail_ 000443 constant entry external dcl 35 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3420 3534 2713 3430 Length 4212 2713 114 441 505 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_Send_Mail_ 444 external procedure is an external procedure. on unit on line 177 74 on unit on unit on line 193 88 on unit on unit on line 211 64 on unit on unit on line 212 64 on unit PERFORM_OPTION internal procedure shares stack frame of external procedure xmail_Send_Mail_. EXPLAIN_OPTION internal procedure shares stack frame of external procedure xmail_Send_Mail_. CLEAN_UP internal procedure shares stack frame of on unit on line 193. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 menup xmail_Send_Mail_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xmail_Send_Mail_ 000100 choice xmail_Send_Mail_ 000101 code xmail_Send_Mail_ 000102 display_needed xmail_Send_Mail_ 000103 message_count xmail_Send_Mail_ 000104 ordinary_message_count xmail_Send_Mail_ 000105 total_message_count xmail_Send_Mail_ 000106 return_to_caller xmail_Send_Mail_ 000110 sm_area_ptr xmail_Send_Mail_ 000112 yes_sw xmail_Send_Mail_ 000113 unused_bit xmail_Send_Mail_ 000114 unused_bit2 xmail_Send_Mail_ 000154 prompt_string PERFORM_OPTION 000201 star_entry_count PERFORM_OPTION 000202 defer_dir PERFORM_OPTION 000254 defer_file PERFORM_OPTION THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. delete_$path delete_$ptr get_system_free_area_ hcs_$star_ ioa_ ioa_$rsnnl iox_$control mail_system_$free_address_list mail_system_$free_message mail_system_$get_message_counts menu_$display window_$bell window_$clear_window xmail_Consult_Files_ xmail_Review_Mlist_ xmail_create_menu_ xmail_display_help_ xmail_dprint_mlist_ xmail_error_$no_code xmail_file_msgs_$single_msg xmail_get_choice_ xmail_get_str_$yes_no xmail_prepare_msg_ xmail_select_file_$caller_msg xmail_send_mail_print_msg_ xmail_send_stored_msg_ xmail_window_manager_$reconnect THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_output send_mail_info_ptr 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 35 000440 177 000450 178 000464 180 000504 182 000505 183 000512 184 000542 185 000602 188 000607 190 000620 192 000627 193 000632 195 000650 199 000656 200 000660 201 000662 202 000665 203 000667 204 000671 205 000673 206 000675 207 000677 208 000701 211 000705 212 000724 214 000740 215 000744 219 000747 222 000751 224 000752 225 000754 226 001024 227 001025 229 001032 231 001040 233 001042 234 001054 236 001055 240 001056 268 001060 269 001072 271 001075 272 001076 273 001107 275 001110 276 001111 277 001116 279 001117 280 001120 282 001141 283 001154 285 001155 286 001156 287 001163 289 001164 291 001165 292 001254 293 001256 294 001332 296 001334 297 001335 298 001424 299 001426 300 001463 301 001500 302 001503 303 001563 304 001620 306 001640 308 001641 309 001643 310 001650 312 001651 314 001656 315 001727 317 001741 318 001743 321 001744 322 001746 323 002001 324 002015 327 002101 329 002105 330 002127 335 002132 336 002144 337 002151 338 002153 340 002154 341 002156 342 002163 343 002167 344 002174 346 002175 350 002176 358 002200 359 002212 361 002260 363 002262 365 002263 367 002270 369 002276 370 002323 373 002330 375 002336 376 002347 379 002354 381 002362 382 002373 385 002400 387 002406 388 002417 391 002424 393 002432 394 002443 399 002450 401 002456 402 002467 407 002474 ----------------------------------------------------------- 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