[comp.binaries.ibm.pc] v01i178: newchdir, directory changer, recognizes abbreviations

madler@Hamlet.Caltech.Edu (Mark Adler) (02/28/89)

Posting-number: Volume 01, Issue 178
Originally-from: madler@Hamlet.Caltech.Edu (Mark Adler)
Submitted-by: madler@Hamlet.Caltech.Edu (Mark Adler)
Archive-name: newchdir/newchdir.uue

[
From the documentation:

     C.COM is an enhanced change directory (CD) command.  It is used
     like CD, except that abbreviations of subdirectory names are
     accepted.  Only that part of each subdirectory name that uniquely
     distinguishes it from the others is necessary....Whether changing
     a directory or not, C will display the current directory of the
     drive specified (or the current drive if none is specified).

The program works nicely.  If an ambiguous prefix is given the program
prints an error message.  The executable is only 828 bytes, and source
in assembly language is included.

Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command.

checksum     size (bytes)  file (between BEGIN--cut and END--cut lines)
   11317         8595      this uuencoded posting

checksum     size (bytes)  file
    9252         6215      newchdir.arc

-- R.D.
]

BEGIN--cut here--cut here
begin 644 newchdir.arc
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
%?30`&@!#
`
end
END--cut here--cut here