COMPILATION LISTING OF SEGMENT cobol_blank_stripper_ Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 1027.7 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 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 15 /****^ HISTORY COMMENTS: 16* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8060), 17* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 18* MCR8060 cobol_blank_stripper_.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 03/06/81 by FCH, [4.4-1], last line not processed unless ends in c.r. char, BUG469(TR9264) */ 23 /* Modified on 10/03/79 by FCH, [4.0-1], ID field ignored */ 24 /* Created for Version 4.1 by FCH */ 25 26 /* format: style3 */ 27 cobol_blank_stripper_: 28 proc (in_ptr, out_ptr, bc); 29 30 dcl (to_offset, from_offset, ret_loc, i, line_size) 31 fixed bin (35); 32 dcl (non_blank, quotct) fixed bin (35); 33 dcl l_num fixed bin; 34 dcl bc fixed bin (24); 35 dcl (code, cct, rct) fixed bin (35); 36 37 dcl (argptr, l_ptr, in_ptr, out_ptr) 38 ptr; 39 40 dcl ch char (1); 41 42 dcl (divide, index, addr, substr) 43 builtin; 44 45 46 47 declare program char (cct) based (in_ptr); 48 declare prog_array (cct) char (1) based (in_ptr); 49 declare rest_prog char (rct) based (l_ptr); 50 declare ln (ret_loc) char (1) based (l_ptr); 51 52 53 cct = divide (bc, 9, 31, 0); 54 to_offset, from_offset = 1; 55 56 57 do while ("1"b); 58 59 if from_offset > cct 60 then do; 61 bc = to_offset * 9 - 9; 62 return; 63 end; 64 65 rct = cct - from_offset + 1; 66 l_ptr = addr (prog_array (from_offset)); 67 ret_loc = index (rest_prog, " 68 "); 69 70 if ret_loc <= 0 71 then do; /*[4.4-1]*/ 72 ret_loc = rct + 1; /*[4.4-1]*/ 73 call scan; 74 75 bc = to_offset * 9 - 9; 76 return; 77 end; 78 79 /*[4.4-1]*/ 80 call scan; 81 82 end; 83 84 /*[4.4-1]*/ 85 scan: 86 proc; 87 88 ret_loc = ret_loc - 1; 89 90 if ret_loc < 8 91 then call move (ret_loc, ret_loc); 92 else /*[4.0-1]*/ 93 line_size = ret_loc; 94 95 /*[4.0-1]*/ 96 if ret_loc = 80 97 then ret_loc = 72; 98 99 if ln (7) ^= " " /*[4.0-1]*/ 100 then call move (ret_loc, line_size); 101 else do; 102 quotct = 1; 103 non_blank = 0; 104 105 do i = ret_loc by -1 to 8; 106 107 ch = ln (i); 108 if ch = """" 109 then quotct = -quotct; 110 111 if non_blank = 0 112 then if ch ^= " " 113 then non_blank = i; 114 end; 115 116 if non_blank = 0 117 then call move (7, line_size); 118 else if quotct < 0 /*[4.0-1]*/ 119 then call move (ret_loc, line_size); /*[4.0-1]*/ 120 else call move (non_blank, line_size); 121 end; 122 end; 123 124 move: 125 proc (to_size, from_size); 126 127 declare (to_size, from_size) 128 fixed bin (35); 129 130 substr (out_ptr -> program, to_offset, to_size + 1) = substr (in_ptr -> program, from_offset, to_size) || " 131 "; 132 133 to_offset = to_offset + to_size + 1; 134 from_offset = from_offset + from_size + 1; 135 end; 136 137 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0837.0 cobol_blank_stripper_.pl1 >spec>install>MR12.3-1048>cobol_blank_stripper_.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. addr builtin function dcl 42 ref 66 bc parameter fixed bin(24,0) dcl 34 set ref 27 53 61* 75* cct 000107 automatic fixed bin(35,0) dcl 35 set ref 53* 59 65 130 130 ch 000114 automatic char(1) packed unaligned dcl 40 set ref 107* 108 111 divide builtin function dcl 42 ref 53 from_offset 000101 automatic fixed bin(35,0) dcl 30 set ref 54* 59 65 66 130 134* 134 from_size parameter fixed bin(35,0) dcl 127 ref 124 134 i 000103 automatic fixed bin(35,0) dcl 30 set ref 105* 107 111* in_ptr parameter pointer dcl 37 ref 27 66 130 index builtin function dcl 42 ref 67 l_ptr 000112 automatic pointer dcl 37 set ref 66* 67 99 107 line_size 000104 automatic fixed bin(35,0) dcl 30 set ref 92* 99* 116* 118* 120* ln based char(1) array packed unaligned dcl 50 ref 99 107 non_blank 000105 automatic fixed bin(35,0) dcl 32 set ref 103* 111 111* 116 120* out_ptr parameter pointer dcl 37 ref 27 130 prog_array based char(1) array packed unaligned dcl 48 set ref 66 program based char packed unaligned dcl 47 set ref 130* 130 quotct 000106 automatic fixed bin(35,0) dcl 32 set ref 102* 108* 108 118 rct 000110 automatic fixed bin(35,0) dcl 35 set ref 65* 67 72 rest_prog based char packed unaligned dcl 49 ref 67 ret_loc 000102 automatic fixed bin(35,0) dcl 30 set ref 67* 70 72* 88* 88 90 90* 90* 92 96 96* 99* 105 118* substr builtin function dcl 42 set ref 130* 130 to_offset 000100 automatic fixed bin(35,0) dcl 30 set ref 54* 61 75 130 133* 133 to_size parameter fixed bin(35,0) dcl 127 ref 124 130 130 133 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. argptr automatic pointer dcl 37 code automatic fixed bin(35,0) dcl 35 l_num automatic fixed bin(17,0) dcl 33 NAMES DECLARED BY EXPLICIT CONTEXT. cobol_blank_stripper_ 000007 constant entry external dcl 27 move 000217 constant entry internal dcl 124 ref 90 99 116 118 120 scan 000111 constant entry internal dcl 85 ref 73 80 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 356 366 327 366 Length 534 327 10 132 27 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_blank_stripper_ 93 external procedure is an external procedure. scan internal procedure shares stack frame of external procedure cobol_blank_stripper_. move internal procedure shares stack frame of external procedure cobol_blank_stripper_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_blank_stripper_ 000100 to_offset cobol_blank_stripper_ 000101 from_offset cobol_blank_stripper_ 000102 ret_loc cobol_blank_stripper_ 000103 i cobol_blank_stripper_ 000104 line_size cobol_blank_stripper_ 000105 non_blank cobol_blank_stripper_ 000106 quotct cobol_blank_stripper_ 000107 cct cobol_blank_stripper_ 000110 rct cobol_blank_stripper_ 000112 l_ptr cobol_blank_stripper_ 000114 ch cobol_blank_stripper_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp return_mac shorten_stack ext_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 27 000003 53 000014 54 000020 57 000023 59 000024 61 000027 62 000036 65 000037 66 000046 67 000056 70 000070 72 000071 73 000075 75 000076 76 000105 80 000106 82 000107 137 000110 85 000111 88 000112 90 000120 92 000125 96 000126 99 000133 102 000143 103 000145 105 000146 107 000153 108 000160 111 000165 114 000173 116 000200 118 000207 120 000214 122 000216 124 000217 130 000221 133 000257 134 000265 135 000272 ----------------------------------------------------------- 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