COMPILATION LISTING OF SEGMENT tedcheck_entryname_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1127.80_Tue_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 /* CHECK_ENTRYNAME_ - See if the entryname x is "troublesome." - THVV */ 11 12 /* added ! to VALID - jaf */ 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(86-08-18,JSLove), approve(86-08-18,MCR7518), 17* audit(86-08-19,Parisek), install(86-10-02,MR12.0-1175): 18* Changed to call check_star_name_, which returns more meaningful error 19* codes. Changed to return error_table_$bad_file_name rather than 20* error_table_$badstar if an invalid character is found. 21* END HISTORY COMMENTS */ 22 23 24 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 25 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 26 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 27 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 28 29 tedcheck_entryname_: check_entryname_: proc (x, ec); 30 31 dcl x char (*), ec fixed bin (35); /* Arguments */ 32 33 dcl j fixed bin; /* Indices */ 34 35 dcl LEGAL char (76) int static init /* Valid characters. */ 36 ("'_`~^+-.{}:0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 37 || "abcdefghijklmnopqrstuvwxyz!/"); 38 dcl BS char (1) int static init (""); 39 40 dcl check_star_name_ entry (char (*), bit (36) aligned, fixed bin (2), fixed bin (35)); 41 42 dcl error_table_$bad_file_name fixed bin (35) external; 43 44 dcl (index, length, rtrim, substr, verify) builtin; 45 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 * * * * * */ 46 47 48 call check_star_name_ (x, CHECK_STAR_ENTRY_DEFAULT | CHECK_STAR_REJECT_WILD, (0), ec); 49 if ec ^= 0 then return; 50 51 j = length (rtrim (x)); /* find real length of name */ 52 if verify (substr (x, 1, j), LEGAL) = 0 then return; 53 54 if index (substr (LEGAL, 1, 12), substr (x, 1, 1)) ^= 0 55 then if substr (x, 2, 1) = BS then return; /* accept overstrikes */ 56 57 ec = error_table_$bad_file_name; 58 59 return; 60 61 end tedcheck_entryname_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1127.8 tedcheck_entryname_.pl1 >udd>sm>ds>w>ml>tedcheck_entryname_.pl1 46 1 08/06/87 1013.4 check_star_name.incl.pl1 >ldd>incl>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. BS 000367 constant char(1) initial packed unaligned dcl 38 ref 54 CHECK_STAR_ENTRY_DEFAULT constant bit(36) initial packed unaligned dcl 1-29 ref 48 CHECK_STAR_REJECT_WILD constant bit(36) initial packed unaligned dcl 1-29 ref 48 LEGAL 000000 constant char(76) initial packed unaligned dcl 35 ref 52 54 check_star_name_ 000010 constant entry external dcl 40 ref 48 ec parameter fixed bin(35,0) dcl 31 set ref 29 29 48* 49 57* error_table_$bad_file_name 000012 external static fixed bin(35,0) dcl 42 ref 57 index builtin function dcl 44 ref 54 j 000100 automatic fixed bin(17,0) dcl 33 set ref 51* 52 length builtin function dcl 44 ref 51 rtrim builtin function dcl 44 ref 51 substr builtin function dcl 44 ref 52 54 54 54 verify builtin function dcl 44 ref 52 x parameter char packed unaligned dcl 31 set ref 29 29 48* 51 52 54 54 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CHECK_STAR_IGNORE_ALL internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_IGNORE_ARCHIVE internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_IGNORE_ENTRYPOINT internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_IGNORE_EQUAL internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_IGNORE_LENGTH internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_IGNORE_NONASCII internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_IGNORE_NULL internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_IGNORE_PATH internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_PATH_DEFAULT internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_PROCESS_ARCHIVE internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_PROCESS_ENTRYPOINT internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_PROCESS_PATH internal static bit(36) initial packed unaligned dcl 1-29 CHECK_STAR_UNIMPLEMENTED internal static bit(36) initial packed unaligned dcl 1-29 STAR_TYPE_MATCHES_EVERYTHING internal static fixed bin(2,0) initial dcl 1-47 STAR_TYPE_USE_MATCH_PROCEDURE internal static fixed bin(2,0) initial dcl 1-47 STAR_TYPE_USE_PL1_COMPARE internal static fixed bin(2,0) initial dcl 1-47 check_star based structure level 1 dcl 1-15 NAMES DECLARED BY EXPLICIT CONTEXT. check_entryname_ 000033 constant entry external dcl 29 tedcheck_entryname_ 000051 constant entry external dcl 29 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 452 466 370 462 Length 654 370 14 151 61 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME check_entryname_ 86 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME check_entryname_ 000100 j check_entryname_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return_mac ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_file_name LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000027 48 000064 49 000115 51 000120 52 000134 54 000146 57 000163 59 000166 ----------------------------------------------------------- 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