COMPILATION LISTING OF SEGMENT iox_measure_options Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 0959.1 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,inddcls,^ifthendo,^indproc,indcom,^indblkcom,declareind8,dclind4 */ 10 11 iox_measure_options: proc (arg_description, arg_n_options, arg_max_option_len, arg_code); 12 13 /* Removed from attach_name.pl1 4/83 by S. Krupp. */ 14 15 /* Automatic */ 16 17 dcl as fixed bin; 18 dcl code fixed bin; 19 dcl descrip char (length (arg_description)) var; 20 dcl i fixed bin; 21 dcl m fixed bin; 22 dcl t fixed bin; 23 dcl tn fixed bin; 24 dcl ts fixed bin; 25 dcl x fixed bin; 26 dcl y fixed bin; 27 28 /* Builtin */ 29 30 dcl (index, length, ltrim, max, rtrim, search, substr, verify) builtin; 31 32 /* Parameter */ 33 34 dcl arg_code fixed bin (35); 35 dcl arg_description char (*); 36 dcl arg_max_option_len fixed bin; 37 dcl arg_n_options fixed bin; 38 39 /* Static */ 40 41 dcl error_table_$unbalanced_quotes fixed bin (35) ext static; 42 43 arg_n_options = 0; 44 arg_max_option_len = 0; 45 arg_code = 0; 46 47 descrip = ltrim (rtrim (arg_description)); 48 49 if descrip = "" 50 then return; /* Nothing to scan. */ 51 52 /* Scan the description string, counting tokens (tn) and remembering the 53* longest length (m). */ 54 55 56 code = 0; 57 tn = 0; 58 m = 0; 59 ts = 1; 60 61 more: 62 as = 1; 63 i = verify (substr (descrip, ts), " ") - 1; /* Skip over blanks and tabs */ 64 if i < 0 then goto done; 65 ts = ts + i; 66 tn = tn + 1; 67 68 continue: 69 x = search (substr (descrip, ts), " "" ") - 1;/* quotes, blanks, and tabs */ 70 if x < 0 then goto done; 71 72 as = as + x; 73 t = ts + x + 1; 74 if substr (descrip, t - 1, 1) = """" /* terminator found was a quote */ 75 then do; 76 pass: 77 y = index (substr (descrip, t), """") - 1; /* search for matching quote */ 78 if y < 0 79 then do; 80 code = error_table_$unbalanced_quotes; 81 goto ERROR_RETURN; 82 end; 83 84 as = as + y; 85 ts = t + y + 1; 86 if ts <= length (descrip) 87 then if substr (descrip, ts, 1) = """" /* double quote encountered */ 88 then do; 89 as = as + 1; 90 t = ts + 1; 91 x = 0; 92 goto pass; 93 end; 94 goto continue; 95 end; 96 ts = t; 97 m = max (m, as - 1); 98 goto more; 99 100 done: 101 m = max (m, as + length (descrip) - ts); 102 103 arg_n_options = tn; 104 arg_max_option_len = m; 105 106 ERROR_RETURN: 107 108 arg_code = code; 109 110 end iox_measure_options; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0804.2 iox_measure_options.pl1 >spec>install>1111>iox_measure_options.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. arg_code parameter fixed bin(35,0) dcl 34 set ref 11 45* 106* arg_description parameter char packed unaligned dcl 35 ref 11 19 47 arg_max_option_len parameter fixed bin(17,0) dcl 36 set ref 11 44* 104* arg_n_options parameter fixed bin(17,0) dcl 37 set ref 11 43* 103* as 000100 automatic fixed bin(17,0) dcl 17 set ref 61* 72* 72 84* 84 89* 89 97 100 code 000101 automatic fixed bin(17,0) dcl 18 set ref 56* 80* 106 descrip 000102 automatic varying char dcl 19 set ref 47* 49 63 68 74 76 86 86 100 error_table_$unbalanced_quotes 000010 external static fixed bin(35,0) dcl 41 ref 80 i 000102 automatic fixed bin(17,0) dcl 20 set ref 63* 64 65 index builtin function dcl 30 ref 76 length builtin function dcl 30 ref 19 86 100 ltrim builtin function dcl 30 ref 47 m 000103 automatic fixed bin(17,0) dcl 21 set ref 58* 97* 97 100* 100 104 max builtin function dcl 30 ref 97 100 rtrim builtin function dcl 30 ref 47 search builtin function dcl 30 ref 68 substr builtin function dcl 30 ref 63 68 74 76 86 t 000104 automatic fixed bin(17,0) dcl 22 set ref 73* 74 76 85 90* 96 tn 000105 automatic fixed bin(17,0) dcl 23 set ref 57* 66* 66 103 ts 000106 automatic fixed bin(17,0) dcl 24 set ref 59* 63 65* 65 68 73 85* 86 86 90 96* 100 verify builtin function dcl 30 ref 63 x 000107 automatic fixed bin(17,0) dcl 25 set ref 68* 70 72 73 91* y 000110 automatic fixed bin(17,0) dcl 26 set ref 76* 78 84 85 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 000260 constant label dcl 106 ref 81 continue 000137 constant label dcl 68 ref 94 done 000244 constant label dcl 100 ref 64 70 iox_measure_options 000011 constant entry external dcl 11 more 000112 constant label dcl 61 ref 98 pass 000170 constant label dcl 76 ref 92 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 730 742 665 740 Length 1110 665 12 131 42 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME iox_measure_options 81 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME iox_measure_options 000100 as iox_measure_options 000101 code iox_measure_options 000102 descrip iox_measure_options 000102 i iox_measure_options 000103 m iox_measure_options 000104 t iox_measure_options 000105 tn iox_measure_options 000106 ts iox_measure_options 000107 x iox_measure_options 000110 y iox_measure_options THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. return_mac alloc_auto_adj ext_entry_desc NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unbalanced_quotes LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000004 19 000024 43 000037 44 000041 45 000042 47 000043 49 000100 56 000105 57 000106 58 000107 59 000110 61 000112 63 000114 64 000134 65 000135 66 000136 68 000137 70 000157 72 000160 73 000161 74 000164 76 000170 78 000207 80 000210 81 000213 84 000214 85 000215 86 000220 89 000226 90 000227 91 000231 92 000232 94 000233 96 000234 97 000235 98 000243 100 000244 103 000253 104 000256 106 000260 110 000263 ----------------------------------------------------------- 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