Copyright (C) 1994, Digital Equipment Corp. INTERFACEReads the named {\it m3path} file in the named directory. An m3path file has a system dependent format but always contains a list of directory names. This routine returns these names as a list ofM3PathFile ; IMPORT OSError, Rd; IMPORT M3PathElem, M3PathElemList; CONST FileName = "m3path"; (* default name for path file *) PROCEDURE Read( dir := M3PathElem.CurrentDir; name := FileName; doTransitiveClosure := TRUE) : M3PathElemList.T RAISES {OSError.E, Rd.Failure};
M3PathElem.T
s. The names are NOT transformed to be relative to the
current directory. E.g. if one name on the list was foo
it means
subdirectory foo
in directory dir
not foo
in the current
directory.
A directory may be indicated as read-only, in which case the
readOnly
method will return TRUE. This is intended as an
optimisation, to avoid repeated scanning of zillions of directories.
If the given m3path file does not exist (or is inaccessible so that it is impossible to determine if it exists or not) the result will be NIL.
Read will raise OSError.E
or Rd.Failure
if a stream error occurs while
opening and processing the m3path file.
If doTransitiveClosure
then the list returned is the transitive closure
of the directories on the m3path. Duplicates are removed, the list is
constructed breadth first.
END M3PathFile.