COMPILATION LISTING OF SEGMENT select Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/04/82 1716.7 mst Thu Options: optimize map 1 /* ************************************************************ 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980. * 6* * * 7* ************************************************************ */ 8 9 10 /* BSG 1/15/80 11* Cleaned up for installation, 23 December 1980, M. N. Davidoff. 12**/ 13 /* format: style2 */ 14 select: 15 procedure options (variable); 16 17 /* automatic */ 18 19 dcl afargl fixed bin (21); 20 dcl afargp ptr; 21 dcl afsw bit (1) aligned; 22 dcl argl fixed bin (21); 23 dcl argp ptr; 24 dcl code fixed bin (35); 25 dcl err entry options (variable) variable; 26 dcl err_suppress_name entry options (variable) variable; 27 dcl first bit (1) aligned; 28 dcl i fixed bin; 29 dcl nargs fixed bin; 30 dcl torf char (1500) varying; 31 dcl vargl fixed bin (21); 32 dcl vargp ptr; 33 34 /* based */ 35 36 dcl afarg char (afargl) based (afargp); 37 dcl arg char (argl) based (argp); 38 dcl varg char (vargl) varying based (vargp); 39 40 /* builtin */ 41 42 dcl null builtin; 43 44 /* internal static */ 45 46 dcl command char (6) internal static options (constant) initial ("select"); 47 48 /* external static */ 49 50 dcl error_table_$not_act_fnc 51 fixed bin (35) external static; 52 53 /* entry */ 54 55 dcl active_fnc_err_ entry options (variable); 56 dcl active_fnc_err_$af_suppress_name 57 entry options (variable); 58 dcl com_err_ entry options (variable); 59 dcl com_err_$suppress_name entry options (variable); 60 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 61 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 62 dcl cu_$evaluate_active_string 63 entry (ptr, char (*), fixed bin, char (*) varying, fixed bin (35)); 64 dcl ioa_$nnl entry options (variable); 65 dcl requote_string_ entry (char (*)) returns (char (*)); 66 1 1 /* BEGIN INCLUDE FILE ... cp_active_string_types.incl.pl1 */ 1 2 /* Created: 5 May 1980 by G. Palter */ 1 3 1 4 /* Types of active strings recognized by active string evaluation entries of the Multics command processor */ 1 5 1 6 dcl (DEFAULT_ACTIVE_STRING initial (0), /* default type: same as NORMAL_ACTIVE_STRING */ 1 7 NORMAL_ACTIVE_STRING initial (1), /* normal active string: [...] */ 1 8 TOKENS_ONLY_ACTIVE_STRING initial (2), /* rescan active string for whitespace and quotes: |[...] */ 1 9 ATOMIC_ACTIVE_STRING initial (3)) /* do not rescan anything in value: ||[...] */ 1 10 fixed binary static options (constant); 1 11 1 12 /* END INCLUDE FILE ... cp_active_string_types.incl.pl1 */ 67 68 69 /* program */ 70 71 call cu_$af_return_arg (nargs, vargp, vargl, code); 72 if code = 0 73 then do; 74 afsw = "1"b; 75 err = active_fnc_err_; 76 err_suppress_name = active_fnc_err_$af_suppress_name; 77 varg = ""; 78 end; 79 else if code = error_table_$not_act_fnc 80 then do; 81 afsw = "0"b; 82 err = com_err_; 83 err_suppress_name = com_err_$suppress_name; 84 end; 85 else do; 86 call com_err_ (code, command); 87 return; 88 end; 89 90 if nargs = 0 91 then do; 92 call err_suppress_name (0, command, "Usage: ^[[^]^a test_string {args}^[]^]", afsw, command, afsw); 93 return; 94 end; 95 96 call cu_$arg_ptr (1, afargp, afargl, code); 97 if code ^= 0 98 then do; 99 call err (code, command, "Argument 1."); 100 return; 101 end; 102 103 first = "1"b; 104 do i = 2 to nargs; 105 call cu_$arg_ptr (i, argp, argl, code); 106 if code ^= 0 107 then do; 108 call print_before_error; 109 call err (code, command, "Argument ^d.", i); 110 return; 111 end; 112 113 call cu_$evaluate_active_string (null, afarg || " " || requote_string_ (arg), NORMAL_ACTIVE_STRING, torf, code) 114 ; 115 if code ^= 0 116 then do; 117 call print_before_error; 118 call err (code, command, "[^a ^a]", afarg, requote_string_ (arg)); 119 return; 120 end; 121 122 if torf = "true" 123 then do; 124 if afsw 125 then do; 126 if ^first 127 then varg = varg || " "; 128 129 varg = varg || requote_string_ (arg); 130 end; 131 else call ioa_$nnl ("^[^x^]^a", ^first, arg); 132 133 first = "0"b; 134 end; 135 else if torf ^= "false" 136 then do; 137 call print_before_error; 138 call err (0, command, "Test result for argument ^d (^a) is neither ""true"" nor ""false"". ^a", i, 139 requote_string_ (arg), requote_string_ ((torf))); 140 return; 141 end; 142 end; 143 144 if ^afsw 145 then call ioa_$nnl ("^/"); 146 147 return; 148 149 print_before_error: 150 procedure; 151 152 if ^afsw & ^first 153 then call ioa_$nnl ("^/"); 154 end print_before_error; 155 156 end select; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1618.5 select.pl1 >dumps>old>recomp>select.pl1 67 1 09/22/80 1256.7 cp_active_string_types.incl.pl1 >ldd>include>cp_active_string_types.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. NORMAL_ACTIVE_STRING 000023 constant fixed bin(17,0) initial dcl 1-6 set ref 113* active_fnc_err_ 000012 constant entry external dcl 55 ref 75 active_fnc_err_$af_suppress_name 000014 constant entry external dcl 56 ref 76 afarg based char unaligned dcl 36 set ref 113 118* afargl 000100 automatic fixed bin(21,0) dcl 19 set ref 96* 113 118 118 afargp 000102 automatic pointer dcl 20 set ref 96* 113 118 afsw 000104 automatic bit(1) dcl 21 set ref 74* 81* 92* 92* 124 144 152 arg based char unaligned dcl 37 set ref 113* 118* 129* 131* 138* argl 000105 automatic fixed bin(21,0) dcl 22 set ref 105* 113 113 118 118 129 129 131 131 138 138 argp 000106 automatic pointer dcl 23 set ref 105* 113 118 129 131 138 code 000110 automatic fixed bin(35,0) dcl 24 set ref 71* 72 79 86* 96* 97 99* 105* 106 109* 113* 115 118* com_err_ 000016 constant entry external dcl 58 ref 82 86 com_err_$suppress_name 000020 constant entry external dcl 59 ref 83 command 000000 constant char(6) initial unaligned dcl 46 set ref 86* 92* 92* 99* 109* 118* 138* cu_$af_return_arg 000022 constant entry external dcl 60 ref 71 cu_$arg_ptr 000024 constant entry external dcl 61 ref 96 105 cu_$evaluate_active_string 000026 constant entry external dcl 62 ref 113 err 000112 automatic entry variable dcl 25 set ref 75* 82* 99 109 118 138 err_suppress_name 000116 automatic entry variable dcl 26 set ref 76* 83* 92 error_table_$not_act_fnc 000010 external static fixed bin(35,0) dcl 50 ref 79 first 000122 automatic bit(1) dcl 27 set ref 103* 126 131 133* 152 i 000123 automatic fixed bin(17,0) dcl 28 set ref 104* 105* 109* 138* ioa_$nnl 000030 constant entry external dcl 64 ref 131 144 152 nargs 000124 automatic fixed bin(17,0) dcl 29 set ref 71* 90 104 null builtin function dcl 42 ref 113 113 requote_string_ 000032 constant entry external dcl 65 ref 113 118 129 138 138 torf 000125 automatic varying char(1500) dcl 30 set ref 113* 122 135 138 varg based varying char dcl 38 set ref 77* 126* 126 129* 129 vargl 000715 automatic fixed bin(21,0) dcl 31 set ref 71* 77 126 129 vargp 000716 automatic pointer dcl 32 set ref 71* 77 126 126 129 129 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ATOMIC_ACTIVE_STRING internal static fixed bin(17,0) initial dcl 1-6 DEFAULT_ACTIVE_STRING internal static fixed bin(17,0) initial dcl 1-6 TOKENS_ONLY_ACTIVE_STRING internal static fixed bin(17,0) initial dcl 1-6 NAMES DECLARED BY EXPLICIT CONTEXT. print_before_error 001030 constant entry internal dcl 149 ref 108 117 137 select 000076 constant entry external dcl 14 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1212 1246 1055 1222 Length 1444 1055 34 162 134 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME select 558 external procedure is an external procedure. print_before_error internal procedure shares stack frame of external procedure select. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME select 000100 afargl select 000102 afargp select 000104 afsw select 000105 argl select 000106 argp select 000110 code select 000112 err select 000116 err_suppress_name select 000122 first select 000123 i select 000124 nargs select 000125 torf select 000715 vargl select 000716 vargp select THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ active_fnc_err_$af_suppress_name com_err_ com_err_$suppress_name cu_$af_return_arg cu_$arg_ptr cu_$evaluate_active_string ioa_$nnl requote_string_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$not_act_fnc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000075 71 000103 72 000117 74 000121 75 000123 76 000130 77 000133 78 000134 79 000135 81 000140 82 000141 83 000145 84 000150 86 000151 87 000165 90 000166 92 000170 93 000226 96 000227 97 000245 99 000247 100 000274 103 000275 104 000277 105 000306 106 000323 108 000325 109 000326 110 000356 113 000357 115 000467 117 000472 118 000473 119 000550 122 000552 124 000557 126 000562 129 000574 130 000635 131 000637 133 000670 134 000671 135 000672 137 000677 138 000700 140 001005 142 001007 144 001011 147 001027 149 001030 152 001031 154 001051 ----------------------------------------------------------- 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