COMPILATION LISTING OF SEGMENT xmail_display_mlist_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 09/11/84 1103.1 mst Tue 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 xmail_display_mlist_: proc (P_dname, P_ename); 12 13 /* Author unknown. 14* 15* 83-06-27 DJ Schimke: Deleted unreferenced seg and substr. Declared length 16* builtin. Replaced call to hcs$initiate_count with initiate_file_ and call 17* to hcs$_terminate_noname with terminate_file. 18**/ 19 /* Parameter */ 20 21 dcl (P_dname, P_ename) char (*); 22 23 /* Automatic */ 24 25 dcl bit_count fixed bin (24); 26 dcl code fixed bin (35); 27 dcl seg_len fixed bin (21); 28 dcl seg_ptr ptr; 29 30 31 /* Entries */ 32 33 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 34 dcl ioa_ entry () options (variable); 35 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 36 dcl iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 37 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 38 dcl window_$clear_window entry (ptr, fixed bin (35)); 39 dcl xmail_error_$code_first entry () options (variable); 40 dcl xmail_error_$no_print entry () options (variable); 41 42 /* External Static */ 43 44 dcl iox_$user_output ptr ext static; 45 dcl xmail_err_$int_prog_err fixed bin (35) ext static; 46 47 /* Constant */ 48 49 dcl LOG char (1) init ("l") int static options (constant); 50 dcl MLIST_SUFFIX char (3) init ("mls") int static options (constant); 51 dcl NAME char (20) init ("xmail_display_mlist_") int static options (constant); 52 dcl READ bit (3) init ("100"b) int static options (constant); 53 dcl TERM_FILE_TERM bit (3) init ("001"b) int static options (constant); 54 55 /* Builtin */ 56 57 dcl (addr, before, divide, length, null) builtin; 58 59 seg_ptr = null; 60 61 call initiate_file_ (P_dname, P_ename, READ, seg_ptr, bit_count, code); 62 if seg_ptr = null then call display_mlist_err (xmail_err_$int_prog_err, "Cannot initiate mailing list."); 63 64 seg_len = divide (bit_count + 8, 9, 21, 0); 65 66 call window_$clear_window (iox_$user_output, (0));/* ignore error */ 67 68 call format_and_display_header (); 69 70 call iox_$put_chars (iox_$user_output, seg_ptr, seg_len, code); 71 if code ^= 0 then call display_mlist_err (xmail_err_$int_prog_err, "Cannot display mailing list"); 72 73 call term_seg (); 74 75 EXIT: 76 77 return; 78 79 80 81 term_seg: proc (); 82 83 if seg_ptr ^= null 84 then call terminate_file_ (seg_ptr, bit_count, TERM_FILE_TERM, code); 85 if code ^= 0 then call xmail_error_$no_print (code, NAME, LOG, "Unable to terminate mailing list. This is an internal error."); 86 end term_seg; 87 88 display_mlist_err: proc (P_code, P_str); 89 90 dcl P_code fixed bin (35); 91 dcl P_str char (*); 92 93 call xmail_error_$code_first (P_code, NAME, LOG, "^a", P_str); 94 call term_seg (); 95 go to EXIT; 96 97 end display_mlist_err; 98 99 format_and_display_header: proc (); 100 101 dcl 1 auto_window_position_info like window_position_info; 102 103 dcl pad_len fixed bin; 104 dcl text_len fixed bin; 105 dcl code fixed bin (35); 106 107 auto_window_position_info.version = window_position_info_version; 108 call iox_$control (iox_$user_output, "get_window_info", addr (auto_window_position_info), code); 109 if code ^= 0 then call display_mlist_err (xmail_err_$int_prog_err, "While getting window info."); 110 text_len = length ("*** Mailing List: " || before (P_ename, "." || MLIST_SUFFIX) || " ***"); 111 pad_len = divide (auto_window_position_info.width - text_len, 2, 17, 0); 112 113 call ioa_ ("^vx*** Mailing List: ^a ***^/", pad_len, before (P_ename, "." || MLIST_SUFFIX)); 114 115 end format_and_display_header; 116 117 1 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 1 2 /* format: style3 */ 1 3 1 4 /* Modified 26 January 1982 by William York to add the set_more_handler 1 5* and reset_more_handler control orders. */ 1 6 /* Modified October 1982 by WMY to add set and get_token_characters, 1 7* set and get_more_prompt. */ 1 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 1 9* structure. */ 1 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 1 11* partial screen width windows. */ 1 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 1 13* This should be removed when window_info.incl.pl1 is created. */ 1 14 /* Modified 29 February 1984 by Barmar to add version 1 1 15* get_editor_key_bindings_info. */ 1 16 /* Modified 1 March 1984 by Barmar to add version 1 1 17* set_editor_key_bindings_info. */ 1 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 1 19* line_editor_key_bindings_info, which includes the name, description, and 1 20* info path */ 1 21 1 22 /* structure for the set_window_info and get_window_info 1 23* control orders. */ 1 24 1 25 dcl 1 window_position_info 1 26 based (window_position_info_ptr), 1 27 2 version fixed bin, 1 28 2 origin, 1 29 3 column fixed bin, 1 30 3 line fixed bin, 1 31 2 extent, 1 32 3 width fixed bin, 1 33 3 height fixed bin; 1 34 1 35 dcl (window_position_info_version, window_position_info_version_1) 1 36 fixed bin internal static init (1) options (constant); 1 37 dcl window_position_info_ptr 1 38 pointer; 1 39 1 40 /* structure for the set_window_status and get_window_status 1 41* control orders */ 1 42 1 43 declare window_status_info_ptr 1 44 pointer; 1 45 declare 1 window_status_info 1 46 aligned based (window_status_info_ptr), 1 47 2 version fixed bin, 1 48 2 status_string bit (36) aligned; /* string (window_status) */ 1 49 /* see window_status.incl.pl1 for the contents of this string */ 1 50 1 51 1 52 declare (window_status_version, window_status_version_1) 1 53 fixed bin internal static init (1) options (constant); 1 54 1 55 /* info structure for the set_more_responses and get_more_responses control 1 56* orders */ 1 57 1 58 1 59 dcl 1 more_responses_info 1 60 aligned based (more_responses_info_ptr), 1 61 2 version fixed bin, 1 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 1 63 2 n_noes fixed bin, 1 64 2 yeses char (32) unaligned, 1 65 2 noes char (32) unaligned; 1 66 1 67 dcl (more_responses_info_version_1, more_responses_version) 1 68 fixed bin internal static init (1) options (constant); 1 69 dcl more_responses_info_ptr 1 70 pointer; 1 71 1 72 /* structure for the set_break_table and get_break_table 1 73* control orders */ 1 74 1 75 declare break_table_ptr pointer; 1 76 declare 1 break_table_info aligned based (break_table_ptr), 1 77 2 version fixed bin, 1 78 2 breaks (0:127) bit (1) unaligned; 1 79 1 80 declare (break_table_info_version, break_table_info_version_1) 1 81 fixed bin init (1) internal static options (constant); 1 82 1 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 1 84 2 version fixed bin, 1 85 2 flags unaligned, 1 86 3 old_handler_valid 1 87 bit(1), 1 88 3 pad bit(35), 1 89 2 more_handler entry (pointer, bit(1) aligned), 1 90 2 old_more_handler entry (pointer, bit(1) aligned); 1 91 1 92 declare more_handler_info_ptr pointer; 1 93 1 94 declare (more_handler_info_version, more_handler_info_version_3) 1 95 fixed bin internal static options (constant) init (3); 1 96 1 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 1 98 2 version char(8), 1 99 2 token_character_count 1 100 fixed bin, 1 101 2 token_characters 1 102 char (128) unaligned; 1 103 1 104 declare token_characters_info_ptr pointer; 1 105 1 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 1 107 1 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 1 109 2 version char(8), 1 110 2 more_prompt char(80); 1 111 1 112 declare more_prompt_info_ptr pointer; 1 113 1 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 1 115 1 116 /* Line editor stuff ... */ 1 117 1 118 dcl line_editor_key_binding_info_ptr 1 119 pointer; 1 120 1 121 dcl line_editor_binding_count 1 122 fixed bin; 1 123 dcl line_editor_longest_sequence 1 124 fixed bin; 1 125 /* For each binding, action defines what to do for that sequence. Constants 1 126* are defined in window_editor_values.incl.pl1. Only if action is set to 1 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 1 128 1 129 dcl 1 line_editor_key_binding_info 1 130 aligned based (line_editor_key_binding_info_ptr), 1 131 2 version char(8), 1 132 2 binding_count fixed bin, 1 133 2 longest_sequence fixed bin, 1 134 2 bindings (line_editor_binding_count refer 1 135 (line_editor_key_binding_info.binding_count)), 1 136 3 sequence char(line_editor_longest_sequence refer 1 137 (line_editor_key_binding_info.longest_sequence)) varying, 1 138 3 action fixed bin, 1 139 3 numarg_action fixed binary, 1 140 3 editor_routine entry (pointer, fixed bin(35)), 1 141 3 name char (64) varying unaligned, 1 142 3 description char (256) varying unaligned, 1 143 3 info_path unaligned, 1 144 4 info_dir char (168), 1 145 4 info_entry char (32); 1 146 1 147 1 148 dcl line_editor_key_binding_info_version_3 1 149 char(8) static options (constant) init ("lekbi003"); 1 150 1 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 1 152 2 version char (8), 1 153 2 flags, 1 154 3 entire_state bit (1) unaligned, 1 155 3 mbz bit (35) unaligned, 1 156 2 key_binding_info_ptr ptr, 1 157 2 entire_state_ptr ptr; 1 158 1 159 dcl get_editor_key_bindings_info_ptr ptr; 1 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 1 161 1 162 dcl 1 set_editor_key_bindings_info aligned 1 163 based (set_editor_key_bindings_info_ptr), 1 164 2 version char (8), 1 165 2 flags, 1 166 3 replace bit (1) unaligned, 1 167 3 update bit (1) unaligned, 1 168 3 mbz bit (34) unaligned, 1 169 2 key_binding_info_ptr ptr; 1 170 1 171 dcl set_editor_key_bindings_info_ptr ptr; 1 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 1 173 1 174 /* This should be moved to window_info.incl.pl1 when that include file is 1 175* created. JR 2/1/84 */ 1 176 1 177 dcl 1 window_edit_line_info 1 178 based (window_edit_line_info_ptr), 1 179 2 version char (8), 1 180 2 line_ptr ptr, 1 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 1 182 1 183 dcl window_edit_line_info_version_1 1 184 char (8) static options (constant) init ("wedl0001"); 1 185 1 186 dcl window_edit_line_info_ptr 1 187 ptr; 1 188 1 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 118 119 120 end xmail_display_mlist_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/10/84 1509.5 xmail_display_mlist_.pl1 >spec>on>09/04/84-6762>xmail_display_mlist_.pl1 118 1 09/04/84 1513.8 window_control_info.incl.pl1 >spec>on>09/04/84-6762>window_control_info.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. LOG 000010 constant char(1) initial unaligned dcl 49 set ref 85* 93* MLIST_SUFFIX 000007 constant char(3) initial unaligned dcl 50 ref 110 113 113 NAME 000002 constant char(20) initial unaligned dcl 51 set ref 85* 93* P_code parameter fixed bin(35,0) dcl 90 set ref 88 93* P_dname parameter char unaligned dcl 21 set ref 11 61* P_ename parameter char unaligned dcl 21 set ref 11 61* 110 113 113 P_str parameter char unaligned dcl 91 set ref 88 93* READ 000001 constant bit(3) initial unaligned dcl 52 set ref 61* TERM_FILE_TERM 000000 constant bit(3) initial unaligned dcl 53 set ref 83* addr builtin function dcl 57 ref 108 108 auto_window_position_info 000130 automatic structure level 1 unaligned dcl 101 set ref 108 108 before builtin function dcl 57 ref 110 113 113 bit_count 000100 automatic fixed bin(24,0) dcl 25 set ref 61* 64 83* code 000137 automatic fixed bin(35,0) dcl 105 in procedure "format_and_display_header" set ref 108* 109 code 000101 automatic fixed bin(35,0) dcl 26 in procedure "xmail_display_mlist_" set ref 61* 70* 71 83* 85 85* divide builtin function dcl 57 ref 64 111 extent 3 000130 automatic structure level 2 unaligned dcl 101 initiate_file_ 000010 constant entry external dcl 33 ref 61 ioa_ 000012 constant entry external dcl 34 ref 113 iox_$control 000014 constant entry external dcl 35 ref 108 iox_$put_chars 000016 constant entry external dcl 36 ref 70 iox_$user_output 000030 external static pointer dcl 44 set ref 66* 70* 108* length builtin function dcl 57 ref 110 null builtin function dcl 57 ref 59 62 83 pad_len 000135 automatic fixed bin(17,0) dcl 103 set ref 111* 113* seg_len 000102 automatic fixed bin(21,0) dcl 27 set ref 64* 70* seg_ptr 000104 automatic pointer dcl 28 set ref 59* 61* 62 70* 83 83* terminate_file_ 000020 constant entry external dcl 37 ref 83 text_len 000136 automatic fixed bin(17,0) dcl 104 set ref 110* 111 version 000130 automatic fixed bin(17,0) level 2 dcl 101 set ref 107* width 3 000130 automatic fixed bin(17,0) level 3 dcl 101 set ref 111 window_$clear_window 000022 constant entry external dcl 38 ref 66 window_position_info based structure level 1 unaligned dcl 1-25 window_position_info_version constant fixed bin(17,0) initial dcl 1-35 ref 107 xmail_err_$int_prog_err 000032 external static fixed bin(35,0) dcl 45 set ref 62* 71* 109* xmail_error_$code_first 000024 constant entry external dcl 39 ref 93 xmail_error_$no_print 000026 constant entry external dcl 40 ref 85 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. break_table_info based structure level 1 dcl 1-76 break_table_info_version internal static fixed bin(17,0) initial dcl 1-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 1-80 break_table_ptr automatic pointer dcl 1-75 get_editor_key_bindings_info based structure level 1 dcl 1-151 get_editor_key_bindings_info_ptr automatic pointer dcl 1-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 1-160 line_editor_binding_count automatic fixed bin(17,0) dcl 1-121 line_editor_key_binding_info based structure level 1 dcl 1-129 line_editor_key_binding_info_ptr automatic pointer dcl 1-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 1-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 1-123 more_handler_info based structure level 1 dcl 1-83 more_handler_info_ptr automatic pointer dcl 1-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 1-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 1-94 more_prompt_info based structure level 1 dcl 1-108 more_prompt_info_ptr automatic pointer dcl 1-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 1-114 more_responses_info based structure level 1 dcl 1-59 more_responses_info_ptr automatic pointer dcl 1-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 1-67 more_responses_version internal static fixed bin(17,0) initial dcl 1-67 set_editor_key_bindings_info based structure level 1 dcl 1-162 set_editor_key_bindings_info_ptr automatic pointer dcl 1-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 1-172 token_characters_info based structure level 1 dcl 1-97 token_characters_info_ptr automatic pointer dcl 1-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 1-106 window_edit_line_info based structure level 1 unaligned dcl 1-177 window_edit_line_info_ptr automatic pointer dcl 1-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 1-183 window_position_info_ptr automatic pointer dcl 1-37 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 1-35 window_status_info based structure level 1 dcl 1-45 window_status_info_ptr automatic pointer dcl 1-43 window_status_version internal static fixed bin(17,0) initial dcl 1-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 1-52 NAMES DECLARED BY EXPLICIT CONTEXT. EXIT 000310 constant label dcl 75 ref 95 display_mlist_err 000376 constant entry internal dcl 88 ref 62 71 109 format_and_display_header 000446 constant entry internal dcl 99 ref 68 term_seg 000311 constant entry internal dcl 81 ref 73 94 xmail_display_mlist_ 000126 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 750 1004 607 760 Length 1214 607 34 173 140 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_display_mlist_ 237 external procedure is an external procedure. term_seg internal procedure shares stack frame of external procedure xmail_display_mlist_. display_mlist_err internal procedure shares stack frame of external procedure xmail_display_mlist_. format_and_display_header internal procedure shares stack frame of external procedure xmail_display_mlist_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xmail_display_mlist_ 000100 bit_count xmail_display_mlist_ 000101 code xmail_display_mlist_ 000102 seg_len xmail_display_mlist_ 000104 seg_ptr xmail_display_mlist_ 000130 auto_window_position_info format_and_display_header 000135 pad_len format_and_display_header 000136 text_len format_and_display_header 000137 code format_and_display_header THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry_desc set_cs_eis index_before_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. initiate_file_ ioa_ iox_$control iox_$put_chars terminate_file_ window_$clear_window xmail_error_$code_first xmail_error_$no_print THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_output xmail_err_$int_prog_err LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000122 59 000146 61 000150 62 000205 64 000231 66 000235 68 000247 70 000250 71 000265 73 000307 75 000310 81 000311 83 000312 85 000343 86 000375 88 000376 93 000407 94 000444 95 000445 99 000446 107 000447 108 000451 109 000503 110 000525 111 000545 113 000551 115 000605 ----------------------------------------------------------- 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