02/02/84 suffixed_name_ This subroutine handles storage system entrynames. It provides an entry point that creates a properly suffixed name from a user-supplied name that might or might not include a suffix, an entry point that changes the suffix on a user-supplied name that might or might not include the original suffix, and an entry point that finds a segment, a directory, or a multisegment file whose name matches a user-supplied name that might or might not include a suffix. It is intended to be used by commands that deal with segments with a standard suffix, but that do not require the user to supply the suffix in the command arguments. Entry points in suffixed_name_: (List is generated by the help command) :Entry: find: 02/02/84 suffixed_name_$find Function: attempts to find a directory entry whose name matches a user-supplied name that might or might not include a suffix. This directory entry can be a segment, directory, or a multisegment file. Syntax: declare suffixed_name_$find entry (char(*), char(*), char(*), char(32), fixed bin(2), fixed bin(5), fixed bin(35)); call suffixed_name_$find (directory, name, suffix, entry, type, mode, code); Arguments: directory is the name of the directory in which the entry is to be found. (Input) name is the name that has been supplied by the user, and that might or might not include a suffix. (Input) suffix is the suffix that is supposed to be part of name. It should not contain a leading period. (Input) entry is a version of name that includes a suffix. It is returned even if the directory entry does not exist. (Output) type is a switch indicating the type of directory entry that was found. (Output) 0 no entry was found. 1 a segment was found. 2 a directory was found. 3 a multisegment file was found. mode is the caller's access mode to the directory entry that was found. See the hcs_$append_branch entry point for a description of mode. The caller's access mode to the multisegment file directory is returned for a multisegment file. (Output) code is a standard status code. (Output) It can be one of the following: error_table_$noentry no directory entry that matches name was found. error_table_$no_info no directory entry that matches name was found, and furthermore, the caller does not have status permission to the directory. error_table_$incorrect_access a directory entry that matches name was found, but the caller has null access to this entry, and to the directory containing this entry. error_table_$entlong the properly suffixed name that was made is longer than 32 characters. :Entry: make: 02/02/84 suffixed_name_$make Function: makes a properly suffixed name out of a name supplied by the user that might or might not include a suffix. Syntax: declare suffixed_name_$make entry (char(*), char(*), char(32), fixed bin(35)); call suffixed_name_$make (name, suffix, proper_name, code); Arguments: name is the name that has been supplied by the user, and that might or might not include a suffix. (Input) suffix is the suffix that is supposed to be part of name. It should not contain a leading period. (Input) proper_name is the suffixed version of name. (Output) code is a standard status code. (Output) It can be: error_table_$entlong the properly suffixed name that was made is longer than proper_name; proper_name contains only a part of the properly suffixed name. :Entry: new_suffix: 02/02/84 suffixed_name_$new_suffix Function: creates a name with a new suffix by changing the (possibly existing) suffix on a user-supplied name to the new suffix. If there is no suffix on the user-supplied name, then the new suffix is merely appended to the user-supplied name. Syntax: declare suffixed_name_$new_suffix entry (char(*), char(*), char(*), char(32), fixed bin(35)); call suffixed_name_$new_suffix (name, suffix, new_suffix, new_name, code); Arguments: name is the name that has been supplied by the user, and that might or might not include a suffix. (Input) suffix is the suffix that might or might not already be on name. new_suffix is the new suffix. (Input) new_name is the name that was created. If name ends with .suffix, then .new_suffix replaces .suffix in new_name. Otherwise, new_name is formed by appending .new_suffix to name. (Output) code is a standard status code. (Output) It can be: error_table_$entlong meaning that the suffixed new name is longer than new_name and therefore new_name contains only part of the suffixed new name. Notes: If error_table_$no_s_permission is encountered during the processing for suffixed_name_$find, it is ignored and is not returned in the status code. ----------------------------------------------------------- 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