home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / zip201.zip / history < prev    next >
Text File  |  1993-09-22  |  69KB  |  1,288 lines

  1. Note, this history contains mail addresses and ftp locations that no longer
  2. exist, such as addresses at wsmr-simtel20 and directory names containing
  3. w8sdz, among others.  For problems, the correct email address is
  4. zip-bugs@wkuvx1.bitnet
  5.  
  6. ------------------------ Nov  7  1990   version 0.0 ------------------------
  7. ------------------------ Nov  8  1990   version 0.1 ------------------------
  8. ------------------------ Nov 12  1990   version 0.2 ------------------------
  9. ------------------------ Nov 14  1990   version 0.3 ------------------------
  10. Thank you for your comments.  Here is Zip 0.3 with almost all of that fixed.
  11. The changes include:
  12.  
  13. 1. Put \n\ for newlines in long strings (everyone had this problem).
  14. 2. Wrote my own bsearch (called search---different args).
  15. 3. Wrote my own timelocal (called invlocal), used whether STDC or not.
  16.    (Note to Greg: look at the code---I found a simple way to do it.)
  17. 4. -m now deletes empty directories also.
  18. 5. Changed crc.c to util.c and put search() in util.c.
  19. 6. Changed "void *" to "voidp *" and made voidp void for STDC, else char.
  20. 7. Removed -a option.
  21. 8. Some minor changes to zip.doc.
  22.  
  23. I did not do anything about Cliff Manis's problem with DIR not being
  24. defined.  DIR should have been defined in sys/dir.h.  If it wasn't, then
  25. there's something wrong with dir.h, or it is missing, or the opendir, etc.
  26. functions are missing.  I don't really want to think about what to do for
  27. the latter possibility.
  28.  
  29. NUnzip 3.99 does not appear to be Unix-ready.  It fails for file names longer
  30. than 12 characters (Segmentation fault), cannot find explicit names that
  31. do not contain a dot, and does not notice the Unix identifier (which should
  32. switch off name to lower-case mapping).
  33.  
  34. ------------------------ Nov 20  1990   version 0.4 ------------------------
  35. Yo Zippers,
  36.  
  37. Here is a first attempt at a Zip intended to work on System V.  Try using
  38. "make sysv" for such systems.  I also included replacements for memset()
  39. and memcmp() by Bill Davidsen and James Dugal for systems without those.
  40. Use "make old" to include those routines.  Sun's use getdents() like Sys V,
  41. even though it's BSD, so use "make sun".  For others, try just "make".
  42.  
  43. When using "make" a second time with a different request, it's best to erase
  44. all the .o files to force recompiling everything.
  45.  
  46. What follows are the changes I made and some things to try if you get it
  47. compiled.  Have fun.
  48.  
  49. Mark
  50.  
  51.  
  52. Changes from Zip 0.3 to Zip 0.4:
  53.  
  54. 1.  Changed third arg of search() to size_t to make lint happier.
  55. 2.  Replaced zip.doc with a man page, zip.1 (raw) and zip.man (formatted).
  56. 3.  rename() replaced with link() and unlink().
  57. 4.  Fixed vem in central header and added REVISION and REVDATE #define's
  58.     to zip.h.  (Didn't read Phil's appnote.txt carefully enough there.)
  59. 5.  Removed prototypes except for development host (NeXT).  (They're only
  60.     there for my benefit anyway---they should not affect the resulting
  61.     code.  Consider them some meager documentation.)
  62. 6.  Changed rindex() to strrchr().
  63. 7.  Improved behavior on a write failure when -b is used.
  64. 8.  Added Bill Davidsen's and James Dugal's memset(), memcpy(), and
  65.     memcmp() routines under the trusty ZMEM #define.
  66. 9.  Check that zip file is writeable before doing any real work.
  67. 10. Added #ifdef REGEX to use regcmp(), regex() instead of re_comp(),
  68.     re_exec().  (We'll see if this works.)
  69. 11. Replaced opendir(), readdir(), closedir() with my own opend(), readd(),
  70.     and closed() routines that use getdirentries() on BSD and getdents() on
  71.     System V (I hope) and Sun's.  An #ifdef DIRENT selects getdents().
  72. 12. zip.h no longer #includes string.h, instead defining the string
  73.     functions used explicitly.
  74.  
  75.  
  76. If you get Zip 0.4 to compile, here are some things to test:
  77.  
  78. 1.  Try zipping up some stuff, of course.  Use all the options that are
  79.     implemented.  Especially try -rp and -rpm on a directory tree (use
  80.     *test* files and directories, of course).
  81. 2.  Naturally check with unzip -t, but also check with "zip xxx" where
  82.     xxx.zip is the zip file.  This should say "nothing to do", but if it
  83.     says "error in zip file structure", there's a problem.
  84. 3.  After zipping, check that there are no $Z* files leftover.
  85. 4.  Try using -b, specifying a path on another device.  Check for $Z*'s.
  86. 5.  Try -d and a regular expression (like \*.o) on a zip file.
  87. 6.  And I'm interested in timing---try it on a 500K or so text file.
  88.  
  89. ------------------------ Nov 27  1990   version 0.5 ------------------------
  90. Hail fellow zippers,
  91.  
  92. Here's Zip 0.5.  The biggie is it now includes implosion, courtesy of Rich
  93. Wales.  Even as we speak, he is working on new algorithms for implode that
  94. promise to be significantly faster.  He might even get a paper out of it ...
  95.  
  96. You can use the -s option (shrink only) when testing to save a little time,
  97. but also try it normally to test implosion (if you test with text files
  98. of reasonable length, implosion will be chosen for most of them).  Also, for
  99. speed testing of implosion, use -i to not waste time trying to shrink.
  100.  
  101. Including implosion about doubles the size of zipnn.tar.Z, so I would like
  102. some input on distributing subsequent versions.  Would y'all like to keep
  103. on getting the uuencoded version via mail, or would you prefer a notice
  104. about availability via anonymous ftp on simtel20.army.mil in <w8sdz.zip>?
  105. (I have been sending the previous versions to Keith to put there, and will
  106. continue to do so.  I do not know what the lag time is for him to move it
  107. there.)
  108.  
  109. The other important change is that this is another attempt at getting the
  110. directory access routines working on all systems.  Read the installation
  111. part of the manual page (zip.man).  And if you feel like, read the whole
  112. thing.  I'm also taking suggestions for and bugs in the documentation.
  113.  
  114. The differences from Zip 0.4 include:
  115.  
  116. 1. Changed all occurences of "size_t" to "extent" and typedef'ed extent
  117.    to size_t (after an #include <stddef.h>) for ANSI C, or unsigned int
  118.    otherwise.  If anyone finds that they have a non ANSI C, that size_t
  119.    is defined, and that it is not the size of the compiler's int, then
  120.    please let me know.
  121. 2. Changed help() to put the help text in a static array of strings and
  122.    then printf() for each line.  Some compilers barfed on the long
  123.    string.  Suggested by davidsen@crdos1.crd.ge.com.
  124. 3. Added Rich Wales' implode routines, made their inclusion the default
  125.    (changed #ifdef IMPLODE to #ifndef NOIMPLODE).
  126. 4. Put "extern int errno;" in unixfile.c (redundant extern's should be ok).
  127. 5. Minor changes to the man page (zip.1 and zip.man).
  128. 6. Added warnings for names given on the command line that are not matched.
  129.    Lack pointed out by grimesg@sj.ATE.SLB.COM (George).
  130. 7. Changed back to opendir(), etc. on BSD systems.
  131. 8. Added NDIR #define for HPUX to #include <ndir.h> instead of <sys/dir.h>.
  132. 9. Redid Makefile, adding next (use shared library), sysvpw (System V's
  133.    that require linking the libPW library for regex routines), and hpux
  134.    (see #8 above).
  135.  
  136. As usual, report problems to info-zip@wsmr-simtel20.army.mil.  If you wish,
  137. you can, in addition, send the same report to me (madler@piglet.caltech.edu)
  138. or Rich (wales@cs.ucla.edu) if the problem is with implosion (i* files) for
  139. quicker reponse.
  140.  
  141. your humble servant,
  142. Mark Adler
  143. ------------------------ Dec  7  1990   version 0.6 ------------------------
  144. Greetings and Felicitations Honorable Zip Compatriots,
  145.  
  146. I have uploaded Zip 0.6, which incorporates most of your helpful comments,
  147. to Simtel20.Army.Mil, and it should evenually end up in <W8SDZ.ZIP> as
  148. ZIP06.TAR-Z.  The most significant change is the addition of encryption
  149. both as the -e option in Zip, and a new program, ZipCloak, that encrypts
  150. and decrypts zip entries.  This surely adds some new portability problems,
  151. due to the getp() routine which reads a password from the terminal with no
  152. echoing.  We'll see how well this flies ...
  153.  
  154. If someone wants to PKZIP up the tar.Z file, please do so.  I didn't zip
  155. it up myself because a) I'm lazy, and b) PKZIP can compress it better
  156. anyhow, and I don't have a PC.
  157.  
  158. Also, there is an EXPORT symbol used to remove encryption, so I can make
  159. an export version that does not have -e or ZipCloak.  This version will
  160. simply be missing a few source files and have a different Makefile.
  161.  
  162. I also added a few systems to the Makefile, and made some other changes to
  163. it based on all your detailed comments.  If it still works after all that,
  164. I'll be amazed.
  165.  
  166. Those and other changes from 0.5 to 0.6 are detailed at the end of this note.
  167.  
  168. I have not addressed the portability problem with the implode routines,
  169. since that is Rich's domain.  I have no idea what is causing it.  (For those
  170. who don't know, one system produced remarkable 90% compression rates with
  171. implode, but alas, it is a bug.)
  172.  
  173. One fellow complained that zipping up the README file results in a zip file
  174. that is larger than the original, even though Zip claims it compressed it.
  175. Well, it did compress it, but the ZIP file format has an overhead of
  176. 76+2*N bytes per file+22 bytes, where N is the length of the file name.
  177. And that's without comments or "extra" information.  So, a zip file with a
  178. single file whose name has six characters has an overhead of 110 bytes.
  179. README gets shrunk by 16% from 274 bytes to 230 bytes, resulting in a total
  180. zip file size of 340 bytes---larger than the original file (274 bytes).
  181. The moral is don't expect zip to compress a single small file.  The other
  182. moral is use unzip -v to see the compression.
  183.  
  184. Someone else asked about multi-disk zip files.  I'm not sure I believe in
  185. those, since PKZIP and PKUNZIP do not appear to suppport them (though it is
  186. part of the ZIP file definition in APPNOTE.TXT).  What I was planning on
  187. doing for that case was to write a ZipSplit program that would take a large
  188. zip file and try to optimally split it into the fewest number of zip files
  189. that are all less than the specified size.  Each would be a complete, stand
  190. alone zip file---not part of a single, multi-disk zip file.  There would
  191. also be a ZipMerge program.
  192.  
  193. This is the version of Zip that will live in infamy (note the revision date).
  194. Of course, some current Presidents of the United States think that should be
  195. September 7th, but I won't name any names.
  196.  
  197. I am going on vacation for about two weeks, so I expect to find many new
  198. problems reported upon my return.
  199.  
  200. And lastly, for my Holiday Greetings: Party On Dudes.
  201.  
  202. Mark Adler
  203. madler@piglet.caltech.edu
  204.  
  205.  
  206. Here are the changes from Zip 0.5 to Zip 0.6:
  207.  
  208. 1.  Minor documentation changes (zip.1 and zip.man).
  209. 2.  Fixed an embarrasing lack of recursion in opend/readd/closed functions
  210.     that only existed in 0.5.
  211. 3.  Moved $(LDFLAGS) to end of the linking command line in Makefile.
  212. 4.  Added make dnix for DNIX 5.2, 5.3 not using optimization (no -O).
  213. 5.  Wrote ZipCloak for encryption and decryption.
  214. 6.  Rich changed the output routines of implode to use zfwrite and zputc to
  215.     provide hooks for encryption (defined in crypt.h).  Also removed
  216.     function prototypes unless PROTO defined.
  217. 7.  Added encryption (-e) to Zip.
  218. 8.  Added make pyramid (use rindex() instead of strrchr()).
  219. 9.  Changed make to $(MAKE) and cc to $(CC) in Makefile.
  220. 10. Took out strip in Makefile.
  221. 11. Changed year from 1991 to 1990.  (How'd *that* get in there?  Of course,
  222.     it's not as bad as when I wrote a check the other day and dated it 1977.
  223.     I think my brain cell isn't working as well as it used to.)
  224. 12. Added make cray (use scc instead of cc).
  225. 13. Added make amdahl (use system() instead of rmdir()).
  226. 14. Added entry of one-line comments for added files (-c).
  227. 15. Put comment delimiters around name following #endif's in Rich's code.
  228.  
  229. ------------------------ Feb 13  1991   version 0.7 ------------------------
  230. Fellow stuck zippers,
  231.  
  232. Well folks, it's been a while since 0.6. so there have been a lot of
  233. changes on the way to 0.7.  The exhaustive listing is below, but here are
  234. some highlights ...
  235.  
  236. Implode now (appears) to be PKUNZIP compatible.  There were many odd
  237. little requirements implosed by the coding of PKUNZIP that were obtained
  238. from Phil Katz and associates.  Now that Rich has that working, he will
  239. likely be working on much faster string matching routines to speed up
  240. implode.
  241.  
  242. User interrupts (control-C or kill) are now caught and the temporary files
  243. are deleted, making for a clean getaway.
  244.  
  245. Self-extracting zip files for MSDOS can now be processed, with the
  246. extensions zip, ZIP, exe, or EXE.  This allows you to make self-extracting
  247. zip files for MSDOS by taking an existing one (like PKZ110.EXE) and
  248. deleting all the entries to get a prototype self-extracting zip file that
  249. can be copied and added to.  Of course, you should only do this if you are
  250. a registered user of PKZIP.  Note that if the file does not end in .zip,
  251. you have to give the full name.
  252.  
  253. I have relaxed some of the restrictions on zip files to allow processing
  254. ones with "authenticity verification" (applied by the PUTAV program that
  255. comes with PKZIP).  Of course, the authenticity no longer checks out if
  256. you muck with the file, but at least you can muck with it now.
  257.  
  258. The Makefile has been considerably simplified, thanks to suggestions from
  259. Jean-Loup Gailly.  Also, I wrote my own sh expression matcher, eliminating
  260. the regular expression hassles, and the REGEX symbol and -lPW options in
  261. the Makefile.
  262.  
  263. Many, many cosmetic changes, the most dangerous of which was turning on
  264. prototypes again in the hopes we can get them to work.  If they cause you
  265. problems, record the problems (for me), and then add a -DNOPROTO to the
  266. appropriate line in the Makefile and try again.
  267.  
  268. This version now compiles under Microsoft C 5.1 and Turbo C++ 1.0, with
  269. much thanks to Jean-Loup Gailly.  I say "compiles" and not "works" because
  270. I have not thoroughly tested it.  It does work, but there may be errors in
  271. the port as well as errors in the design.  By the latter I mean that there
  272. may be some disagreement over what you expect it to do and what it does,
  273. especially with regards to upper and lower case names and wildcard
  274. patterns.  Also, the implode routines do not yet work under MSDOS, so the
  275. compilations are done using NOIMPLODE.  There are two dumb batch files to
  276. do the compile: doturboc.bat and domsc.bat.  If someone would like to
  277. write make files for the make utilities that come with those languages,
  278. please be my guest.  I'm just too lazy.  However, I would probably resist
  279. including make files that require a make utility that does not come with
  280. those languages, be it commercial, shareware, or free.
  281.  
  282. There are two new programs: ZipSplit and Ship.  ZipSplit tries to split a
  283. big zip file into the smallest number of zip files less than a specified
  284. size.  This is to aid in using zip to backup to floppies.  It has the
  285. limitation that it cannot break up an entry in a zip file, since it makes
  286. complete, standalone zip files.  This means if any entry is larger than
  287. the specified size (plus some overhead), zipsplit will give up and not do
  288. the split.  It does *not* implement the multi-disk zip file format implied
  289. in APPNOTE.TXT.  ZipSplit will optionally write an index file and deduct
  290. the size of that file from the first zip file so both will fit on the
  291. first disk.
  292.  
  293. Ship is a fixed-up version of a program I have been using myself for some
  294. time in place of uuencode/uudecode.  It's purpose is to facilitate sending
  295. zip files through the mail.  It uses a more efficient coding scheme than
  296. uuencode (four bytes per five characters instead of three bytes per four
  297. characters) and includes a crc at the end of each file to check the
  298. veracity what was received.  It can split its output to a specified size
  299. and recombine it automatically at the other end, verifying the sequence.
  300. It can also mail the parts to a specified address, with subject lines
  301. identifying the parts, instead of making a bunch of files that you're just
  302. going to mail and delete anyway.  Example:
  303.  
  304.      % ship -500 -m saddam@pickle.iq README zip07.zip
  305.      README shipped
  306.      zip07.zip shipped
  307.      files part0001..part0004 mailed
  308.  
  309. will mail README and zip07.zip together in four chunks of 500 or fewer
  310. lines each.  At the other end, Saddam can save the parts into the files
  311. named in the subject lines (part0001..part0004), and then do:
  312.  
  313.      % ship -u part*
  314.      README received
  315.      zip07.zip received
  316.  
  317. For now, zip.1 (and zip.doc) are incomplete as far as MSDOS goes.  I'll
  318. put off doing that until the MSDOS version has stabilized.  Likewise, I
  319. have put off writing zipcloak.1, zipsplit.1, and ship.1 for the same
  320. reason.
  321.  
  322. There are, of course, all the little changes that fix bugs (what are
  323. those?), make the Makefile work on more systems, documentation, and,
  324. for the alert reader, an undocumented option ...
  325.  
  326. As usual, send reports to info-zip@wsmr-simtel20.army.mil, so everyone
  327. can get a chuckle out of whatever new bugs I've introduced.
  328.  
  329. Mark Adler
  330. madler@pooh.caltech.edu
  331.  
  332.  
  333. Changes from release 0.6 to release 0.7:
  334.  
  335. 1.  Changed Makefile to use mv instead of -o on compiles.
  336. 2.  Added MAKE = make to Makefile.
  337. 3.  Catch user interrupt or termination and delete temporary files.
  338. 4.  Allow general purpose flags in local and central headers to differ in
  339.     the "reserved" bits.  Keep both for copying zip entries verbatim.
  340. 5.  Removed prototype for closedir--return value not used and inconsistent
  341.     across systems.
  342. 6.  Wrote ZipSplit to break a large zip file into the smallest number of
  343.     zip files less than a specified size.  Run zipsplit with no arguments
  344.     to see the command help.
  345. 7.  Put error messages in globals.c to be common across zip, zipcloak, and
  346.     zipsplit.  Use #define's in zip.h for error numbers.
  347. 8.  Changed getp() to open a new file for the terminal device, and added
  348.     the echon() function to turn echoing back on when interrupted at
  349.     password prompt.
  350. 9.  Added warn()'s to distinguish various zip file structure errors.
  351. 10. Allow "extra" fields in local and central headers to differ.
  352. 11. Fixed percent compression calculation to work for very large files.
  353. 12. Included the program (makecrc.c) that generates the CRC table.
  354.     makecrc.c is not compiled or run by the Makefile, but is present for
  355.     completeness.
  356. 13. Added an undocumented (except for here) option, -v, to zip that checks
  357.     for "oddities" in the zip file structure and points them out if found
  358.     (but continues processing).
  359. 14. Put prototypes in crypt.h inside #ifdef NeXT to avoid redefinition
  360.     problems with other compilers.
  361. 15. Added "make zilog" for Zilog S8000 running Zeus 3.21.
  362. 16. Minor changes to the manual page (zip.1 and zip.doc).
  363. 17. Fixed bug in replace() (manifested by -b option).
  364. 18. readzipfile() now also checks the central directory start and size in
  365.     the end of central directory header.
  366. 19. Allow modification of self-extracting zip files (exe instead of zip).
  367. 20. Allow .ZIP as valid suffix as well as .zip (also .EXE and .exe).
  368. 21. Cleaned up malloc usage, free'd everything malloc'ed.
  369. 22. fclose'd all fopen'ed files explicitly.
  370. 23. Corrected assignment of one ftell() result from an int to a long.
  371. 24. Considerably simplified Makefile, based on Jean-Loup Gailly's
  372.     suggestions.
  373. 25. Renamed unixfile.c to fileio.c in anticipation of non-unix support.
  374. 26. Removed const's (pesky little buggers caused too many problems).
  375. 27. Wrote my own shell expression compare routine, took REGEX and -lPW's
  376.     out of Makefile, which removed the sysvpw make option.
  377. 28. Added tempname() prototype to crypt.h for the implode routines to use.
  378. 29. Trying string.h for prototypes of string functions if __STDC__
  379.     defined, which is what unzip.h does.
  380. 30. Turned prototypes on if __STDC__ defined (we'll try this one more
  381.     time).  They can be turned off using NOPROTO.
  382. 31. Improved source documentation.
  383. 32. Changed prototype of open in fileio.c to OF((char *, int, ...)).
  384. 33. Removed "local" from prototypes of main() (after all, it's *not*
  385.     local).
  386. 34. Wrote Ship program to supplant uuencode--slightly more efficient, has
  387.     error checking, file splitting, automatic mailing, other features.
  388.     Ship currently uses the command:
  389.         /usr/ucb/mail -s subject < tempfile
  390.     to send mail.  Please let me know what works for your system.  Note
  391.     that I want to be able to specify a subject line.
  392. 35. Ported to MSDOS Microsoft C 5.1, based on Jean-Loup Gailly's work.
  393. 36. Fixed add/update bug when -p not used.
  394. 37. Handle lower case conversion and devices (e.g. C:) for MSDOS.
  395. 38. Indented the #ifdef/#ifndef constructs that do not contain function
  396.     definitions, to improve the readability somewhat.
  397. 39. Cleaned up error handling.  Now use perror() for i/o errors.  Put the
  398.     errors and messages in ziperr.h.
  399. 40. Ported to MSDOS Turbo C++ 1.0.
  400. 41. Implemented wild card expansion on the command line for MSDOS and
  401.     handle MSDOS matching (*.* == all, not *).
  402. 42. Changed version required to unzip to 11 (1.10) since the implode
  403.     routines can procude an overlapping match one away from the end of the
  404.     window (PKUNZIP 1.00 requires two away from the end).
  405. 43. Changed old next make option to next10 (for version 1.0) and added a
  406.     new next make option for 2.0 (just called next) that uses the -object
  407.     linking option for smaller executables.
  408. 44. Added -z option to take a multi-line zip file comment from stdin.
  409. 45. Changed temporary names from $ZXXXXXX to _ZXXXXXX, where XXXXXX is
  410.     filled in by mktemp().  This avoids problems with "rm $Z*" in sh.
  411. 46. Got new implode routines from Rich that are (hopefully) PKUNZIP
  412.     compatible.
  413. 47. When -b is not specified, put the temporary files in the same
  414.     directory (i.e. the same device) that the zip file is (or will be) in.
  415. 48. Added doturboc.bat and domsc.bat files to compile for Turbo C++ 1.0
  416.     and Microsoft C 5.1.  I am interested in successes and failures with
  417.     other versions of those compilers.  In this version, the implode
  418.     routines do not work under MSDOS.
  419. ------------------------ May  6  1991   version 0.8 ------------------------
  420. Buenos Dias Amigos,
  421.  
  422. Heer ees dee Cinco de Mayo reeleese of seep, aka Zip 0.8.  The changes
  423. from 0.7 are in the (long) list below, but here are some highlights:
  424. faster implode, faster shrink, first attempt at a VMS version (thanks
  425. to Cave Newt), and a new program, ZipNote, to aid in editing zip file
  426. comments.  To compile under VMS, do an "@makevms.com".  To compile using
  427. Mircosoft C do a "make makefile.msc".  To compile using Borland (Turbo)
  428. C, do a "make -fmakefile.bor".  Please try to break any or all of these
  429. programs in every conceivable way--we're getting close a public release.
  430. Thank yew fer your support.
  431.  
  432. Mark Adler
  433. madler@pooh.caltech.edu
  434.  
  435. Changes from 0.7 to 0.8:
  436.  
  437. 1.  Added the -n option to prevent compressing already compressed files.
  438.     Documented -n in zip.1.
  439. 2.  Check the length of the compressed data in zipup() in case implode or
  440.     shrink has a bug.
  441. 3.  Fixed -v option to not complain about needing PKUNZIP 1.1.
  442. 4.  Added report of store/shrink/implode sizes when -v (verbose) used.
  443. 5.  Put in Rich's patch to fix 100% implosion bug.
  444. 6.  Fixed -i bug.
  445. 7.  Made changes to im_ctree.c and implode.c to (hopefully) make it work
  446.     under MSDOS.  (Jean-Loup said declare topmaxvals and botmaxvals as
  447.     U_INT in im_ctree.c, and use MSDOS, not __MSDOS__ in implode.c.)
  448. 8   Added implode routine compilation to domsc.bat and doturboc.bat.
  449. 9.  Replaced FILENAME_MAX with FNMAX, which is now always 1024.  (It seems
  450.     FILENAME_MAX is incorrectly set to 14 on some System V Unixii.)
  451. 10. Changed BEST to -1 so it is different from STORE (=0).  Redid some of
  452.     the method logic in zipup().
  453. 11. Changed wb+ to w+b in implode.c.
  454. 12. Removed "nothing to do" error for -u and -f.
  455. 13. Zip source distributions will now have tabs removed, except for
  456.     Makefile and Makefile.exp (no feelthy tabs rule).
  457. 14. Changed zip error on open failure to a warning.  This accounts for
  458.     files that do not have read permission or are locked, and files
  459.     deleted during the zip.  For entries being updated, the old entry is
  460.     copied over instead.  This change had the side effect of removing the
  461.     zipskip() routine.
  462. 15. Removed OBJC dependencies in Makefile.exp (didn't belong).
  463. 16. Removed strip from Makefile, instead using the -s link option.
  464. 17. Fixed -um and -fm to delete files whose entry's times were checked in
  465.     the archive.
  466. 18. Put portability stuff common to zip.h and crypt.h into tailor.h.
  467. 19. Added mark tracing to -v (for debugging).
  468. 20. Changed name and zname logic--an external name is always converted
  469.     into an internal zname, and vice-versa.  zname is now always
  470.     malloc'ed.
  471. 21. Fixed -z to use CRLF between lines (for PKZIP) and have no newline
  472.     after the last (or only) line.
  473. 22. Added clean to Makefile (deletes *.o, zip, zipcloak, zipsplit, ship).
  474. 23. Replaced LDFLAGS with LFLAGS1 and LFLAGS2 in Makefile (splits link
  475.     options before and after object files as in unzip).
  476. 24. Added scodos to Makefile (from Bill Davidsen).
  477. 25. Included stdio.h in tailor.h--removed stdio.h from zip.h and
  478.     implode.h.
  479. 26. Do not include stddef.h if M_XENIX defined.
  480. 27. Cast the arguments of all free() calls to (voidp *).
  481. 28. Added casts to char * for memset() and qsort() args in zipsplit.c.
  482. 29. Changed implode.h to define malloc and str* properly.
  483. 30. Fixed invlocal() to handle integer overflow correctly, as well as
  484.     reliably across compilers.
  485. 31. Got new implode.h from Rich with fix #29 above.  Removed stdio.h
  486.     include.
  487. 32. Commented out the abort() calls in im_ctree.c.
  488. 33. -ee requests a verification of the encryption password.
  489. 34. malloc and free tempath.
  490. 35. Documented -, SCO, and scodos in zip.1, and - in help().
  491. 36. Added revision.h for Zip revision number and date.
  492. 37. -u and -f with no arguments now (both) freshen the entire archive.
  493. 38. Use /Oait instead of /Ox for MSC to avoid loop optimization (buggy on
  494.     5.1, and sometimes even crashes compiler!).
  495. 39. Added ! (reverse) range matching to shmatch(), and early abort on '*'
  496.     failures (speeds up pathological patterns).  Cleaned up '\' (escape)
  497.     handling.
  498. 40. Changed '!' in ship to '{' (some EBCDIC translations do not include
  499.     !).  However, unship (ship -u) still understands '!'.  Also added the
  500.     -v option of ship to print out the version and revision date.  Also
  501.     now refuse to overwrite an existing file when unshipping (ship -u),
  502.     but there is a -o option to overwrite anyway.
  503. 41. Added a "fast" mode to ship using hard-arithmetic coding that is
  504.     nearly as efficient as base 85 coding, but much faster on 16-bit
  505.     machines (base 85 coding uses 32 bit multiplication and division).
  506. 42. Put tailor.h back in ship.c, so that ship.c can stand on its own.
  507. 43. Made -p the default, and added a new option, -j to do the opposite
  508.     (junk directory names).  -p is still there but does nothing, so as to
  509.     avoid annoying PKZIP users.  Changed documentation and help()
  510.     accordingly.
  511. 44. If -j is used, and two files are to be added with the same name, then
  512.     zip exits with an error.
  513. 45. Wrote ZipNote for editing zipfile comments.  Just do zipnote for
  514.     usage.
  515. 46. Replaced Rich's im_lmat.c with a new one from Jean-Loup.  Improves the
  516.     speed of implode by a factor of two, and even more for very large
  517.     files.
  518. 47. Reduced the execution time of shrink by 33% simply by moving the code
  519.     around (eliminated some unnecessary calls, moved some tests).
  520.     Shrink's execution time is now about 50% more than compress (it used
  521.     to take over twice as long).  Hash tables for shrink are still
  522.     intended for a future release.
  523. 48. VMS mods from Greg: replace() unlinks only after copy, changed
  524.     delete() to destroy(), added code for deletedir(), use creation time
  525.     instead of modification time, warn if stamp() attempted, changed
  526.     includes, make link rename and unlink delete, added findfirst,
  527.     findnext stuff, added wild() for VMS, modified newname(), procname().
  528. 49. Implemented internal<-->external name conversions for MSDOS and VMS.
  529. 50. For VMS matching, changed ? to %, removed bracketed ranges.
  530. 51. Added makevms.com, stolen from Unzip (vms_make.com).
  531. 52. Implemented -k (force the zip file to look like it was made by PKZIP).
  532. 53. Removed implode for VMS (it crashes--haven't tracked down where).
  533. 54. Got Jean-Loup's makefile.dos working for MSC 5.1 (makefile.msc) and
  534.     Turbo C++ 1.0 (makefile.bor).
  535. ------------------------ Jul 11  1991   version 0.9 ------------------------
  536. Hey gang,
  537.  
  538. Here is our very-nearly-ready-to-release version of Zip.  There will be no
  539. features added or changed from 0.9 to 1.0--only bugs fixed.  I hope that
  540. we can get 1.0 out pretty quickly then.  This is really your last chance to
  541. find bugs before it goes out, so please, please test all the programs as
  542. much as you can.  Try all the features, if possible, and perhaps try to
  543. think of ways to break the programs.  Also, and this is very important, read
  544. the documentation in zip.doc and "debug" that too.  I already know that it
  545. is not complete in 0.9, but please send any comments about errors, omissions,
  546. format, or whatever to Info-ZIP, even if they seem obvious.
  547.  
  548. The highlights of the changes from 0.8 to 0.9 are: faster, slicker implode;
  549. operation in small model on MSDOS for speed; a new temporary file interface
  550. for faster operation on small files; some shrink improvements; and some new
  551. options (-y, -g, -q).  Also, ship has been enhanced in several ways, not the
  552. least of which is a help option (-h).
  553.  
  554. Have fun.
  555.  
  556. Mark Adler
  557. madler@tybalt.caltech.edu
  558.  
  559.  
  560. Changes from 0.8 to 0.9:
  561.  
  562. 1.  Removed the "not implemented yet" note in help() for -k (it *is*
  563.     implemented now).  Removed from bug list in zip.1 too.
  564. 2.  Fixed Turbo C implode bug.
  565. 3.  Added /link /e in makefile.msc for ship.c.
  566. 4.  Made handler() in zipnote.c the same as handler() in zipsplit.c.
  567. 5.  Added -y option in Unix to store symbolic links as such.  (We need
  568.     Unzip to be aware of symbolic links and use symlink() to recreate them.)
  569. 6.  Ignore control characters in unship input.
  570. 7.  Use prototypes and ANSI libraries if MSDOS.  (Used to check for Turbo C,
  571.     but Microsoft C 6.0 also does not define __STDC__ unless strict ANSI
  572.     is requested.)
  573. 8.  Added mod to ct_fsort() from Rich that should remove any qsort()
  574.     dependencies in implode output.
  575. 9.  Removed some 32/16-bit prejudices in util.c and crypt.c that affect
  576.     64-bit integer (short, int, and long) machines (Cray).
  577. 10. Added System V MAILX option to ship.c to use the mailx command.  This
  578.     is automatically activated by DIRENT if ship is compiled by the zip
  579.     makefile.
  580. 11. Added patches from Greg Roelofs for echo control on Cray and Amdahl.
  581.     The patch uses termio.h and ioctl(), and is assumed for all System V,
  582.     not just those (we'll see how this flies).
  583. 12. Changed -Ox to -Oacegit -FPi87 in makefile.msc.  Added /nologo to link.
  584. 13. Applied J-L's 082 mods (Sinatra style): select 4K window for < 5.5K,
  585.     8K window for >= 5.5K files (just like PK does); various im_ctree.c
  586.     mods verbatim (except for the treename warning, which I did differently);
  587.     various im_lmat.c mods verbatim (except macros are done the ugly portable
  588.     way); farmalloc'ed in shrink.c; changed makefile.msc and makefile.bor to
  589.     use small model; added J-L to zip.1 acknowledgements (oops).
  590. 14. Moved struct zlist's and struct flist's to far storage (needed by above
  591.     mods).  Unfortunately, I can't move the names and other things pointed to
  592.     by those structures into the far space, since they are arguments to
  593.     library functions like strcmp() and fwrite().
  594. 15. Changed zipup() to both shrink and implode only on files smaller than
  595.     BSZ.  Also in that case, free up shrink data structures before allocating
  596.     the implode data structures.  Changed from fopen() to open() except for
  597.     VMS.
  598. 16. Fixed bug in dosmatch() to free malloc'ed space.
  599. 17. MINIX mods (do not need minix make option): call tempname() with a unique
  600.     character (MINIX mktemp() flawed); defined S_IWRITE as S_IWUSR if S_IWUSR
  601.     defined; removed explicit signal dereference.
  602. 18. Fixed bug in unship when used as a filter with no args.
  603. 19. Changed getnam() to not use static storage.
  604. 20. Copy permissions from old to new zip file (zip, zipcloak, zipnote).
  605. 21. Added patches for AT&T 3B1, added 3b1 target to makefile, added to zip.1.
  606. 22. Made FNMAX 256 for MSDOS (is 1024 otherwise).
  607. 23. Used the "pyr" predefined symbol for Pyramid systems in tailor.h.
  608. 24. Added Greg's VMS mods to ship.c.  Added help to ship.c (-h or -?).
  609.     Changed meaning of -nnn arg from lines to K.
  610. 25. Moved ZMEM routines to fileio.c to properly include them in zipnote and
  611.     zipsplit.
  612. 26. Added -s option to ship to specify a subject line prefix.
  613. 27. Fixed -z in zip to not trash leading blank lines in the comment.
  614. 28. Made ship recognize "unship" in argv[0] a little more flexibly.
  615. 29. Made sure temporary zip files are closed before being deleted by an
  616.     error or interrupt.
  617. 30. Added a new temporary file interface and new source files tempf.c and
  618.     tempf.h.  This avoids making temporary files for small (<16k) output.
  619.     Both shrink and implode use this.
  620. 31. Added OS/2 patches, files.  However, left zip case-sensitive for OS/2
  621.     names, as in Unix.
  622. 32. Removed amdahl target in makefile, using UTS symbol instead.
  623. 33. Changed -y to depend on definition of S_IFLNK.
  624. 34. Avoid leading periods on lines in ship output by inserting a space.
  625. 35. Ship is now extensible: added a warning for "unsupported keyword".
  626.     Such keywords can appear before the "ship" line, for example.
  627. 36. Added -g option to allow "growing" the zip file.  If just adding new
  628.     entries to a zip file, -g will write over the old zip file without
  629.     creating a temporary.  The danger is that if there is an error, the
  630.     old zip file will be lost.  If not just adding, then -g is ignored.
  631. 37. Added aux (A/UX) target to makefile.
  632. 38. In shrink.c, removed unnecessary FreeList and ClearList arrays, and
  633.     the recursive Prune() routine.  This also resulted in a speedup in
  634.     shrink of about 15%.  It is now only about 30% slower than Unix compress.
  635. 39. Added -q option for quiet operation.
  636. ------------------------ Sep 21  1991   version 1.0 ------------------------
  637. Hello world!
  638.  
  639. This is the first public release version of Zip and its cohort utilities.
  640. We hope you enjoy using it much much more than we enjoyed writing it and
  641. trying to get it to work on every fritzing raffing bliffing nobbin Unix
  642. system in the galaxy.
  643.  
  644. Please feel free to send any problems, complaints, suggestions, kudos,
  645. ridicule, or whatever to zip-bugs@cs.ucla.edu.  If there were a way to
  646. send cookies over the net, we'd accept those too.
  647.  
  648. Thank yew fer yur support.
  649.  
  650. Mark Adler
  651. madler@tybalt.caltech.edu
  652.  
  653.  
  654. Changes from 0.9 to 1.0:
  655.  
  656. 1.  Removed some pesky carriage returns masquerading as spaces in fileio.c
  657.     and zipup.c.
  658. 2.  Removed #include memory.h in tempf.c (string.h good enough).
  659. 3.  Compile ship in doturboc.bat.
  660. 4.  Miscellaneous zip.1 (zip.doc) changes.
  661. 5.  Fixed mistake in stamp() in fileio.c (didn't double seconds).
  662. 6.  Applied Jean-Loup's mods for Cray's (do not assume 16-bit shorts).
  663. 7.  Removed pyramid make option, since #ifdef pyr seems to work.
  664. 8.  Added some casts to tempf.c to clean up some warnings.
  665. 9.  Added comment to makefile.exp saying what it is.
  666. 10. Removed length checks in zipup.c to fix problem with using Vax variable
  667.     record length formats.
  668. 11. Fixed VMS replace-across-devices problem.
  669. 12. Changed order of include's in implode.h to make tailor.h show up first.
  670. 13. Added Convex mods and make target.
  671. 14. Fixed path delimiter under VMS for unship.
  672. 15. Added ship to makevms.com.
  673. 16. Put in new copyright messages.
  674. 17. Added aix make target.
  675. 18. Fixed zipsplit.idx to start counting at one like the file names.
  676. 19. Changed -a (append VMS version number) to -w to leave -a open for a
  677.     possible future option.
  678. 20. Back to separate makefiles for Microsoft and Borland (.msc and .bor).
  679. 21. Workaround in fileio.c for Borland stat() bug: stat() succeeds for wild
  680.     card names that match existing files.
  681. 22. Added "(did you remember to use binary mode when you transferred it?)"
  682.     to the "probably not a zip file" warning.
  683. 23. Changed utilities to append .zip only when the zip file name does not
  684.     contain a dot.
  685. 24. At least mentioned the other utilities in zip.doc (zipcloak, ship, etc.),
  686.     and documented upper case matching of names when using -d under MSDOS.
  687. 25. Fixed bug in MSDOS version: zip foo c:autoexec.bat wouldn't work.
  688. 26. Added hidden/system attribute bug to BUGS in zip.1
  689. 27. Fixed recognition of unship in ship when unship is in a path.
  690. 28. Added non-stream-LF VMS bug to zip.1 bug list.
  691. 29. Fixed bug in #23 above when path has dots.  Documented #23 in zip.1.
  692. 30. Show disclaimer only for -l, add -h and -l to zip utilities.
  693. 31. Applied Minix patches.
  694.  
  695. ------------------------ Aug 29  1992   version 1.1 ------------------------
  696. This is the last official version supporting the implosion and
  697. shrink methods. It corrects only the three problems given below.
  698. For better compression and many other improvements, use zip 1.9
  699. or above, which should be available on the site where you found
  700. zip 1.1.
  701.  
  702. 1. Fix a compiler bug in Interactive Unix (the original code compiled
  703.    without -O).
  704. 2. Fix declarations incompatible with the SVR4 include files
  705. 3. Additional workaround to bypass another bug in pkunzip 1.10 (unzip 4.1
  706.    and above do not have this problem).
  707.  
  708. Please use zip 1.1 only if you require compatibility with pkzip 1.10.
  709. By the time you read this, pkzip 2.0 will probably have been released.
  710. You can send problem reports to zip-bugs@cs.ucla.edu, but please check
  711. first if your problem has not been corrected in zip 1.9 or above.
  712. Thanks.
  713.  
  714. ------------------------ Feb 17  1992   version 1.5 ------------------------
  715. 1.  pkzip 2.0 format (deflation) now supported
  716.     Shrink and Implode left in zip 1.1 only for backward compatibility
  717.  
  718. ------------------------ Mar 25  1992   version 1.6 ------------------------
  719. 1.  zip can now be used as a filter in a pipe
  720. 2.  Optimized assembler code for MSDOS and OS/2
  721. 3.  encryption is now supported
  722. 4.  Better VMS support for various file formats other than Stream-LF
  723. 5.  Better OS/2 support
  724. ------------------------ Apr 24  1992   version 1.7a ------------------------
  725. 1.  On VMS, create new zip files in fixed length 512 format
  726. 2.  Call VMSmunch only if the zip file existed previously
  727. 3.  Avoid mktemp() and use simpler name for temporary file.
  728. 4.  Rename dir_os2.[ch] -> os2zip.[ch]
  729. 5.  On MSDOS, use fdopen() after setmode() in zip.c
  730.     Added setmode() for stdin in zipup.c
  731. 6.  Do not split #if on two lines (some compilers don't like this)
  732. 7.  __MSDOS__ instead of __BORLANDC__ in crypt.c
  733. 8.  Added (char*) cast in deflate.c to avoid warning
  734. 9.  OS/2 support for storing file attributes in an extra field.
  735.  
  736. ------------------------ June 6  1992   version 1.8a ------------------------
  737. 1.  Fixed bug in tempname() for VMS
  738. 2.  Fixed type problems in zipup.c for gcc under VMS
  739. 3.  Added VMSmunch in vms subdirectory and updated makefile (descrip.mms)
  740. 4.  The extra field for OS/2 is now compressed (Kai Uwe Rommel)
  741. 5.  Added various fixes for djgcc (Onno van der Linden)
  742. 6.  Fixed long standing bug in wild() for MSDOS (Jon Saxton)
  743. 7.  Added support for ZIPOPT environment variable (Bill Davidsen
  744.     and Antoine Verheijen).
  745. 8.  Fixed zipsplit bug for VMS (Greg Roelofs)
  746. 9.  Added fix for DEC OSF/1 (Kjetil W. J{\o}rgensen)
  747. 10. Added fix for ultrix on DECstation (Jonathan Kamens)
  748. 10. Added sysnopis for zipsplit, etc... in zip.1 (Jonathan Kamens)
  749. 11. Fixed MAILX problem for SysV in ship.c (Greg Roelofs)
  750. 12. Added Linux support (Humberto Ortiz-Zuazaga)
  751. 13. In makefile.os2, support for $(FP), masm 5.x, match.s (Greg & Kai)
  752. 14. Added -w-cln in makefile.bor to avoid warning (David Kirschbaum)
  753. 15. VMS echo suppression code incorporated (Greg Roelofs)
  754. 16. Added fix to match.asm if WSIZE != 32768
  755. 17. Create .exe files directly for target scodos (Bill Davidsen)
  756. 18. Fixed the -0 bug (compressed size was doubled)
  757. 19. Changed -- (read names from stdin) to -@ to reserve -- for undoing
  758.     the effects of ZIPOPT
  759. 20. Create zip entries for directories with the -r option, so that
  760.     directory attributes can be saved. (Kai Uwe Rommel)
  761.  
  762. ------------------------ June 17  1992   version 1.8b ------------------------
  763. 1.  Changed -s (Software license) to -L (license) to avoid clash
  764.     with the old shrink option.
  765. 2.  read_buf declared as extern only in zip.h
  766. 3.  avoid warnings in zip.c for Turbo C: while ((ch = *s) != '\0'
  767. 4.  suppressed unused variables mem_inbuf and mem_outbuf in bits.c
  768. 5.  Speed up the search for start of zip structures (pksfx files)
  769. 6.  Allow updates of an empty pksfx file (original file was destroyed)
  770. 7.  Keep correct offsets for pksfx files
  771. 8.  On MSDOS, in2ex() was updating the input argument. Also, do not
  772.     force upper case: keep the name as it was in the old zip file.
  773.     This is important for -f. Similarly, force lower case in ex2in()
  774.     on MSDOS, except when dosify (-k) is imposed. I kept however the
  775.     old code under the flag FORCE_UPPER in case I goofed.
  776. 9.  When growing a zip file with -g and interrupting it, the whole file was
  777.     lost. We now attempt to restore the previous state of the file.
  778. 10. "zip -fo jjj", where jjj is a non-existent zipfile, used to dump core.
  779.     We now emit a warning.
  780. 11. More generally, we emit a warning for all options assuming the presence
  781.     of a zip file (-d,-f,-u,-g) if the zip file did not exist or was empty.
  782.     Idem for "zip -o jjj" on non-existent or empty zip file.
  783. 12. Copy also the extended local entry in zipcopy().
  784. 13. Updated zip.1 and vms/vms_zip.rnh to describe the new features.
  785. 14. Fixed bug in zipsplit (wrong offsets for all files but first)
  786. 15. Added match.s, optimized 386 version of longest_match() for Unix and
  787.     32 bit OS/2 (with gas).
  788. 16. Added os2/match32.asm, optimized 386 version of longest_match() for
  789.     32 bit OS/2 (for assemblers using Intel syntax). NOT TESTED YET.
  790. 17. Added "assume DS: DGROUP" in match.asm to allow SS_NEQ_DS even with MSC.
  791. 18. Added include <malloc.h> in tailor.h for Unix. This is required on
  792.     16-bit Unix.
  793. 19. Use init_upper() in os2zip.[ch]
  794. 20. Switched back to old tempname(): the new one could overwrite an existing
  795.     file, it ignored tempath, and it caused problems on VMS for files with a
  796.     '.' in the name. Kept however the old code if NO_MKTEMP is defined.
  797. 21. Use 0x1 instead of (unsigned)1 in definition of HSIZE (one compiler
  798.     does not like the cast in an array definition).
  799. 22. Include VMSmunch.h in zip.c
  800. 23. On VMS, zip -o screwed up all offsets in pksfx files
  801.  
  802. ------------------------ June 18  1992   version 1.8c ------------------------
  803. 1.  Added missing comma in revision.h
  804. 2.  invlocal doesn't work on Cray, use mktime instead (Greg Roelofs)
  805. 3.  On VMS, use ctx=stm only to read zipfiles, not input files.
  806. 4.  Undo change 21 above, which breaks even more compilers
  807. 5.  Include dos.h in util.c and fix trivial compilation errors
  808. 6.  Undo change 1 of 1.8b: -L already used for OS/2 (Steve Salisbury)
  809. 7.  Do not create a zip entry for directory "." (Greg Roelofs)
  810. 8.  Avoid core dump when -@ is given before the zip file (and do
  811.     the right thing).
  812.  
  813. ------------------------ June 19  1992   version 1.8d ------------------------
  814. 1.  Force calloc to take unsigned values. (Problem with one 16 bit
  815.     compiler on AT&T 6300).
  816. 2.  Fixed fileio.c for Convex (Bill Davidsen)
  817. 3.  util_ was missing for zipnote and zipsplit in make_vaxc.com (Glenn Andrews)
  818. 4.  Added warning in zip.1 and below (do not update encrypted files
  819.     with pkzip 1.10).
  820. 5.  Fixed fix 12 of 1.8b. I drink too much. (Confused bit 1 with bit 8).
  821. 6.  Updated install.doc
  822. 7.  Fixed result type of os2 version of init_upper().
  823. 8.  Added makefile entry for AT&T 6300 (Peter Mauzey)
  824. 9.  Fixed typo in descrip.mms
  825. 10. Removed zipfile.c warning: shift count exceeds width of value shifted
  826. 11. Fix enormous bug in init_upper for VMS (upper stayed as zero)
  827.  
  828. ------------------------ June 23  1992   version 1.8e ------------------------
  829. 1.  Don't include malloc.h by default (does not exist on VMS)
  830. 2.  Define calloc for 16 bit systems (required for AT&T 6300)
  831. 3.  Simpler make_vaxc.com (Greg Roelofs)
  832. 4.  New vms/descrip.mms and fixes in zipfile.c (Igor)
  833. 5.  seekable() must be true for in-memory compression.
  834. 6.  Undefine S_IFLNK if NO_SYMLINK (problems with VMS and SCO)
  835. 7.  Include descrip.h only once in fileio.c (Mike Freeman)
  836. 8.  New os2/match32.asm (untested) and makefile.os2.
  837. 9.  Added dosflag in zlist and flist entries, to force MSDOS file
  838.     attributes. It is set if dosify is set, or (under OS/2) for a file
  839.     on a FAT file system which does not have a long name (Kai-Uwe).
  840. 10. Added GetFileTime on OS/2 to avoid core dump on bad dates (Kai-Uwe)
  841. 11. New vms.c supporting deflation of extra headers
  842.  
  843. ------------------------ June 24  1992   version 1.8f ------------------------
  844. 1.  Incorporated (finally!) Mac support. *Untested*. (James E. O'Dell)
  845. 2.  Another long awaited change: Atari ST. Also *untested*.
  846.     (martin@atlantic.cs.unb.ca)
  847. 3.  New makefile.os2, as usual. (Kai-Uwe)
  848. 4.  Support for Watcom C in os2zip.c. *Not yet working*. (Kai-Uwe).
  849. 5.  I forgot to output the length for stored blocks...
  850.  
  851. ------------------------ June 29  1992   version 1.8g ------------------------
  852. 1.  New os2zip.c and makefile.os2 as usual.
  853. 2.  In the VMS makefiles, define the symbols systematically so that
  854.     people won't forget to update them. (Fed up with the reports that
  855.     zip does not accept parameters).
  856. 3.  Use -L for software License and -E for Extended attributes
  857. 4.  Added -F 1000 in makefile entry for scodos (Bill Davidsen)
  858. 5.  Replaced strcmp with namecmp in zip.c for check of zipfile name.
  859. 6.  New os2/match32.asm (still not working)
  860. 7.  Do not close stdin (check for null ifile in zipup.c).
  861. 8.  signal handlers for zip and zipcloak fixed to restore echo for VMS
  862. 9.  slightly cleaner VMS echo calls in fileio.c
  863. 10. stricmp missing from VMS zipsplit, zipnote:  since UTIL was unused for
  864.     util.c, I used it to specify stricmp only; then I had to change some of
  865.     the makefiles which previously used util_.* to use util.*, and I added
  866.     util_.obj to OBJS and OBJN in all of the VMS makefiles. (Greg)
  867. 11. ifdef'd out the debugging commentary in vms.c (Greg)
  868. 12. new VMS makefile for use with (free) MAKE/VMS (Greg)
  869. 13. Eliminate some compiler warnings from BCC, MSC, gcc (Onno van der Linden)
  870. 14. Do not use MSDOS version of init_upper for djgpp (Onno van der Linden)
  871. 15. In msdos/makefile.gcc, added util_.o to OBJN and OBJS, and used asm version
  872.     match.o (Onno van der Linden)
  873. 16. Added install target in makefile (Alvin Koh)
  874. 17. Default makefile entry is named 'all'.
  875. 18. fixes to vms.c for gcc (Igor)
  876. 19. Define S_IWRITE as S_IWUSR for Minix only (problem on X/OS) (Fulvio Marino)
  877. 20. Added xos makefile entry  (Fulvio Marino)
  878. 21. In VMS, files without an extension are now stored without the dot (Greg
  879.     and Igor).
  880. 22. Save/restore ebx in match.s and match32.asm
  881. 23. Fixed MAX_DIST in match.s (the asm code produced different results
  882.     than the C code)
  883. 24. Fixed the -b option: allow ENOTSAM instead of EXDEV (used by Turbo C).
  884. 25. Do not complain about zip files created on MSDOS with versions of zip
  885.     above 1.0.
  886.  
  887. ------------------------ Aug 14  1992   version 1.9a ------------------------
  888. 1.  Changed -S to -L in help screen
  889. 2.  Do not declare chmod for aegis (George Grimes)
  890. 3.  Cleaner vms/make_gcc.com (Mike Freeman)
  891. 4.  Disabled built-in functions for Linux (Arnt Gulbrandsen)
  892. 5.  Added a description of the deflation algorithm in algorith.doc.
  893. 6.  Removed ship, now distributed separately.
  894. 7.  Added the CRC for in-memory compression. The extra-field format is now
  895.     the official PKWare format (Kai-Uwe)
  896. 8.  On OS/2, force lower case names for FAT files if -k is not given. (Kai-Uwe)
  897. 9.  Allow coutry dependent mapping for upper to lower case. (Kai-Uwe)
  898. 10. Use namecmp instead of stricmp which was confusing. (Onno van der Linden)
  899. 11. Avoid some warnings in deflate.c (Onno van der Linden)
  900. 12. Avoid one warning in crypt.c, and distribute it separately.
  901. 13. Call init_upper() for all utilities and add util_.o in makefiles (Kai-Uwe)
  902.  
  903. ------------------------ Aug 18  1992   version 1.9b ------------------------
  904. 1.  Fixes for Windows NT (Dave Feinleib)
  905. 2.  Avoid two warnings for Ultrix (makefile and fileio.c)
  906. 3.  Finally removed the declaration of chmod(), which causes endless
  907.     new patches for each new target.
  908. 4.  Allow -L for license in the utilities (zipsplit, zipnote, zipcloak).
  909. 5.  Mention funzip in zip.1.
  910. 6.  Untabify all sources files (for more reliable context diffs)
  911. 7.  Fix bug in trees.c dealing with bit length overflow.
  912. 8.  Fix bug in zipup.c when reading from stdin: if (ifile) does not
  913.     produce the expected result.
  914. 9.  Avoid duplication of bug list in zip.1 and history.
  915. 10. Removed ship from zip.1.
  916.  
  917. ------------------------ Aug 20  1992   version 1.9 ------------------------
  918. First official version compatible with pkzip 1.9a.
  919.  
  920. 1.  Renamed the atari files to avoid name conflicts (for unzip -j).
  921. 2.  Don't tell 'use zip -L' in zipnote and zipsplit.
  922. 3.  Add a rule for util_.ojb in the msdos and atari makefiles
  923. 4.  Fixed compilation option for util_.obj in makefile.msc (msc 5.1 bug)
  924. 5.  Added the 'Where' file.
  925. 6.  More information about zip in Readme.
  926. 7.  Fixed install.doc.
  927. 8.  Fixed vms/vms_zip.rnh
  928. 9.  Fixed init_upper() in util.c and os2zip.c (Kai-Uwe)
  929.  
  930. ------------------------ Aug 26  1992   version 1.9p1 ------------------------
  931. This is official patch 1 for zip 1.9, not a beta version.
  932.  
  933. 1.  Simplified makefile entry for convex (Rafal Maszkowski)
  934. 2.  Do not use 'const' even for djgcc (Onno van der Linden)
  935. 3.  Use gcc in linux makefile entry (Arnt Gulbrandsen)
  936. 4.  Fix serious bug in -l option (file truncated).
  937. 5.  Fix stack problem for OS/2 IBM-C (Kai-Uwe)
  938. 6.  Fix serious bug in zipup.c sometimes causing file truncation to zero bytes
  939.     or internal error (Timo Salmi and Robert Tobler)
  940. 7.  Do not unlink() directories when running as root (Charles Hannum)
  941. 8.  Fix msdos/makefile.bor and msdos/makefile.gcc (Onno van der Linden)
  942.  
  943. ------------------------ Oct 14  1992   version 1.9c ------------------------
  944. This is a beta version.
  945.  
  946. 1.  Added hp target in makefile, in addition to hpux (Bo Kullmar)
  947. 2.  Do not store entries with empty names with zip -rj (Johan Vromans)
  948. 3.  One VMS system was reported to define S_IFLNK: disable it.
  949. 4.  man page for /usr/man/manl must be zip.l, not zip.1 (Bruno Pillard)
  950. 5.  fixed yet another typo in msdos/makefile.bor (util_.c)
  951. 6.  use fprintf(msg, ...) instead of printf (zip file on stdout)
  952. 7.  Fix yet another serious bug in trash(): all directories up to the
  953.     root could be removed, when using: zip -m foo /a/b/c/d.
  954.     Now only this file (d) is removed. With -rm, the directory /a/b/c
  955.     is also removed if empty, but not /a/b. (W. T. Sidney)
  956. 8.  Avoid warnings in deflate.c and util.c (Jim Reisert)
  957. 9.  Use ASMV instead of ASM (used in signal.h in SCO SVR3.2 !)
  958. 10. Add directory names on VMS also (Greg)
  959. 11. Avoid warnings in trees.c with MSC 7.0 -- that's a bug in MSC (Piet Plomp)
  960. 12. Support "make list" as in unzip (Vesselin Bontchev)
  961. 13. Unification with unzip: Readme -> README, cray3 -> cray_v3 (Greg)
  962. 14. Moved all crypt stuff to crypt.c. Use dummy crypt.c for export
  963.     version. We now have a single makefile for both versions. (Greg)
  964. 15. New makefile entry for Dynix/ptx 1.3 (Alan Phillips)
  965. 16. Made the encryption random header much more random.
  966. 17. Changed "ifdef unix" into "ifdef SYSV" in match.s
  967. 18. Added 386BSD patches (Frank van der Linden)
  968. 19. Added TOPS20 support (Frank Wancho)
  969. 20. Finally (!) incorporated the new man page (Rick Rodgers)
  970. 21. Rewritten history. (Nice to be able to do this, isnt'it?) That was
  971.     for the zip 1.1 release.
  972. 22. Try to zip zip files with -9.
  973. 23. Support option -DBIG_MEM to read input file in a single step (for TOPS20)
  974. 24. Support mmap() of input file instead of read(). (NOT YET WORKING.)
  975.  
  976. ------------------------ Oct 19  1992   version 1.9d ------------------------
  977. 1.  Fixed "zip -n : foo" to compress all files instead of storing them.
  978. 2.  Don't force -o with -e (no longer necessary)
  979. 3.  Don't take directories into account for -o.
  980. 4.  Under MSDOS, zip now sets the attribute correctly for hidden and system
  981.     files. unzip restores them correctly (but not pkunzip).
  982. 5.  Store attributes correctly on 16 bit systems such as the AT 6300 PLUS
  983.     (Peter Mauzey)
  984. 6.  Support -ll for CR LF to LF translation
  985. 7.  On VMS, allow creation of remote zip files accessed through Decnet (Igor)
  986.     It is still not possible to compress remote files because of stat() bug.
  987. 8.  Use same declaration of open() in zipup.c and crypt.c.
  988. 9.  Do not restrict to 8+3 filenames in Windows NT (Scott Briggs)
  989. 10. Renamed some parameters in bits.c to work around buggy compilers
  990.     (Jim Van Zandt, Peter Mauzey) <jrv@mbunix.mitre.org>
  991. 11. Added makefile entry for coherent (Fred Smith)
  992. 12. Do not define const for precompiled headers in NeXT 3.x (Mark)
  993. 13. Added -T option to test zip file integrity
  994. 14. Fixed bug for stored blocks (James Van Artsdalen)
  995. 15. Added zipcloak.prj and *.tc files for Turbo C
  996. 16. Improved and updated zip.1.
  997. 17. New makefile.os2 as usual (Kai Uwe)
  998. 18. Do not defined __32BIT__ if already defined (Kai Uwe)
  999. 19. Do not decrypt the random header twice in unzip (Greg)
  1000. 20. More patches for DJGCC (Onno van der Linden)
  1001. 21. Updated all makefiles to use crypt.
  1002.  
  1003. ------------------------ Oct 21  1992   version 1.9e ------------------------
  1004. 1.  Added some patches for TOPS20 which had been forgotten in 1.9c
  1005.     (Frank Wancho)
  1006. 2.  For zip -T, use unzip -qq and invert test of system() for VMS (Greg)
  1007. 3.  Made zipup.c more portable. Use set_extra_field() for all systems.
  1008. 4.  The MMAP code now works and is faster on my Sun.
  1009. 5.  Speed up zip -1 with another way to stop searching soon.
  1010.  
  1011. ------------------------ Oct 23  1992   version 1.9f ------------------------
  1012. 1.  Put back CFLAGS in vms/makefile.vms (Greg)
  1013. 2.  Use uch instead of byte in crypt.c (Greg)
  1014. 3.  Fix bug for zip -0 with MMAP
  1015. 4.  Use full version number instead of x.y.
  1016. 5.  Fixes for djgcc (Onno van der Linden)
  1017. 6.  Olimit 750 for Ultrix (Michael Lawler)
  1018. 7.  Support MMAP on SVR4
  1019. 8.  One more attempt to fix the zip -rm bug on VMS (not yet checked)
  1020.  
  1021. ------------------------ Oct 26  1992   version 1.9g ------------------------
  1022. 1.  With -T, test zip file even if there is nothing else to do.
  1023. 2.  New tops20/make.mic, fix a few tops20 compilation errors (Frank Wancho)
  1024. 3.  New makefile.os2 as usual, plus some simple fixes: (Kai Uwe)
  1025.     - moved define inside the __crypt_h block in crypt.h
  1026.     - moved set_extra_field outside __32BIT__ block in os2zip.c
  1027.     - added OS2 #ifdef around os2zip.c to simplify DOS cross
  1028.       compilation with makefile.os2
  1029.     - corrected handling of near/far/huge in tailor.h for IBM C which
  1030.       predefines such macros for porting purposes already
  1031.     - made larger I/O buffers in tailor.h for 32-bit OS/2 for
  1032.       better performance
  1033. 4.  Fixed bug in zipup.c for directory and symlink handling (Kai Uwe, Onno)
  1034. 5.  Added makefile targets 386bsd, sysv_gcc, sysv_386_gcc.
  1035. 6.  Use C comments in match.s for 386BSD (Onno)
  1036. 7.  Moved RAND_HEAD_LEN to crypt.h (Greg)
  1037. 8.  Added NO_TERMIO flag for Minix and Tops20
  1038. 9.  Avoid duplicate declarations for SYSV in crypt.c.
  1039. 10. Avoid warnings in bits.c for Borland C++ (Rich)
  1040.  
  1041. ------------------------ Oct 27  1992   version 1.9h ------------------------
  1042. 1.  check_zipfile is local (Greg)
  1043. 2.  One more attempt to fix the VMS zip -rm bug. Getting desperate.
  1044. 3.  Get rid of open() declaration in crypt.c. It works in zipup.c but
  1045.     causes problems here on some systems.
  1046. 4.  Define correctly the "version made by" code on all systems.
  1047.  
  1048. ------------------------ Oct 30  1992   version 1.9i ------------------------
  1049. 1.  Eliminate a couple of warnings in bits.c (Onno)
  1050. 2.  Use _dos_getfileattr for BCC instead of bdosptr and fix a warning in
  1051.     GetFileMode in fileio.c (Onno).
  1052. 3.  Added warning about -O2 in convex makefile entry (Rafal Maszkowski)
  1053. 4.  Undo the check for gcc in zip.h, otherwise we get a conflict on
  1054.     the 'const' argument of perror in SCO, defined in both stdio.h and
  1055.     string.h (Piet Plomp)
  1056. 5.  Don't use chmod on TOPS20 (Frank Wancho)
  1057. 6.  Avoid unused variable in crypt.c (Onno)
  1058. 7.  Use large model for BC++, _TEXT exceeds 64K (Onno)
  1059. 8.  Started cleanup by partial removal of "far" keyword.
  1060.  
  1061. ------------------------ Nov 21  1992   version 1.9j ------------------------
  1062. 1.  Simplified trash() and deletedir() significantly, fixing the VMS zip -r
  1063.     bug as a side effect (Greg).
  1064. 2.  tailor.h: djgcc warns about using a char as array index (Onno)
  1065. 3.  makefile.bor and match.asm: changed LARGE to __LARGE__ because LARGE
  1066.     is a reserved word in tasm. (Onno)
  1067. 4.  Added a workaround for a bug in latest version of OS/2 (Kai Uwe)
  1068. 5.  Added -Z to CLFAGS in makefile.bor (Zachary Heilig)
  1069. 6.  Quote "-T" in help screen for VMS (Greg)
  1070. 7.  Added -c to CFLAGS in makefile.gcc (Bob Hardy)
  1071. 9.  Added rs6000 makefile entry as in unzip (Michael Bernardi)
  1072. 10. Renamed makefile as Makefile for unification with unzip
  1073. 11. Added makefile entry for Pixel (Aubrey Jaffer)
  1074. 12. Use nice_match in match.s to guarantee same output as C code.
  1075. 13. Fixed "version made by" for OS/2 in zipup.c (Kai-Uwe)
  1076. 14. Aligned messages with : as in unzip (Kai-Uwe)
  1077. 15. New Amiga support (John Bush)
  1078. 16. Forget the "#define const" which was source of trouble.
  1079. 17. Do not use a directory time for -o (Onno)
  1080.  
  1081.  
  1082. ------------------------ Nov 24  1992   version 1.9k ------------------------
  1083. 1.  Define const for non ANSI compilers (Michael Lawler)
  1084. 2.  Removed the .dif files from the amiga subdirectory (John Bush)
  1085. 3.  Added automatic configuration with "make generic"
  1086.  
  1087. ------------------------ Jan 26  1993   version 1.9l ------------------------
  1088. 1.  Add trap handler in configure
  1089. 2.  Use readdir() for 386BSD (Onno)
  1090. 3.  New work around for OS/2 bug in os2zip.c (Kai Uwe).
  1091. 4.  Commented out declarations of opendir and readdir (was causing
  1092.     problems with 'const'). (Mark).
  1093. 5.  Process -@ only after the zip file is read (George Sipe)
  1094. 6.  Added check for NeXT in configure (Mark)
  1095. 7.  Define SYSV only if sys/termio.h exists
  1096. 8.  Don't use gcc -c -c in msdos/makefile.gcc (Onno)
  1097. 9.  Don't include sys/types.h for Amiga (John)
  1098. 10. Added support for pgp in trees.c
  1099. 11. Use nice_match in match.asm
  1100. 12. Do not attempt matches beyond the window end (caused crash on 286 in
  1101.     protected mode when attempting a word load at address DS:FFFF).
  1102. 13. Fixed location of zcrypt19.zip in Where.
  1103. 14. Do not check file size on MSDOS because of bug in DIET
  1104. 15. Set 'version needed to extract' to 1.0 for stored files (Peter Gutmann)
  1105. 16. Do not ignore the time of the first entry for -o (Mark).
  1106. 17. Allow zip -r0 with output to a pipe (Mark)
  1107. 18. Never include a zip file in itself or remove it at the end with -m.
  1108. 19. Fix zip -r on VMS to include all versions (;*).  (Igor)
  1109. 20. Don't forget closedir() on error (Kai Uwe)
  1110. 21. Ignore ftell() error on pipes (Eric Backus)
  1111. 22. Don't free() the literal string "-" (Eric Backus)
  1112. 23. Don't call err() with a null pointer (Eric Backus)
  1113. 24. Put back percent() arguments as ulg (Mark).
  1114. 25. New os2/zip.def and os2zip.c (Kai Uwe)
  1115. 26. Fixes in tailor.h for OS2 (Kai Uwe)
  1116. 27. Fix for zero length indexed files (Igor)
  1117.  
  1118. ------------------------ Aug 20  1993   version 1.9m ------------------------
  1119. 1.  1992->1993 in all copyright notices.
  1120. 2.  Added "make bull" (doc@magna.com (Matthew J. D'Errico)
  1121. 3.  Fixed vms_stat() to work across Decnet (Igor)
  1122. 4.  Use ; instead of , in trees.c (confuses the SAS Amiga compiler).
  1123. 5.  Added instructions for info-zip lists.
  1124. 6.  Add the -F and -FF (zipfix) options.
  1125. 7.  Documented the -v option.
  1126. 8.  Use progress indicator also for zip -0 (Greg).
  1127. 9.  Document /etc/magic line in install.doc.
  1128. 10. Changed os2 stack size from 0x40000 to 0x80000 to avoid OS/2 bugs.
  1129. 11. Don't use name foo.zip.$z$ on OS/2 FAT system.
  1130. 12. Do not ignore the -l option with zip -0.
  1131. 13. Updated Where file.
  1132. 14. In zip.1, mention pkzip 2.04 instead of 1.93a.
  1133. 15. Fix test for regular files in filetime().
  1134. 16. In memcompress(), do not call deflate with compression level 0.
  1135. 17. Display 0 instead of gargabe for negative compression ratios.
  1136. 18. New amiga files. (diffs not yet applied, will be changed shortly)
  1137. 19. Speed up zip -1 to -3 as in gzip, default changed to -6.
  1138. 20. Fix problem of zip -r with symbolic link to non existent file.
  1139. 21. Do not use _dos_getfileaddr() for Borland C++ (James W. Birdsall)
  1140. 22. Fix compilation error in vms.c with GNU cc (Mike Freeman)
  1141. 23. make the file that zipnote generates somewhat self-documenting, and allow
  1142.     the zipnote -w input to be a little more free form. (Mark)
  1143. 24. Added support for Borland C++ for OS/2 (32-bit) (Kai-Uwe).
  1144. 25. Added makefile for Turbo C 2.0 (Andrew Cadach)
  1145. 26. Added untested makefile entry for SCO Xenix on 286.
  1146. 27. Add -S option to include hidden/system files on MSDOS/OS/2 (Kai Uwe).
  1147. 28. Free the extra field as soon as it is written on disk.
  1148. 29. Use -DSYSV for "make sun" so that it also works on Solaris. Add sun_bsd.
  1149. 30. Added "make next-fat".
  1150.  
  1151.  
  1152. ------------------------ Aug 21  1993   version 1.9n ------------------------
  1153. 1.  Don't undef const in crypt.c (does not work on MSDOS).
  1154. 2.  Fix some warnings with MSDOS compilers.
  1155. 3.  Switch to large model for all 16 bit MSDOS compilers.
  1156. 4.  New match.s with 68K support, and to avoid problems with DJGPP 1.10.
  1157. 5.  When -b is used, do not create any file other than the final zipfile
  1158.     in the final directory. (Don't leave junk on a WORM.)
  1159.  
  1160. ------------------------ Aug 29  1993   version 2.0a ------------------------
  1161. 1.  Free local extra field only if different from central extra field (Kai Uwe)
  1162. 2.  Use size_t instead of unsigned in os2/os2zip.c
  1163. 3.  Fix for emx in os2/makefile.os2.
  1164. 4.  Fix change 5 of zip 1.9n (was allowing destruction of a readonly file).
  1165. 5.  next-fat -> nextfat to make Greg happy.
  1166. 6.  Fix macros in vms/descrip.mms (Igor).
  1167. 7.  Free the local extra field only after the second putlocal() (Igor).
  1168. 8.  Add vms.obj in make_vaxc.com for zipsplit, zipnote, zipcloak (Mike Freeman)
  1169. 9.  Don't use the constant (unsigned)2*32768 with 16-bit int (Piet Plomp).
  1170. 10. Use syntax acceptable by ml in msdos/makefile.msc (Piet Plomp).
  1171. 11. Use const if MODERN instead of __STDC__ (Greg).
  1172. 12. Remove garbage at both ends of zip file with -F or -FF (Bill Davidsen)
  1173. 13. Added support for Human68K (NIIMI Satoshi)
  1174. 14. Preserve existing soft and hard links for the zip file (Martin Schulz)
  1175. 15. Don't crash when no zip-file, with flag -o (Martin Schulz)
  1176. 16. Ignore -y when -k is set (Martin Schulz)
  1177. 17. Add the -D option (create entries for directories)
  1178. 18. Free window and hash table (when -DDYN_ALLOC) before calling unzip for -T.
  1179. 19. Remove -m4 from msdos/makefile.tc (not supported by TurboC 2.0)
  1180. 20. Fix handling of system/hidden files for Windows/NT (Martin Schulz)
  1181. 21. Get correct file times for Windows/NT (Martin Schulz)
  1182. 22. Upper case conversion for Windows/NT depends on FAT (Martin Schulz)
  1183. 23. Keep old internal name when updating on MSDOS a zipfile made on Unix:
  1184.     "zip foo Makefile" no longer changes Makefile into makefile.
  1185. 24. Do not recurse while excluding.
  1186. 25. Add -i option. Simplify the -x code.
  1187. 26. Include the volume label for the -S option.
  1188.  
  1189. ------------------------ Sep 1st  1993   version 2.0b ------------------------
  1190. 1.  Do not use process.h in dummy/zipcloak.c
  1191. 2.  Support volume labels for OS/2 (Kai Uwe)
  1192. 3.  Include volume label even if file patterns do not include the root dir.
  1193. 4.  Fixed copyright notice.
  1194. 5.  Fixed zip -FF code (do not copy the bad compressed size)
  1195. 6.  Add warning if -F would truncate the zip file.
  1196. 7.  Use a specific option for volume label (-$ as in pkzip and arj).
  1197. 8.  Better Amiga support (John Bush and Paul Kienitz).
  1198. 9.  Define UNIX for Unix systems (Greg).
  1199. 10. Link util_ for zipcloak (Mike Freeman)
  1200. 11. Suppress all the TurboC .prj and .tc files; makefile.tc is more convenient.
  1201. 12. Include only the dummy crypt routines. Full versions in zcryp20k.zip.
  1202. 13. Fixed the contents file.
  1203. 14. Untabify everything to make diffs easier.
  1204. 15. When zip is used to archive stdin, read the archive comment (-z) from
  1205.     stderr instead of stdin. (Bill Davisen)
  1206.  
  1207. ------------------------ Sep 2nd  1993   version 2.0c ------------------------
  1208. 1.  Allow the full zipcloak.c to be compiled with the dummy crypt.[ch].
  1209. 2.  Set the directory attribute when creating directory entries.
  1210. 3.  Add -p option to zipsplit to wait between diskettes. (Mark).
  1211. 4.  On OS/2, accept volume label on a drive other than the current drive.
  1212. 5.  Fix fileio for SGI.
  1213. 6.  Add err() to the dummy zipcloak.c.
  1214. 7.  Get match.asm from msdos subdirectory in all msdos makefiles.
  1215. 8.  Default to -DDYN_ALLOC for MSC to reduce memory usage for -T.
  1216. 9.  Set up the Where and README files for a zip 2.0 release.
  1217. 10. Check sys/dirent.h instead of dirent.h in configure (temporary
  1218.     hack until the big fileio.c cleanup).
  1219. 11. Use only strrchr (already defined as rindex for some BSD systems).
  1220. 12. Little Amiga patches in fileio.c and SMakeFile (John Bush).
  1221.  
  1222.  
  1223. ------------------------ Sep 6th  1993   version 2.0d ------------------------
  1224. 1.  Need sys/dir.h for NODIR option (James Birdsall)
  1225. 2.  Define OS_CODE and GetFileMode for Human68k (NIIMI Satoshi)
  1226. 3.  Added the zipgrep shell script and zipgrep.1.
  1227. 4.  Fix in crypt.c for Convex (Rafal Maszkowski)
  1228. 5.  Added nt/nt.c and fixed makefile.nt (Martin Schulz)
  1229. 6.  Fix opendir/readdir for NT (Martin Schulz)
  1230. 7.  Reverse the meaning of -D. Directory attributes are saved by
  1231.     default. Use -D to disable creation of directory entries.
  1232. 8.  Remove empty directories with -rm even if directory entries are not
  1233.     created (-D).
  1234. 9.  Support volume labels with DJGPP (MSDOS version of gcc).
  1235. 10. Added initialization for z->dosflag.
  1236. 11. In Makefile, use "sh configure flags" instead of "./configure flags" to
  1237.     deal with some buggy versions of make (SunOS 4.1 /bin/make).
  1238. 12. Made zcrypt20m.zip compatible with unzip 5.0p1, unzip 5.1e and zip 2.0d.
  1239.     (However funzip from unz50p1 cannot compile with the new crypt.)
  1240.  
  1241. ------------------------ Sep 7th  1993   version 2.0e ------------------------
  1242. 1.  Avoid warnings for NT and fix IsFileNameValid() (Steve Salisbury).
  1243. 2.  Use only comment after #endif in crypt.c (zcryp20n).
  1244. 3.  Put the correct README in zcryp20n.
  1245. 4.  Allow chars above 0x80 in recmatch (Paul Kienitz)
  1246. 5.  In recmatch, Allow "^" as well as "!" at the beginning of a set
  1247.     (for example "[^0-9]") as a negation (Paul Kienitz)
  1248. 6.  Better msdos/makefile.tc.
  1249.  
  1250. ------------------------ Sep 7th  1993   version 2.0f ------------------------
  1251. 1.  Call FindClose in fileio.c, add nt/ntzip.h (Martin Schulz)
  1252. 2.  Added "Why doesn't zip do <something> just like PKZIP does?" in README.
  1253.  
  1254.  
  1255. ------------------------ Sep 7th  1993   version 2.0g -------------------------
  1256. 1.  Fix wild() for human68k, jstring.h not needed (NIIMI Satoshi)
  1257. 2.  wild() is needed for OS2 also (Kai Uwe)
  1258. 3.  New os2/makefile.os2 (Kai Uwe)
  1259.  
  1260. ------------------------ Sep 7th  1993   version 2.0 -------------------------
  1261. 1.  Define MODERN for VMS on Alpha (Hunter)
  1262. 2.  In vms/VMSmunch.c, deal with variant_unions under Alpha (Hunter)
  1263. 3.  Define main with int result (Hunter)
  1264. 4.  Do not return a garbage exit code for zipsplit -t.
  1265. 5.  Restore file attributes of an existing zip file (Igor)
  1266. 6.  Define UTIL in globals.c and vms.c to avoid declaring read_buf (Hunter)
  1267. 7.  Renamed make_vaxc.com as make_vms.com, make it work on AXP (Hunter).
  1268. 8.  Added warning about OpenVMS AXP in vms/make_gcc.com (Hunter)
  1269. 9.  Support OpenVMS AXP in vms/descrip.mms (Hunter)
  1270. 10. Do not perform sliding with MMAP or BIG_MEM (Martin Schulz)
  1271. 11. Recommend -DMMAP in install.doc.
  1272. 12. Avoid WATCOM C bug in stat("*") (Thomas Opheys)
  1273. 13. Avoid temp file name > 8 chars for NO_MKTEMP (Thomas Opheys)
  1274.  
  1275. ------------------------ Sep 18th  1993   version 2.0.1 ----------------------
  1276. 1.  Do not add entries "./" and "../" (problem with DJGPP only)
  1277. 2.  Let -v cancel -q and vice-versa.
  1278. 3.  Fix Makefile entry for sco_x286 (Tom Schmidt)
  1279. 4.  Avoid warning with MSC in util.c.
  1280. 5.  Enable file size check for OS/2.
  1281. 6.  IMPORTANT FIX: on OS/2, do not truncate large files with EAs (Tai-Shan Lin)
  1282. 7.  zipfix (zip -F) no longer implies -o (Michael Bolton)
  1283. 8.  Add temporary in readzipfile() to avoid Coherent compiler bug (Fred Smith)
  1284. 9.  Use asm code for Coherent (Fred Smith)
  1285. 10. Use /usr/local/man/man1 as default MANDIR
  1286. 11. Add uninstall makefile entry
  1287. 12. If link() fails on Amiga, always assume cross device rename.
  1288.