home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 6 File / 06-File.zip / b_dir132.zip / CHANGES.TXT < prev    next >
Text File  |  1997-07-14  |  13KB  |  199 lines

  1. B.EXE  Changes / Bug Fixes
  2.  
  3. Version 1.1      all done around November 26, 1994.
  4.      Fixed a bug that incorrectly reported a directory with even megabytes of 
  5. files as multiples of .1 Meg of files.  This had to do with the fact that, in 
  6. computing the number of Megs of files, I do not actually do any floating 
  7. point dividing, but instead do integer math, and the error came from trying 
  8. to round the numbers.  I dropped the number rounding.
  9.      I changed the program so that it will read its "name" from the command 
  10. line, so that if you change its name, such as from B.EXE to PROGRAM.EXE, it 
  11. will "know" itself as PROGRAM.EXE.  The help text ( /? for the switch ) will 
  12. reflect this, as will the system variable that must be set.  Thus, if you 
  13. don't like the name B.EXE, you can change it for all practical purposes.  
  14. However, the .EXE ending needs to be kept.
  15.      I fixed the counting for when and where to pause when the number of 
  16. files and directories would be off the screen so as to take the bar along the 
  17. top that OS/2 creates in command line sessions by default into consideration.
  18.      I added a way to stop the directory scroll at a certain point, so as to 
  19. get back to the command line.  All one has to do is hit the 'Esc' key now, 
  20. and you immediately get the command prompt, and all of the entries that were 
  21. on the screen stay on the screen.
  22.      If one used the system variable, there was no way to clear switches that 
  23. were already set, from the command line.  Now all the switches, except for 
  24. the ones which control how many columns appear on the screen ( /w /n /d /l ) 
  25. and the one that changes the highlighting extensions ( /c ), will now toggle, 
  26. so that if you use them twice, they are negated.  The reason I don't do this 
  27. for the ones that control the columns is that the /n switch effectively 
  28. clears both /w and /d already.  I don't know if anyone will actually use this 
  29. toggle 'feature', but it's there. 
  30.  
  31. Version 1.11      all done around December 5, 1994.
  32.      When rewriting internal stuff for 1.1 fix, I screwed up the /D switch so 
  33. that it does not show the size of files.  I fixed this so that you can see 
  34. the sizes now.  This was corrupted in both versions, DOS and OS/2.
  35.  
  36. Version 1.2       all done around March 18, 1995
  37.      I am not including IBM Works versions of the text since I don't have it 
  38. installed since I have Word Perfect 6.1 now to use.
  39.      I brilliantly realized that having two separate source files for the two 
  40. versions was a little stupid, since I can use the #ifdef directives in C to 
  41. add in specific code.  Now I don't have to worry that I forgot to change in 
  42. one version something I changed in the other.  This was a big problem before.
  43.      I cut out a lot of dumb code, by thinking up clean and compact C++ code.  
  44. I am now utilizing unions to the maximum.
  45.      Fixed a lot of bugs.  Fixed /S not working in OS/2.  Fixed a problem 
  46. with /C being the last parameter in the environment variable.  If /C was the 
  47. last thing in your environment variable, the next thing on the command line 
  48. would be looked at as if it was an extension for /C; this was fixed.  I fixed 
  49. a few other /C problems.
  50.      Due to user demand, I have added /A to allow one to change the default 
  51. colors of my program.  Why did I put it as a switch?  Accessing a file is WAY 
  52. too slow, and file access adds a lot of code.  Another environment variable 
  53. would be too weird.  A switch is fast, and it allows one to use it in 
  54. aliases.  Obviously, I wouldn't expect anyone to type in /A with all 9 colors 
  55. every time.
  56.      Due to user demand, I added in sorting (with reverse sort also).  You 
  57. can sort by name (default), extension, time, and size.  You can choose to not 
  58. sort.  The directories stay grouped together out of the way; files and 
  59. directories are separate classes in my program, and I didn't feel like 
  60. messing with ungrouping them.
  61.      I changed the /O switch from showing only files, to the sort switch, to 
  62. be like DOS (sort of), and the old /O became /K instead.  (From "files  
  63. O'nly" to " K'ill subdirectories", I guess.)
  64.      Due to user demand, I added more extensions to the /C switch.  I added 
  65. one more color (dark green by default) for the sixth extension, then 
  66. extensions 7 - 12 take on the same colors as extensions 1 - 6.  Hopefully 
  67. twelve extensions are enough.
  68.      I allowed /L for the DOS version to work. /L will now show explicitly 
  69. what attributes the file has, especially since files consisting only of 
  70. numbers can not be capitalized for read-only files.  I also added, for 
  71. laughs, the time up to a half-second on the files and directories; why anyone 
  72. would need this is beyond me.
  73.      Due to user demand, using .ZIP for instance as an argument would be 
  74. transformed to *.ZIP, as in MSDOS.  Also, the DOS version would transform 
  75. ABC* as ABC*.* (the OS/2 version doesn't need it).
  76.  
  77. Version 1.3       all done around July, 1995
  78.      Moved the  -' sign from the back to in front of the second letter in /O, 
  79. i.e. to reverse sort such as in size, you must now use  /O-S', instead of  
  80. /OS-'.
  81.      Changed /S to /JD, and /K to /JF ( just directories' and  just files'), 
  82. as they make more sense, and I wanted /S to make it mean the same thing as 
  83. DIR's /S switch.
  84.      Using /OS will automatically bump you up to /N from /W so that you can 
  85. see the sizes automatically.  Using /OD will automatically bump you up to /D 
  86. from /N or /W.
  87.      I made it so that the switches were now absolute, instead of toggling.  
  88. If you use the same switch twice, such as "/F /F", it will stay as /F, 
  89. instead of just disappearing.  Instead, I now added the ability to just add a  
  90. '-' in front to disable the switch, such as /-F to disable /F.  This makes 
  91. more sense, and is consistent with DIR.
  92.      I made the switch processing 'engine' much less forgiving, and if you 
  93. don't use the right switches as shown in the help, it will generate an error.
  94.      Killed the lines that would be left behind after pauses, as they were 
  95. annoying.
  96.      I fixed the bug in /L, where I show  half-seconds'.  I misread the 
  97. Borland C++ help files, as what I thought were half-seconds were (seconds)/2, 
  98. as in seconds/2 = x, or seconds = 2x.  What I thought were half-seconds were 
  99. two-second intervals.  Oh well.
  100.      You do not to put spaces between switches now, as in UNIX.  This applies 
  101. to all switches except for /C where the spaces are still needed.
  102.      Added the volume label to the /F switch.  It is a little flaky, as it 
  103. has problems with keeping spaces in the right places if they are near 
  104. positions 8 or 9 in the label.
  105.      Specifying B as the file mask will automatically be transformed to B.*, 
  106. as with the MS-DOS DIR.
  107.      You no longer have to specify every color with /A anymore.  You can skip 
  108. colors you want to leave alone, such as /A,,5,3 if you wanted.  You now can 
  109. specify up to 12 highlighting colors now, if one wanted, as the colors no 
  110. longer cycle any more after 6.  I used the remaining colors for the last 6 
  111. default extension colors.  Also, you can specify a background color if you 
  112. want by using  :' after the foreground color, such as by /A,11:5,,:3,,14.  
  113. The background color can only be from 0 to 7.   You can just specify the 
  114. background without specifying the foreground.  You can't specify the 
  115. background of the first parameter for /A (information), as it would have been 
  116. annoying to make it work.
  117.      I added /T for teletype mode, as some wanted to redirect the output to a 
  118. file or printer.  What this does is effectively kill the colors, by using 
  119. printf instead of cprintf.  I did this easily with a function pointer.  The 
  120. output does not pause, however, and is not broken by the breaks subsequently.  
  121. Just use "B > PRN" or "B > filename" to print or capture to file.
  122.      I added 4 switches in the process of adding the /B switch. /I is the one 
  123. responsible for showing the number of files and directories and the directory 
  124. size. /P is the one responsible for showing the current directory and mask. 
  125. /G is for grouping the directories away from the files.  These 3 are all on 
  126. by default, and can be turned off. /H is responsible for how tall a column 
  127. must be before a new one is started.  If /H is set to 4, if there are four 
  128. directory entries, there is only one column.  If there are 5 entries, a 
  129. second column is started.  These switches might all seem dumb, but they were 
  130. essentially free as they took very little code.
  131.      I added a switch to take out all the extraneous information in one 
  132. swoop, /B, similar to DIR's.  It turns off /Z, /F, /E, /I, /P, and sets /H to 
  133. 1.  This is useful to fit only the essentials on the screen.
  134.      I added to the help screen (/?) what switches are already in use, except 
  135. for /A and /C which would take up too much room.  This is just so people can 
  136. tell what actually is turned on.
  137.      I added a new /S switch which does the same as DIR's.  It recursively 
  138. searches through the subdirectories.  THIS SWITCH WAS A BIG PAIN IN THE BUTT 
  139. TO WRITE.  It has a few quirks that I am going to iron out, but it works 
  140. okay.  
  141.      I added 4 more extensions, making 16 extensions available to set.  Go 
  142. bananas with extensions!
  143.      In this version, I cut out a lot of extra code that wasn't needed.  I 
  144. combined my two classes into one, as it actually saved on code.
  145.  
  146. Version 1.31       all done around October, 1995 
  147.      I screwed up the DOS version's environment variable buffer thing
  148. inside the program.  If it is too long, the program freaks out.  This is
  149. from writing over unallocated memory areas!  Oops!  I kept forgetting to 
  150. release this.
  151.      I did not change the OS/2 version.
  152.  
  153. Version 1.32      all done around October, 1996
  154.      I had a complaint a long time ago about ending up in the wrong directory 
  155. if you break out of the program during a puase by using a CTRL-C or CTRL-Break.
  156. Well, my program used to actually change the directory as it worked, but now
  157. it doesn't.  It was trading one set of problems for another, but it seems to
  158. make the /S switch faster now.  I enabled the CTRL-C to work exactly as ESC 
  159. now, for both DOS and OS/2.
  160.      I added a new program, B_EDIT.EXE, which will allow you to actually burn
  161. your preferred switches into B.  This way you don't have to mess with the B
  162. environment variable or creating batch and command files.  Essentially, one
  163. uses the same switches with this new program.  However, the environment
  164. variable still works as normal.
  165.      I hacked on the sorting routine to streamline it some, and make the 
  166. sorting faster.  There is no other noticeable difference to the user because
  167. of this.
  168.  
  169. Future Changes: (All of this is up to time constraints, which are tight.)
  170.      It would be nice to be able to specify more then one wildcard for 
  171. directories, such as "B *.EXE *.ZIP".  This open a BIG can of worms.
  172.      Someone suggested adding commas to the file sizes.  This is actually a
  173. little more complex than it sounds, without adding a lot of code.  Also, this
  174. decreases the maximum size of the file that can fit into the allotted space.
  175. Anyway, I was thinking of adding it to /L.  Anyway, I can play with this some.
  176.      I REALLY want to add to /L the TRUE amount of disk space taken by a file
  177. as a file takes up a certain number of clusters (for FAT).  Consequently, a
  178. file of size 2 bytes takes up a cluster, which is at least 512 bytes.  An HPFS
  179. drive does not have this problem.
  180.      I plan to rewrite the OS/2 version with true API calls, adding 
  181. EA's to it with the /L switch.  I have been stating this since 1.0, but I have 
  182. to figure out the API's.  I also have to figure out the API calls for colored
  183. text in a command line session, which is 16-bit only, I think.
  184.  
  185.  
  186. If you find any bugs in my program, or want to suggest a change, 
  187. email me at:          dohnarms@uiuc.edu
  188. or mail me at:        Dohn Arms
  189.                       Loomis Laboratory of Physics
  190.                       1110 West Green Street
  191.                       Urbana, IL  61801-3080
  192.  
  193. I am rather open to suggestions to improve my program if it doesn't take a 
  194. lot of effort to hack it into my code or if it doesn't get in the way of this 
  195. being mainly an alternative for the DIR command.  ("B now will answer your 
  196. EMAIL for you, write your physics doctoral thesis, generate the Great 
  197. American Novel, and prove Fermat's Last Theorem, while still giving you the 
  198. contents of a directory, which is what you've come to expect from B!!!")
  199.