home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Elysian Archive
/
AmigaElysianArchive.iso
/
newc_dev
/
dr_15b.lha
/
Dr.changes
< prev
next >
Wrap
Text File
|
1992-10-17
|
10KB
|
217 lines
This is the revision history of Dr by Paul Kienitz:
DIFFERENCES BETWEEN preliminary 1.5b AND RELEASE 1.5a:
Woops -- fixed bug in fastscan.library that made it fail to follow hash
chains from links, so that every once in a while something just wouldn't show
in a directory with links in it.
Commands executed by -{...} are now fed to System() instead of Execute()
under 2.0 -- any nonzero return exits Dr. Fail level option needed. System
is to use the UserShell instead of the default shell.
Got rid of a lingering cosmetic bug wherein passing it "filename/#?" would
cause an extra error message. 1.5a really should have gotten this.
When writing out N filenames in more than N columns, it no longer scrunches
the names extra close together in order to allow for one more column which
isn't used anyway.
DIFFERENCES BETWEEN RELEASE 1.5a AND RELEASE 1.5:
This is strictly a bugfix; there are no new features. The bugs fixed relate
to cases in which the item given in the command line is a file and not a
directory. With various combinations of -O, -X, and -{}, it would do things
like report totals when none were asked for, or execute malformed commands
where it should have taken no action.
Custom formatting would produce incorrect results for \p if -X was used or
the arg being shown was a file. I had to do something cheap: in these cases
\p simply puts out just what you typed, without even a change in
capitalization. Except that for root directories, it writes the volume name.
Converting what you typed into an absolute pathname is for another release.
\d attempts to remove the "tail" to print the parent directory name, but
can't do so in all cases, such as if you give a path ending in slashes
indicating parent dir(s).
Used my "purify.a" startup module to make it reentrant, instead of the brute
force method of keeping everything on the stack. This made it a bit simpler
and 400 bytes smaller. This is NOT the defective purify.a I released before;
it's release 2.
DIFFERENCES BETWEEN RELEASE 1.5 AND RELEASE 1.3:
Threw in -M option at the last minute before beta release.
Made it so that you use "" instead of *" to put a quote inside a quoted
string, to make it easier to use * as a wildcard. Made * in patterns
synonymous with #? under 1.3 -- under 2.0 this behavior is determined by the
dos WILDSTAR flag, as for any other program. Patterns are now limited to 128
characters in length. Fixed it so that "?" in quotes actually is taken as a
pattern rather than giving a help summary, as it was documented all along.
Made total-summary report in parentheses the total number of dirs, files,
bytes, and blocks found, when those totals differs from the numbers that fit
the pattern and options, e.g. "0 (4) dirs, 3 files, 2893 bytes, 9 (13)
blocks."
Replaced that stupid line of dashes which many people hated with a layout
wherein filenames are indented one space and directory names are not. It's
weird at first but I rather like it this way.
It no longer uses a different style of header to separate different
directories coming from separate command line args than it does to separate
different subdirs within a recursive display. It no longer produces a header
when -R is used but only one dir gets listed.
Name is now written after size/bits/date with -L, not before. When combined
with -R and -O, name includes path relative to directory started from. The
line giving totals at the end is now always written when either -L or -U is
used, even when -[] or -O is used. -O now causes -UR and -LR to report only
a final total rather than subtotals; in this case, "--- name ---" headers are
given for different command line args but not for subdirs. -[] without -O
now includes normal headers for separate dirs and subdirs, and totals if -U
is used.
Reduced excess spacing between output columns and allowed ten instead of
five. Fake option -! turns off the cursor during console output for maximum
speed.
Formatting codes \b, \t, \s, \k, \e, \i, and \? added to -[ ] and -{ }
options.
-P can now handle multi-bit masks. (bit requirements are and'ed).
-V and -Z options added.
Command line parser now correctly handles letters mixed with [] or {} after a
single option dash, e.g. -or{command}fp~a.
Got rid of Requester() in fastscan since it is now officially unsupported as
of dos 2.04; substituted EasyRequest(). ReportError() was unusable; as of
2.04 this function is a piece of shit.
Dr used to report excessively high numbers of blocks used by large files; now
accurate. Now lets the ram-handler tell it that dirs each occupy two blocks
instead of one.
Fastscan.library made able to understand hard and soft file links. In -L
style output, Dr now tells the pathnames that soft links are linked to. Dr
does not enter soft links during recursive scans, but fastscan is prepared if
some other program using it does; if it ends up on a different volume, no
fastscan optimization will be used on that other volume. If you use -X on an
arg that is a soft link, Dr tells the pathname linked to, but the other
information (size, datestamp, etc) is not accessible in this case due to the
design of the file system.
Fastscan.library now checks for 50K of spare memory rather than 20K, before
going into high speed hog mode.
Formerly acted as if window was one character narrower than it really was.
Separate version for dos 2.04 (V37) and newer can now be compiled, but is not
included in the distribution because its only advantage is that it's smaller,
by about 3K. Both versions behave identically under 2.04; earlier versions
of dos 2.0 (V36) are NOT supported -- they are treated like 1.x.
I found that with HD's, often reading whole tracks is not optimal; dividing
the reading into smaller chunks is faster. So it tries to divide large
tracks into even subdivisions of 11-20 sectors. Dr now ignores MaxTransfer
if not an even fraction of track size.
(( somewhere around here 1.4, which was never released, became 1.5 ))
Optimized disk search code now separated into fastscan.library; previously
was linked into Dr, making it over 19K in size. Dr works whether library is
installed or not. The library offers relatively small speed improvement
under dos 2.0 or newer; big improvement on older systems.
Fastscan.library now uses fully asynchronous IO at both the dos packet and
exec device (track) levels, which squeezes about the last possible drop of
speed out of it.
Fastscan used to put up incorrect "read/write error" requesters when doing a
recursive scan on an A3000 HD due to scsi.device returning an incorrect error
code number; it now tolerates wrong error reports. It no longer puts up its
own requester after the file system has already put up a "You MUST replace"
requester. It no longer asks you to replace a removed disk in the same
drive; it says "in any drive". Used Requester() to mimic the new V36-style
requester for reporting disk read errors.
Fixed signed/unsigned confusion that made fastscan divide by zero when
MaxTransfer had most significant bit set. This made Dr unusable for many
CrossDOS users.
Dr 1.3 (but not 1.2?) could fail because it assumed root directories have
valid byte-length and protection-bits field values -- they don't. Other
small bugfixes of a mostly cosmetic nature.
I woulda swore I tested this and it worked, but older versions did not
correctly detect when output was redirected to PIPE:.
-O now writes results unsorted during the disk scan. This takes the best
possible advantage of asynchronous disk IO. -O now overrides -I. -L and -[]
now work with -O, making them unsorted. Without -O, -[] now goes by normal
sorting, and colorizes iconed names written with \f or \p.
Any-depth patterns using double colon added.
DIFFERENCES BETWEEN RELEASE 1.3 AND RELEASE 1.2:
Sorting of names and elimination of matched .info's greatly sped up.
Negated patterns with ~ in front added.
-{...} and -[...] formatting options added. ForEvery no longer needed.
-A and -B options added. -K option added.
FastExamine makes sure there is some EXTRA memory (20K) that it probably
won't need, before it goes into high speed ram-hog mode.
Tested, but did not use, code to make FastExNext use asynchronous packets
instead of ExNext() calls in the cases when it can't use its high speed code.
I judge the speed improvement to be too small to justify the extra program
size if disk IO and output are not interleaved. See makefile.
DIFFERENCES BETWEEN 1.2 AND 1.1:
-P option was added.
My god! I never noticed that the PatMatch functions I used were not
reentrant! I now use a modified patmatch.c instead of the original.
ForEvery (and Whichever just for the halibut) bundled with Dr.
1.2 has been redone into ANSI C. It's a bit smaller.
By request, the -s option now reports totals like the -l option.
The feature wherein recent files would show their dates as "Today" or
"Wednesday" instead of the actual date has been removed. To get it back,
recompile dr.c with the symbol WEEEEK defined. See makefile.
I wrote, but did not use, code to show directory names in boldface or against
a black background or both instead of above a line of dashes. See the
makefile for how to compile this way.
Oops, the -- Name -- thing between different command line args' output was
not eliminated by -o as documented, in older versions.
DIFFERENCES BETWEEN 1.1 AND 1.0:
1.0 gurued on many device drivers which did not support ETD_READ. 1.1 uses
CMD_READ when ETD_READ fails, and the dumb mistake which caused a guru when
it tried to report the error was fixed. IF YOU SEE A COPY OF DR 1.0 ERASE
IT, IT'S NO GOOD! (This bug never showed up on the hardware I had back then.)
1.1 pays attention to the MaxTransfer mount parameter, and if it is an
integral fraction of the track size it pretends that this fraction is a
"track", otherwise (gotta fix this someday) falls through to ExNext.
1.0 did not check for adequate stack. 1.1 makes sure there is enough stack
each time it descends another level with the -r option.
1.0 had a small bug in reporting .info files with the -o option.