[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

As of V36 it is possible to have a logical device assignment to more than
one directory (see the dos.library Autodocs for AssignLock()/AssignAdd()).
Since the user can utilize this with the C:Assign command, it is good
practice to support this feature.  The shell itself supports
multidirectory assigns, although not all C: commands do.  In general, when
your application is presented with only a device name to scan, you should
check if it is an assignment.  If it is, use GetDeviceProc() to get the
handler for it, process it, and loop until GetDeviceProc() returns NULL,
indicating there are no more directories for this assign.  See the
Autodocs for details.

The program Find.c is a more realistic example of the usage of patterns
and ExAll() and shows a method of supporting multidirectory assigns.  It
scans one or more directories or volumes for the occurrence of a
particular pattern.  This example recursively scans subdirectories which
means that Find.c may need more stack space than normal to keep from
overflowing the stack.  Find.c has two required arguments, a pattern and
one or more directories to examine.  It has two keywords, FILES and DIRS,
to tell it to scan only for files or directories, respectively.  The ALL
keyword instructs Find.c to recurse into subdirectories when it encounters
them.