home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / newc_dev / dr_15b.lha / Dr.changes < prev    next >
Text File  |  1992-10-17  |  10KB  |  217 lines

  1.  
  2. This is the revision history of Dr by Paul Kienitz:
  3.  
  4.               DIFFERENCES BETWEEN preliminary 1.5b AND RELEASE 1.5a:
  5.  
  6. Woops -- fixed bug in fastscan.library that made it fail to follow hash
  7. chains from links, so that every once in a while something just wouldn't show
  8. in a directory with links in it.
  9.  
  10. Commands executed by -{...} are now fed to System() instead of Execute()
  11. under 2.0 -- any nonzero return exits Dr.  Fail level option needed.  System
  12. is to use the UserShell instead of the default shell.
  13.  
  14. Got rid of a lingering cosmetic bug wherein passing it "filename/#?" would
  15. cause an extra error message.  1.5a really should have gotten this.
  16.  
  17. When writing out N filenames in more than N columns, it no longer scrunches
  18. the names extra close together in order to allow for one more column which
  19. isn't used anyway.
  20.  
  21.               DIFFERENCES BETWEEN RELEASE 1.5a AND RELEASE 1.5:
  22.  
  23. This is strictly a bugfix; there are no new features.  The bugs fixed relate
  24. to cases in which the item given in the command line is a file and not a
  25. directory.  With various combinations of -O, -X, and -{}, it would do things
  26. like report totals when none were asked for, or execute malformed commands
  27. where it should have taken no action.
  28.  
  29. Custom formatting would produce incorrect results for \p if -X was used or
  30. the arg being shown was a file.  I had to do something cheap:  in these cases
  31. \p simply puts out just what you typed, without even a change in
  32. capitalization.  Except that for root directories, it writes the volume name.
  33. Converting what you typed into an absolute pathname is for another release.
  34. \d attempts to remove the "tail" to print the parent directory name, but
  35. can't do so in all cases, such as if you give a path ending in slashes
  36. indicating parent dir(s).
  37.  
  38. Used my "purify.a" startup module to make it reentrant, instead of the brute
  39. force method of keeping everything on the stack.  This made it a bit simpler
  40. and 400 bytes smaller.  This is NOT the defective purify.a I released before;
  41. it's release 2.
  42.  
  43.               DIFFERENCES BETWEEN RELEASE 1.5 AND RELEASE 1.3:
  44.  
  45. Threw in -M option at the last minute before beta release.
  46.  
  47. Made it so that you use "" instead of *" to put a quote inside a quoted
  48. string, to make it easier to use * as a wildcard.  Made * in patterns
  49. synonymous with #?  under 1.3 -- under 2.0 this behavior is determined by the
  50. dos WILDSTAR flag, as for any other program.  Patterns are now limited to 128
  51. characters in length.  Fixed it so that "?" in quotes actually is taken as a
  52. pattern rather than giving a help summary, as it was documented all along.
  53.  
  54. Made total-summary report in parentheses the total number of dirs, files,
  55. bytes, and blocks found, when those totals differs from the numbers that fit
  56. the pattern and options, e.g. "0 (4) dirs, 3 files, 2893 bytes, 9 (13)
  57. blocks."
  58.  
  59. Replaced that stupid line of dashes which many people hated with a layout
  60. wherein filenames are indented one space and directory names are not.  It's
  61. weird at first but I rather like it this way.
  62.  
  63. It no longer uses a different style of header to separate different
  64. directories coming from separate command line args than it does to separate
  65. different subdirs within a recursive display.  It no longer produces a header
  66. when -R is used but only one dir gets listed.
  67.  
  68. Name is now written after size/bits/date with -L, not before.  When combined
  69. with -R and -O, name includes path relative to directory started from.  The
  70. line giving totals at the end is now always written when either -L or -U is
  71. used, even when -[] or -O is used.  -O now causes -UR and -LR to report only
  72. a final total rather than subtotals; in this case, "--- name ---" headers are
  73. given for different command line args but not for subdirs.  -[] without -O
  74. now includes normal headers for separate dirs and subdirs, and totals if -U
  75. is used.
  76.  
  77. Reduced excess spacing between output columns and allowed ten instead of
  78. five.  Fake option -! turns off the cursor during console output for maximum
  79. speed.
  80.  
  81. Formatting codes \b, \t, \s, \k, \e, \i, and \? added to -[ ] and -{ }
  82. options.
  83.  
  84. -P can now handle multi-bit masks.  (bit requirements are and'ed).
  85.  
  86. -V and -Z options added.
  87.  
  88. Command line parser now correctly handles letters mixed with [] or {} after a
  89. single option dash, e.g. -or{command}fp~a.
  90.  
  91. Got rid of Requester() in fastscan since it is now officially unsupported as
  92. of dos 2.04; substituted EasyRequest().  ReportError() was unusable; as of
  93. 2.04 this function is a piece of shit.
  94.  
  95. Dr used to report excessively high numbers of blocks used by large files; now
  96. accurate.  Now lets the ram-handler tell it that dirs each occupy two blocks
  97. instead of one.
  98.  
  99. Fastscan.library made able to understand hard and soft file links.  In -L
  100. style output, Dr now tells the pathnames that soft links are linked to.  Dr
  101. does not enter soft links during recursive scans, but fastscan is prepared if
  102. some other program using it does; if it ends up on a different volume, no
  103. fastscan optimization will be used on that other volume.  If you use -X on an
  104. arg that is a soft link, Dr tells the pathname linked to, but the other
  105. information (size, datestamp, etc) is not accessible in this case due to the
  106. design of the file system.
  107.  
  108. Fastscan.library now checks for 50K of spare memory rather than 20K, before
  109. going into high speed hog mode.
  110.  
  111. Formerly acted as if window was one character narrower than it really was.
  112.  
  113. Separate version for dos 2.04 (V37) and newer can now be compiled, but is not
  114. included in the distribution because its only advantage is that it's smaller,
  115. by about 3K.  Both versions behave identically under 2.04; earlier versions
  116. of dos 2.0 (V36) are NOT supported -- they are treated like 1.x.
  117.  
  118. I found that with HD's, often reading whole tracks is not optimal; dividing
  119. the reading into smaller chunks is faster.  So it tries to divide large
  120. tracks into even subdivisions of 11-20 sectors.  Dr now ignores MaxTransfer
  121. if not an even fraction of track size.
  122.  
  123.     (( somewhere around here 1.4, which was never released, became 1.5 ))
  124.  
  125. Optimized disk search code now separated into fastscan.library; previously
  126. was linked into Dr, making it over 19K in size.  Dr works whether library is
  127. installed or not.  The library offers relatively small speed improvement
  128. under dos 2.0 or newer; big improvement on older systems.
  129.  
  130. Fastscan.library now uses fully asynchronous IO at both the dos packet and
  131. exec device (track) levels, which squeezes about the last possible drop of
  132. speed out of it.
  133.  
  134. Fastscan used to put up incorrect "read/write error" requesters when doing a
  135. recursive scan on an A3000 HD due to scsi.device returning an incorrect error
  136. code number; it now tolerates wrong error reports.  It no longer puts up its
  137. own requester after the file system has already put up a "You MUST replace"
  138. requester.  It no longer asks you to replace a removed disk in the same
  139. drive; it says "in any drive".  Used Requester() to mimic the new V36-style
  140. requester for reporting disk read errors.
  141.  
  142. Fixed signed/unsigned confusion that made fastscan divide by zero when
  143. MaxTransfer had most significant bit set.  This made Dr unusable for many
  144. CrossDOS users.
  145.  
  146. Dr 1.3 (but not 1.2?) could fail because it assumed root directories have
  147. valid byte-length and protection-bits field values -- they don't.  Other
  148. small bugfixes of a mostly cosmetic nature.
  149.  
  150. I woulda swore I tested this and it worked, but older versions did not
  151. correctly detect when output was redirected to PIPE:.
  152.  
  153. -O now writes results unsorted during the disk scan.  This takes the best
  154. possible advantage of asynchronous disk IO.  -O now overrides -I.  -L and -[]
  155. now work with -O, making them unsorted.  Without -O, -[] now goes by normal
  156. sorting, and colorizes iconed names written with \f or \p.
  157.  
  158. Any-depth patterns using double colon added.
  159.  
  160.               DIFFERENCES BETWEEN RELEASE 1.3 AND RELEASE 1.2:
  161.  
  162. Sorting of names and elimination of matched .info's greatly sped up.
  163.  
  164. Negated patterns with ~ in front added.
  165.  
  166. -{...} and -[...] formatting options added.  ForEvery no longer needed.
  167.  
  168. -A and -B options added.  -K option added.
  169.  
  170. FastExamine makes sure there is some EXTRA memory (20K) that it probably
  171. won't need, before it goes into high speed ram-hog mode.
  172.  
  173. Tested, but did not use, code to make FastExNext use asynchronous packets
  174. instead of ExNext() calls in the cases when it can't use its high speed code.
  175. I judge the speed improvement to be too small to justify the extra program
  176. size if disk IO and output are not interleaved.  See makefile.
  177.  
  178.                       DIFFERENCES BETWEEN 1.2 AND 1.1:
  179.  
  180. -P option was added.
  181.  
  182. My god!  I never noticed that the PatMatch functions I used were not
  183. reentrant!  I now use a modified patmatch.c instead of the original.
  184.  
  185. ForEvery (and Whichever just for the halibut) bundled with Dr.
  186.  
  187. 1.2 has been redone into ANSI C.  It's a bit smaller.
  188.  
  189. By request, the -s option now reports totals like the -l option.
  190.  
  191. The feature wherein recent files would show their dates as "Today" or
  192. "Wednesday" instead of the actual date has been removed.  To get it back,
  193. recompile dr.c with the symbol WEEEEK defined.  See makefile.
  194.  
  195. I wrote, but did not use, code to show directory names in boldface or against
  196. a black background or both instead of above a line of dashes.  See the
  197. makefile for how to compile this way.
  198.  
  199. Oops, the -- Name -- thing between different command line args' output was
  200. not eliminated by -o as documented, in older versions.
  201.  
  202.                       DIFFERENCES BETWEEN 1.1 AND 1.0:
  203.  
  204. 1.0 gurued on many device drivers which did not support ETD_READ.  1.1 uses
  205. CMD_READ when ETD_READ fails, and the dumb mistake which caused a guru when
  206. it tried to report the error was fixed.  IF YOU SEE A COPY OF DR 1.0 ERASE
  207. IT, IT'S NO GOOD!  (This bug never showed up on the hardware I had back then.)
  208.  
  209. 1.1 pays attention to the MaxTransfer mount parameter, and if it is an
  210. integral fraction of the track size it pretends that this fraction is a
  211. "track", otherwise (gotta fix this someday) falls through to ExNext.
  212.  
  213. 1.0 did not check for adequate stack.  1.1 makes sure there is enough stack
  214. each time it descends another level with the -r option.
  215.  
  216. 1.0 had a small bug in reporting .info files with the -o option.
  217.