[manual index][section index]

NAME

Names: basename, cleanname, dirname, elements, isprefix, pathname, relative, rooted - file name manipulation

SYNOPSIS

include "names.m";
names := load Names Names->PATH;

basename:  fn(name: string, suffix: string): string;
cleanname: fn(name: string): string;
dirname:   fn(name: string): string;
elements:  fn(name: string): list of string;
isprefix:  fn(a: string, b: string): int;
pathname:  fn(els: list of string): string;
relative:  fn(name: string, root: string): string;
rooted:    fn(root: string, name: string): string;

DESCRIPTION

Names provides operations on file names (path names):

basename
Return the trailing component of name (the text after the final /), shorn of suffix (which may be null).
cleanname
Return a `cleaner' version of name: there are no redundant and trailing slashes, and directory names . and .. have been interpreted lexically. If the result would otherwise be the empty string, the name . is returned instead.
dirname
Return the directory component of name: the string up to but not including the final slash(es).
elements
Return a list of the path elements of name: the words between slashes. If name starts with a /, the head of the list will be the string "/" but otherwise slashes do not appear.
pathname
Return a path name formed from a list of elements as produced by elements.
isprefix
Return true iff path name a is a prefix of path name b.
relative
If name is root/X for some X, return X; otherwise return name unchanged.
rooted
Return the path name for name relative to a given root directory (either name may be nil). If name itself starts with / or #, the result is name; otherwise it is root/name.

See sys-intro(2) for details of file name syntax and its interpretation.

SOURCE

/appl/lib/names.b

SEE ALSO

sys-intro(2), sys-fd2path(2), workdir(2)

NAMES(2 ) Rev:  Thu Feb 15 14:43:26 GMT 2007