COMPILATION LISTING OF SEGMENT test_match_star_name Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1648.1 mst Tue Options: optimize map 1 /****^ ***************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright (C) 1986 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems Inc. * 7* * * 8* ***************************************************** */ 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-08-19,JSLove), approve(86-08-19,MCR7518), 12* audit(86-08-20,Parisek), install(86-10-02,MR12.0-1175): 13* Created as a tool to verify that the current and future versions of 14* match_star_name_ and check_star_name_ work properly. 15* 2) change(87-06-01,GDixon), approve(87-07-08,MCR7740), 16* audit(87-07-15,Hartogs), install(87-08-04,MR12.1-1055): 17* A) Modified to properly declare check_star_name_. 18* END HISTORY COMMENTS */ 19 20 /* format: style3,ifthenstmt,indcomtxt,indproc,idind30 */ 21 22 test_match_star_name: 23 procedure () options (variable); 24 25 declare (addcharno, character, index, ltrim, rtrim, substr) 26 builtin; 27 28 declare arg_count fixed bin (17), 29 arg_len fixed bin (21), 30 arg_ptr ptr, 31 argx fixed bin (17), 32 charx fixed bin (17), 33 check_star_type fixed bin (2), 34 check_status fixed bin (35), 35 entry_star_type fixed bin (2), 36 entry_status fixed bin (35), 37 idx fixed bin (17), 38 invert bit (1) aligned, 39 mask bit (36), 40 match_status fixed bin (35), 41 path_star_type fixed bin (2), 42 path_status fixed bin (35), 43 self_status fixed bin (35), 44 star_mask bit (36) aligned, 45 star_type fixed bin (2), 46 status fixed bin (35), 47 star_len fixed bin (21), 48 star_ptr ptr, 49 whoami char (32); 50 51 declare arg char (arg_len) based (arg_ptr), 52 star char (star_len) based (star_ptr); 53 54 declare ( 55 error_table_$archive_pathname, 56 error_table_$bad_arg, 57 error_table_$bad_file_name, 58 error_table_$badequal, 59 error_table_$badpath, 60 error_table_$badstar, 61 error_table_$entlong, 62 error_table_$inconsistent, 63 error_table_$invalid_ascii, 64 error_table_$nomatch, 65 error_table_$nostars, 66 error_table_$null_name_component 67 ) fixed bin (35) external; 68 69 declare check_star_name_ entry (char (*), bit (36), fixed bin (2), fixed bin (35)), 70 check_star_name_$entry entry (char (*), fixed bin (35)), 71 check_star_name_$path entry (char (*), fixed bin (35)), 72 com_err_ entry () options (variable), 73 com_err_$suppress_name entry () options (variable), 74 convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned), 75 cu_$arg_count entry (fixed bin (17), fixed bin (35)), 76 cu_$arg_ptr entry (fixed bin (17), ptr, fixed bin (21), fixed bin (35)), 77 ioa_ entry () options (variable), 78 match_star_name_ entry (char (*), char (*), fixed bin (35)), 79 requote_string_ entry (char (*)) returns (char (*)); 80 1 1 /* BEGIN: check_star_name.incl.pl1 * * * * * */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-08-14,JSLove), approve(86-08-14,MCR7518), 1 5* audit(86-08-14,FCSmith), install(86-10-02,MR12.0-1174): 1 6* Created, to support check_star_name_ entrypoint. 1 7* 2) change(87-06-01,GDixon), approve(87-07-13,MCR7740), 1 8* audit(87-06-24,Hartogs), install(87-08-04,MR12.1-1056): 1 9* Change structures and bit structures to be unaligned, to match the 1 10* check_star_name_ parameters to which such strings are passed. 1 11* END HISTORY COMMENTS */ 1 12 1 13 /* format: style3,comcol71,ifthenstmt,indcomtxt,indproc,idind30 */ 1 14 1 15 declare 1 check_star aligned based, 1 16 2 reject_wild bit (1) unaligned, 1 17 2 ignore_archive bit (1) unaligned, 1 18 2 process_archive bit (1) unaligned, 1 19 2 ignore_entrypoint bit (1) unaligned, 1 20 2 process_entrypoint bit (1) unaligned, 1 21 2 ignore_path bit (1) unaligned, 1 22 2 process_path bit (1) unaligned, 1 23 2 ignore_equal bit (1) unaligned, 1 24 2 ignore_length bit (1) unaligned, 1 25 2 ignore_nonascii bit (1) unaligned, 1 26 2 ignore_null bit (1) unaligned, 1 27 2 unimplemented bit (25) unaligned; 1 28 1 29 declare ( 1 30 CHECK_STAR_ENTRY_DEFAULT initial ("00010001000"b), /* Behavior of check_star_name_$entry (obsolete). */ 1 31 CHECK_STAR_IGNORE_ALL initial ("01010101111"b), /* Check for *** and classify only. */ 1 32 CHECK_STAR_IGNORE_ARCHIVE initial ("01000000000"b), /* Do not reject archive convention "::". */ 1 33 CHECK_STAR_IGNORE_ENTRYPOINT initial ("00010000000"b), /* Do not reject "$" or "|" characters. */ 1 34 CHECK_STAR_IGNORE_EQUAL initial ("00000001000"b), /* Do not reject "=" or "%" characters. */ 1 35 CHECK_STAR_IGNORE_LENGTH initial ("00000000100"b), /* Do not reject star names longer than 32 chars. */ 1 36 CHECK_STAR_IGNORE_NONASCII initial ("00000000010"b), /* No not reject star names with nonASCII chars. */ 1 37 CHECK_STAR_IGNORE_NULL initial ("00000000001"b), /* Do not reject names with null components. */ 1 38 CHECK_STAR_IGNORE_PATH initial ("00000100000"b), /* Do not reject "<" or ">" characters. */ 1 39 CHECK_STAR_PATH_DEFAULT initial ("00110011100"b), /* Behavior of check_star_name_$path (obsolete). */ 1 40 CHECK_STAR_PROCESS_ARCHIVE initial ("00100000000"b), /* Process "::" as archive delimiter. */ 1 41 CHECK_STAR_PROCESS_ENTRYPOINT initial ("00001000000"b), /* Ignore trailing entrypoint if present. */ 1 42 CHECK_STAR_PROCESS_PATH initial ("00000010000"b), /* Ignore leading directory path if present. */ 1 43 CHECK_STAR_REJECT_WILD initial ("10000000000"b), /* Return error_table_$nostars if type not zero. */ 1 44 CHECK_STAR_UNIMPLEMENTED initial ("001FFFFFF"b4) /* Nonexistent test flags. Reject them. */ 1 45 ) bit (36) static options (constant); 1 46 1 47 declare ( 1 48 STAR_TYPE_MATCHES_EVERYTHING initial (2), 1 49 STAR_TYPE_USE_MATCH_PROCEDURE initial (1), 1 50 STAR_TYPE_USE_PL1_COMPARE initial (0) 1 51 ) fixed bin (2) static options (constant); 1 52 1 53 /* END OF: check_star_name.incl.pl1 * * * * * */ 81 82 83 whoami = "test_match_star_name"; 84 85 call cu_$arg_count (arg_count, status); 86 if status ^= 0 87 then do; 88 call com_err_ (status, whoami); 89 return; 90 end; 91 92 if arg_count < 2 93 then do; 94 call com_err_$suppress_name (0, whoami, "Usage: ^a key starname {matchnames}", whoami); 95 return; 96 end; 97 98 call cu_$arg_ptr (1, arg_ptr, arg_len, (0)); 99 if arg_len = 0 then go to INVALID_KEYWORD; 100 101 idx = index ("012", substr (arg, 1, 1)) - 1; 102 if idx >= 0 103 then do; 104 check_star_type, entry_star_type, path_star_type = idx; 105 check_status, entry_status, match_status, path_status, self_status = 0; 106 end; 107 else if substr (arg, 1, 1) = "b" 108 then do; 109 check_star_type, entry_star_type, path_star_type = 0; 110 check_status, entry_status, match_status, path_status, self_status = error_table_$badstar; 111 end; 112 else go to INVALID_KEYWORD; 113 114 if arg_len = 1 then go to DO_TEST; 115 charx = 2; 116 117 idx = index ("012", substr (arg, charx, 1)) - 1; 118 if idx >= 0 119 then do; 120 entry_star_type = idx; 121 entry_status = 0; 122 end; 123 else if substr (arg, charx, 1) = "b" 124 then do; 125 entry_star_type = 0; 126 entry_status = error_table_$badstar; 127 end; 128 else go to CHECK_NOMATCH; 129 130 if arg_len = charx then go to DO_TEST; 131 charx = charx + 1; 132 133 idx = index ("012", substr (arg, charx, 1)) - 1; 134 if idx >= 0 135 then do; 136 path_star_type = idx; 137 path_status = 0; 138 end; 139 else if substr (arg, charx, 1) = "b" 140 then do; 141 path_star_type = 0; 142 path_status = error_table_$badstar; 143 end; 144 else go to CHECK_NOMATCH; 145 146 if charx = arg_len then go to DO_TEST; 147 charx = charx + 1; 148 149 CHECK_NOMATCH: 150 if substr (arg, charx) = "n" 151 then match_status = error_table_$nomatch; 152 else do; 153 INVALID_KEYWORD: 154 call com_err_ (0, whoami, "Invalid key ^a.", requote_string_ (rtrim (arg))); 155 return; 156 end; 157 158 DO_TEST: 159 call cu_$arg_ptr (2, star_ptr, star_len, (0)); 160 161 call check_star_name_ (star, CHECK_STAR_IGNORE_ALL, star_type, status); 162 if star_type ^= check_star_type | status ^= check_status 163 then call error ("CHECK", check_star_type, check_status); 164 165 call check_star_name_$entry (star, status); 166 if status >= 0 & status <= 2 167 then do; 168 star_type = status; 169 status = 0; 170 end; 171 else star_type = 0; 172 if star_type ^= entry_star_type | status ^= entry_status 173 then call error ("ENTRY", entry_star_type, entry_status); 174 175 call check_star_name_$path (star, status); 176 if status >= 0 & status <= 2 177 then do; 178 star_type = status; 179 status = 0; 180 end; 181 else star_type = 0; 182 if star_type ^= path_star_type | status ^= path_status then call error ("PATH", path_star_type, path_status); 183 184 star_type = -1; 185 call match_star_name_ (star, star, status); 186 if status ^= self_status then call error ("SELF", -1, self_status); 187 188 do argx = 3 to arg_count; 189 190 call cu_$arg_ptr (argx, arg_ptr, arg_len, (0)); 191 192 call match_star_name_ (arg, star, status); 193 if status ^= match_status then call error ("MATCH", -1, match_status); 194 end; 195 196 return; 197 198 error: 199 procedure (test, expected_star_type, expected_status); 200 201 declare test char (*) parameter, 202 expected_star_type fixed bin (2) parameter, 203 expected_status fixed bin (35) parameter; 204 205 declare actual_message char (256) varying, 206 expected_message char (256) varying; 207 208 call classify_status (star_type, expected_star_type, status, expected_status, actual_message); 209 if expected_star_type = -1 210 then call classify_status (expected_star_type, expected_star_type, expected_status, expected_status + 1, 211 expected_message); 212 else call classify_status (expected_star_type, expected_star_type + 1, expected_status, expected_status + 1, 213 expected_message); 214 215 if test = "MATCH" 216 then call ioa_ ("^a:^9t^a expected ^a got ^a with ^a.", test, requote_string_ (star), expected_message, 217 actual_message, requote_string_ (arg)); 218 else call ioa_ ("^a:^9t^a expected ^a got ^a.", test, requote_string_ (star), expected_message, actual_message) 219 ; 220 221 return; 222 223 end error; 224 225 classify_status: 226 procedure (star_type, expected_star_type, status, expected_status, message); 227 228 declare star_type fixed bin (2) parameter, 229 expected_star_type fixed bin (2) parameter, 230 status fixed bin (35) parameter, 231 expected_status fixed bin (35) parameter, 232 message char (256) varying parameter; 233 234 declare buffer char (100) aligned; 235 236 if star_type = expected_star_type 237 then message = ""; 238 else do; 239 if star_type = 0 then message = "type 0"; 240 else if star_type = 1 then message = "type 1"; 241 else if star_type = 2 then message = "type 2"; 242 else message = "invalid type " || ltrim (character (star_type)); 243 244 if status = expected_status then return; 245 246 message = message || " with "; 247 end; 248 249 if status = 0 then message = message || "NO_ERROR"; 250 else if status = error_table_$archive_pathname then message = message || "ARCHIVE_PATHNAME"; 251 else if status = error_table_$bad_arg then message = message || "BAD_ARG"; 252 else if status = error_table_$bad_file_name then message = message || "BAD_FILE_NAME"; 253 else if status = error_table_$badequal then message = message || "BADEQUAL"; 254 else if status = error_table_$badpath then message = message || "BADPATH"; 255 else if status = error_table_$badstar then message = message || "BADSTAR"; 256 else if status = error_table_$entlong then message = message || "ENTLONG"; 257 else if status = error_table_$inconsistent then message = message || "INCONSISTENT"; 258 else if status = error_table_$invalid_ascii then message = message || "INVALID_ASCII"; 259 else if status = error_table_$nomatch then message = message || "NOMATCH"; 260 else if status = error_table_$nostars then message = message || "NOSTARS"; 261 else if status = error_table_$null_name_component then message = message || "NULL_NAME_COMPONENT"; 262 else do; 263 call convert_status_code_ (status, (""), buffer); 264 message = message || "unexpected "; 265 message = message || requote_string_ (rtrim (buffer)); 266 end; 267 268 return; 269 270 end classify_status; 271 272 test_check_star_name: 273 entry () options (variable); 274 275 whoami = "test_check_star_name"; 276 277 call cu_$arg_count (arg_count, status); 278 if status ^= 0 279 then do; 280 call com_err_ (status, whoami); 281 return; 282 end; 283 284 if arg_count ^= 4 285 then do; 286 call com_err_$suppress_name (0, whoami, "Usage: ^a starname mask_list type code", whoami); 287 return; 288 end; 289 290 call cu_$arg_ptr (2, arg_ptr, arg_len, (0)); 291 292 mask = ""b; 293 do while (arg_len > 0); 294 295 star_len = index (arg, ",") - 1; 296 if star_len < 0 then star_len = arg_len; 297 if star_len = 0 298 then do; 299 call com_err_ (0, whoami, "Bad syntax in mask_list ^a.", requote_string_ (arg)); 300 return; 301 end; 302 303 star_ptr = arg_ptr; 304 arg_len = arg_len - star_len - 1; 305 arg_ptr = addcharno (arg_ptr, star_len + 1); 306 307 invert = "0"b; 308 if substr (star, 1, 1) = "^" 309 then do; 310 invert = "1"b; 311 star_len = star_len - 1; 312 star_ptr = addcharno (star_ptr, 1); 313 end; 314 315 if star = "entry_default" then star_mask = CHECK_STAR_ENTRY_DEFAULT; 316 else if star = "ignore_all" then star_mask = CHECK_STAR_IGNORE_ALL; 317 else if star = "ignore_archive" then star_mask = CHECK_STAR_IGNORE_ARCHIVE; 318 else if star = "ignore_entrypoint" then star_mask = CHECK_STAR_IGNORE_ENTRYPOINT; 319 else if star = "ignore_equal" then star_mask = CHECK_STAR_IGNORE_EQUAL; 320 else if star = "ignore_length" then star_mask = CHECK_STAR_IGNORE_LENGTH; 321 else if star = "ignore_nonascii" then star_mask = CHECK_STAR_IGNORE_NONASCII; 322 else if star = "ignore_null" then star_mask = CHECK_STAR_IGNORE_NULL; 323 else if star = "ignore_path" then star_mask = CHECK_STAR_IGNORE_PATH; 324 else if star = "process_archive" then star_mask = CHECK_STAR_PROCESS_ARCHIVE; 325 else if star = "path_default" then star_mask = CHECK_STAR_PATH_DEFAULT; 326 else if star = "process_entrypoint" then star_mask = CHECK_STAR_PROCESS_ENTRYPOINT; 327 else if star = "process_path" then star_mask = CHECK_STAR_PROCESS_PATH; 328 else if star = "reject_wild" then star_mask = CHECK_STAR_REJECT_WILD; 329 else if star = "unimplemented" then star_mask = CHECK_STAR_UNIMPLEMENTED; 330 else do; 331 call com_err_ (0, whoami, "Invalid mask keyword ^a.", requote_string_ (star)); 332 return; 333 end; 334 335 if invert 336 then mask = mask & ^star_mask; 337 else mask = mask | star_mask; 338 end; 339 340 call cu_$arg_ptr (3, arg_ptr, arg_len, (0)); 341 342 if arg = "0" | arg = "pl1" | arg = "pl/1" | arg = "PL1" | arg = "PL/I" 343 then check_star_type = STAR_TYPE_USE_PL1_COMPARE; 344 else if arg = "1" | arg = "match" | arg = "MATCH" then check_star_type = STAR_TYPE_USE_MATCH_PROCEDURE; 345 else if arg = "2" | arg = "any" | arg = "ANY" | arg = "every" | arg = "EVERY" 346 then check_star_type = STAR_TYPE_MATCHES_EVERYTHING; 347 else do; 348 call com_err_ (0, whoami, "Invalid star type keyword ^a.", requote_string_ (arg)); 349 return; 350 end; 351 352 call cu_$arg_ptr (4, arg_ptr, arg_len, (0)); 353 354 if arg = "0" | arg = "no_error" | arg = "NO_ERROR" then check_status = 0; 355 else if arg = "archive_pathname" | arg = "ARCHIVE_PATHNAME" then check_status = error_table_$archive_pathname; 356 else if arg = "bad_arg" | arg = "BAD_ARG" then check_status = error_table_$bad_arg; 357 else if arg = "bad_file_name" | arg = "BAD_FILE_NAME" then check_status = error_table_$bad_file_name; 358 else if arg = "badequal" | arg = "BADEQUAL" then check_status = error_table_$badequal; 359 else if arg = "badpath" | arg = "BADPATH" then check_status = error_table_$badpath; 360 else if arg = "badstar" | arg = "BADSTAR" then check_status = error_table_$badstar; 361 else if arg = "entlong" | arg = "ENTLONG" then check_status = error_table_$entlong; 362 else if arg = "inconsistent" | arg = "INCONSISTENT" then check_status = error_table_$inconsistent; 363 else if arg = "invalid_ascii" | arg = "INVALID_ASCII" then check_status = error_table_$invalid_ascii; 364 else if arg = "nostars" | arg = "NOSTARS" then check_status = error_table_$nostars; 365 else if arg = "null_name_component" | arg = "NULL_NAME_COMPONENT" 366 then check_status = error_table_$null_name_component; 367 else do; 368 call com_err_ (0, whoami, "Invalid error keyword ^a.", requote_string_ (arg)); 369 return; 370 end; 371 372 call cu_$arg_ptr (1, star_ptr, star_len, (0)); 373 374 call check_star_name_ (star, mask, star_type, status); 375 376 if star_type ^= check_star_type | status ^= check_status 377 then call error ("CHECK", check_star_type, check_status); 378 379 return; 380 381 end test_match_star_name; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1222.2 test_match_star_name.pl1 >special_ldd>install>MR12.1-1054>test_match_star_name.pl1 81 1 08/04/87 1140.3 check_star_name.incl.pl1 >spec>install>1056>check_star_name.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. CHECK_STAR_ENTRY_DEFAULT constant bit(36) initial unaligned dcl 1-29 ref 315 CHECK_STAR_IGNORE_ALL 000001 constant bit(36) initial unaligned dcl 1-29 set ref 161* 316 CHECK_STAR_IGNORE_ARCHIVE constant bit(36) initial unaligned dcl 1-29 ref 317 CHECK_STAR_IGNORE_ENTRYPOINT constant bit(36) initial unaligned dcl 1-29 ref 318 CHECK_STAR_IGNORE_EQUAL constant bit(36) initial unaligned dcl 1-29 ref 319 CHECK_STAR_IGNORE_LENGTH constant bit(36) initial unaligned dcl 1-29 ref 320 CHECK_STAR_IGNORE_NONASCII constant bit(36) initial unaligned dcl 1-29 ref 321 CHECK_STAR_IGNORE_NULL constant bit(36) initial unaligned dcl 1-29 ref 322 CHECK_STAR_IGNORE_PATH constant bit(36) initial unaligned dcl 1-29 ref 323 CHECK_STAR_PATH_DEFAULT constant bit(36) initial unaligned dcl 1-29 ref 325 CHECK_STAR_PROCESS_ARCHIVE constant bit(36) initial unaligned dcl 1-29 ref 324 CHECK_STAR_PROCESS_ENTRYPOINT constant bit(36) initial unaligned dcl 1-29 ref 326 CHECK_STAR_PROCESS_PATH constant bit(36) initial unaligned dcl 1-29 ref 327 CHECK_STAR_REJECT_WILD constant bit(36) initial unaligned dcl 1-29 ref 328 CHECK_STAR_UNIMPLEMENTED 000000 constant bit(36) initial unaligned dcl 1-29 ref 329 STAR_TYPE_MATCHES_EVERYTHING constant fixed bin(2,0) initial dcl 1-47 ref 345 STAR_TYPE_USE_MATCH_PROCEDURE constant fixed bin(2,0) initial dcl 1-47 ref 344 STAR_TYPE_USE_PL1_COMPARE constant fixed bin(2,0) initial dcl 1-47 ref 342 actual_message 000150 automatic varying char(256) dcl 205 set ref 208* 215* 218* addcharno builtin function dcl 25 ref 305 312 arg based char unaligned dcl 51 set ref 101 107 117 123 133 139 149 153 153 192* 215* 295 299* 342 342 342 342 342 344 344 344 345 345 345 345 345 348* 354 354 354 355 355 356 356 357 357 358 358 359 359 360 360 361 361 362 362 363 363 364 364 365 365 368* arg_count 000100 automatic fixed bin(17,0) dcl 28 set ref 85* 92 188 277* 284 arg_len 000101 automatic fixed bin(21,0) dcl 28 set ref 98* 99 101 107 114 117 123 130 133 139 146 149 153 153 190* 192 192 215 215 290* 293 295 296 299 299 304* 304 340* 342 342 342 342 342 344 344 344 345 345 345 345 345 348 348 352* 354 354 354 355 355 356 356 357 357 358 358 359 359 360 360 361 361 362 362 363 363 364 364 365 365 368 368 arg_ptr 000102 automatic pointer dcl 28 set ref 98* 101 107 117 123 133 139 149 153 153 190* 192 215 290* 295 299 303 305* 305 340* 342 342 342 342 342 344 344 344 345 345 345 345 345 348 352* 354 354 354 355 355 356 356 357 357 358 358 359 359 360 360 361 361 362 362 363 363 364 364 365 365 368 argx 000104 automatic fixed bin(17,0) dcl 28 set ref 188* 190* buffer 000360 automatic char(100) dcl 234 set ref 263* 265 265 character builtin function dcl 25 ref 242 charx 000105 automatic fixed bin(17,0) dcl 28 set ref 115* 117 123 130 131* 131 133 139 146 147* 147 149 check_star_name_ 000040 constant entry external dcl 69 ref 161 374 check_star_name_$entry 000042 constant entry external dcl 69 ref 165 check_star_name_$path 000044 constant entry external dcl 69 ref 175 check_star_type 000106 automatic fixed bin(2,0) dcl 28 set ref 104* 109* 162 162* 342* 344* 345* 376 376* check_status 000107 automatic fixed bin(35,0) dcl 28 set ref 105* 110* 162 162* 354* 355* 356* 357* 358* 359* 360* 361* 362* 363* 364* 365* 376 376* com_err_ 000046 constant entry external dcl 69 ref 88 153 280 299 331 348 368 com_err_$suppress_name 000050 constant entry external dcl 69 ref 94 286 convert_status_code_ 000052 constant entry external dcl 69 ref 263 cu_$arg_count 000054 constant entry external dcl 69 ref 85 277 cu_$arg_ptr 000056 constant entry external dcl 69 ref 98 158 190 290 340 352 372 entry_star_type 000110 automatic fixed bin(2,0) dcl 28 set ref 104* 109* 120* 125* 172 172* entry_status 000111 automatic fixed bin(35,0) dcl 28 set ref 105* 110* 121* 126* 172 172* error_table_$archive_pathname 000010 external static fixed bin(35,0) dcl 54 ref 250 355 error_table_$bad_arg 000012 external static fixed bin(35,0) dcl 54 ref 251 356 error_table_$bad_file_name 000014 external static fixed bin(35,0) dcl 54 ref 252 357 error_table_$badequal 000016 external static fixed bin(35,0) dcl 54 ref 253 358 error_table_$badpath 000020 external static fixed bin(35,0) dcl 54 ref 254 359 error_table_$badstar 000022 external static fixed bin(35,0) dcl 54 ref 110 126 142 255 360 error_table_$entlong 000024 external static fixed bin(35,0) dcl 54 ref 256 361 error_table_$inconsistent 000026 external static fixed bin(35,0) dcl 54 ref 257 362 error_table_$invalid_ascii 000030 external static fixed bin(35,0) dcl 54 ref 258 363 error_table_$nomatch 000032 external static fixed bin(35,0) dcl 54 ref 149 259 error_table_$nostars 000034 external static fixed bin(35,0) dcl 54 ref 260 364 error_table_$null_name_component 000036 external static fixed bin(35,0) dcl 54 ref 261 365 expected_message 000251 automatic varying char(256) dcl 205 set ref 209* 212* 215* 218* expected_star_type parameter fixed bin(2,0) dcl 201 in procedure "error" set ref 198 208* 209 209* 209* 212* 212 expected_star_type parameter fixed bin(2,0) dcl 228 in procedure "classify_status" ref 225 236 expected_status parameter fixed bin(35,0) dcl 228 in procedure "classify_status" ref 225 244 expected_status parameter fixed bin(35,0) dcl 201 in procedure "error" set ref 198 208* 209* 209 212* 212 idx 000112 automatic fixed bin(17,0) dcl 28 set ref 101* 102 104 117* 118 120 133* 134 136 index builtin function dcl 25 ref 101 117 133 295 invert 000113 automatic bit(1) dcl 28 set ref 307* 310* 335 ioa_ 000060 constant entry external dcl 69 ref 215 218 ltrim builtin function dcl 25 ref 242 mask 000114 automatic bit(36) unaligned dcl 28 set ref 292* 335* 335 337* 337 374* match_star_name_ 000062 constant entry external dcl 69 ref 185 192 match_status 000115 automatic fixed bin(35,0) dcl 28 set ref 105* 110* 149* 193 193* message parameter varying char(256) dcl 228 set ref 225 236* 239* 240* 241* 242* 246* 246 249* 249 250* 250 251* 251 252* 252 253* 253 254* 254 255* 255 256* 256 257* 257 258* 258 259* 259 260* 260 261* 261 264* 264 265* 265 path_star_type 000116 automatic fixed bin(2,0) dcl 28 set ref 104* 109* 136* 141* 182 182* path_status 000117 automatic fixed bin(35,0) dcl 28 set ref 105* 110* 137* 142* 182 182* requote_string_ 000064 constant entry external dcl 69 ref 153 215 215 218 265 299 331 348 368 rtrim builtin function dcl 25 ref 153 153 265 265 self_status 000120 automatic fixed bin(35,0) dcl 28 set ref 105* 110* 186 186* star based char unaligned dcl 51 set ref 161* 165* 175* 185* 185* 192* 215* 218* 308 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 331* 374* star_len 000124 automatic fixed bin(21,0) dcl 28 set ref 158* 161 161 165 165 175 175 185 185 185 185 192 192 215 215 218 218 295* 296 296* 297 304 305 308 311* 311 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 331 331 372* 374 374 star_mask 000121 automatic bit(36) dcl 28 set ref 315* 316* 317* 318* 319* 320* 321* 322* 323* 324* 325* 326* 327* 328* 329* 335 337 star_ptr 000126 automatic pointer dcl 28 set ref 158* 161 165 175 185 185 192 215 218 303* 308 312* 312 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 331 372* 374 star_type parameter fixed bin(2,0) dcl 228 in procedure "classify_status" ref 225 236 239 240 241 242 star_type 000122 automatic fixed bin(2,0) dcl 28 in procedure "test_match_star_name" set ref 161* 162 168* 171* 172 178* 181* 182 184* 208* 374* 376 status parameter fixed bin(35,0) dcl 228 in procedure "classify_status" set ref 225 244 249 250 251 252 253 254 255 256 257 258 259 260 261 263* status 000123 automatic fixed bin(35,0) dcl 28 in procedure "test_match_star_name" set ref 85* 86 88* 161* 162 165* 166 166 168 169* 172 175* 176 176 178 179* 182 185* 186 192* 193 208* 277* 278 280* 374* 376 substr builtin function dcl 25 ref 101 107 117 123 133 139 149 308 test parameter char unaligned dcl 201 set ref 198 215 215* 218* whoami 000130 automatic char(32) unaligned dcl 28 set ref 83* 88* 94* 94* 153* 275* 280* 286* 286* 299* 331* 348* 368* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. check_star based structure level 1 dcl 1-15 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_NOMATCH 000656 constant label dcl 149 ref 123 139 DO_TEST 000767 constant label dcl 158 set ref 114 130 146 INVALID_KEYWORD 000674 constant label dcl 153 ref 99 107 classify_status 003106 constant entry internal dcl 225 ref 208 209 212 error 002612 constant entry internal dcl 198 ref 162 172 182 186 193 376 test_check_star_name 001316 constant entry external dcl 272 test_match_star_name 000410 constant entry external dcl 22 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4250 4336 3763 4260 Length 4626 3763 66 253 265 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME test_match_star_name 382 external procedure is an external procedure. error internal procedure shares stack frame of external procedure test_match_star_name. classify_status internal procedure shares stack frame of external procedure test_match_star_name. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME test_match_star_name 000100 arg_count test_match_star_name 000101 arg_len test_match_star_name 000102 arg_ptr test_match_star_name 000104 argx test_match_star_name 000105 charx test_match_star_name 000106 check_star_type test_match_star_name 000107 check_status test_match_star_name 000110 entry_star_type test_match_star_name 000111 entry_status test_match_star_name 000112 idx test_match_star_name 000113 invert test_match_star_name 000114 mask test_match_star_name 000115 match_status test_match_star_name 000116 path_star_type test_match_star_name 000117 path_status test_match_star_name 000120 self_status test_match_star_name 000121 star_mask test_match_star_name 000122 star_type test_match_star_name 000123 status test_match_star_name 000124 star_len test_match_star_name 000126 star_ptr test_match_star_name 000130 whoami test_match_star_name 000150 actual_message error 000251 expected_message error 000360 buffer classify_status THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_ check_star_name_$entry check_star_name_$path com_err_ com_err_$suppress_name convert_status_code_ cu_$arg_count cu_$arg_ptr ioa_ match_star_name_ requote_string_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$archive_pathname error_table_$bad_arg error_table_$bad_file_name error_table_$badequal error_table_$badpath error_table_$badstar error_table_$entlong error_table_$inconsistent error_table_$invalid_ascii error_table_$nomatch error_table_$nostars error_table_$null_name_component LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000407 83 000415 85 000420 86 000430 88 000432 89 000447 92 000450 94 000453 95 000503 98 000504 99 000524 101 000526 102 000537 104 000540 105 000543 106 000550 107 000551 109 000555 110 000560 114 000567 115 000572 117 000574 118 000604 120 000605 121 000606 122 000607 123 000610 125 000615 126 000616 130 000621 131 000624 133 000625 134 000636 136 000637 137 000640 138 000641 139 000642 141 000646 142 000647 146 000652 147 000655 149 000656 153 000674 155 000765 158 000767 161 001007 162 001037 165 001052 166 001072 168 001076 169 001077 170 001100 171 001101 172 001102 175 001115 176 001135 178 001141 179 001142 180 001143 181 001144 182 001145 184 001160 185 001162 186 001211 188 001223 190 001233 192 001251 193 001300 194 001312 196 001314 272 001315 275 001323 277 001326 278 001337 280 001341 281 001356 284 001357 286 001362 287 001412 290 001413 292 001433 293 001434 295 001436 296 001447 297 001452 299 001453 300 001524 303 001526 304 001527 305 001533 307 001537 308 001540 310 001545 311 001547 312 001551 315 001554 316 001564 317 001573 318 001602 319 001611 320 001620 321 001627 322 001636 323 001645 324 001654 325 001663 326 001672 327 001701 328 001710 329 001717 331 001726 332 002002 335 002004 337 002012 338 002014 340 002015 342 002035 344 002066 345 002105 348 002134 349 002205 352 002207 354 002227 355 002247 356 002263 357 002277 358 002313 359 002327 360 002343 361 002357 362 002373 363 002407 364 002423 365 002437 368 002453 369 002524 372 002526 374 002546 376 002576 379 002611 198 002612 208 002623 209 002642 212 002671 215 002715 218 003026 221 003104 225 003106 236 003110 239 003116 240 003127 241 003140 242 003151 244 003221 246 003227 249 003242 250 003261 251 003300 252 003316 253 003334 254 003352 255 003370 256 003406 257 003424 258 003442 259 003460 260 003476 261 003514 263 003532 264 003546 265 003562 266 003641 268 003642 ----------------------------------------------------------- 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