|
|
1.1 ! root 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: [email protected]. ! 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 [email protected]. ! 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 [email protected] (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 [email protected]. If you wish, ! 137: you can, in addition, send the same report to me ([email protected]) ! 138: or Rich ([email protected]) 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: [email protected] ! 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 [email protected] 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 [email protected], so everyone ! 327: can get a chuckle out of whatever new bugs I've introduced. ! 328: ! 329: Mark Adler ! 330: [email protected] ! 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: [email protected] ! 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: [email protected] ! 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 [email protected]. 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: [email protected] ! 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: ------------------------ ??? ?? 1992 version 1.1 ------------------------ ! 695: ??? To be done. Should be the last version supporting shrink and implode. ! 696: ! 697: ------------------------ Feb 17 1992 version 1.5 ------------------------ ! 698: 1. pkzip 2.0 format (deflation) now supported ! 699: Shrink and Implode left in zip 1.1 only for backward compatibility ! 700: ! 701: ------------------------ Mar 25 1992 version 1.6 ------------------------ ! 702: 1. zip can now be used as a filter in a pipe ! 703: 2. Optimized assembler code for MSDOS and OS/2 ! 704: 3. encryption is now supported ! 705: 4. Better VMS support for various file formats other than Stream-LF ! 706: 5. Better OS/2 support ! 707: ------------------------ Apr 24 1992 version 1.7a ------------------------ ! 708: 1. On VMS, create new zip files in fixed length 512 format ! 709: 2. Call VMSmunch only if the zip file existed previously ! 710: 3. Avoid mktemp() and use simpler name for temporary file. ! 711: 4. Rename dir_os2.[ch] -> os2zip.[ch] ! 712: 5. On MSDOS, use fdopen() after setmode() in zip.c ! 713: Added setmode() for stdin in zipup.c ! 714: 6. Do not split #if on two lines (some compilers don't like this) ! 715: 7. __MSDOS__ instead of __BORLANDC__ in crypt.c ! 716: 8. Added (char*) cast in deflate.c to avoid warning ! 717: 9. OS/2 support for storing file attributes in an extra field. ! 718: ! 719: ------------------------ June 6 1992 version 1.8a ------------------------ ! 720: 1. Fixed bug in tempname() for VMS ! 721: 2. Fixed type problems in zipup.c for gcc under VMS ! 722: 3. Added VMSmunch in vms subdirectory and updated makefile (descrip.mms) ! 723: 4. The extra field for OS/2 is now compressed (Kai Uwe Rommel) ! 724: 5. Added various fixes for djgcc (Onno van der Linden) ! 725: 6. Fixed long standing bug in wild() for MSDOS (Jon Saxton) ! 726: 7. Added support for ZIPOPT environment variable (Bill Davidsen ! 727: and Antoine Verheijen). ! 728: 8. Fixed zipsplit bug for VMS (Greg Roelofs) ! 729: 9. Added fix for DEC OSF/1 (Kjetil W. J{\o}rgensen) ! 730: 10. Added fix for ultrix on DECstation (Jonathan Kamens) ! 731: 10. Added sysnopis for zipsplit, etc... in zip.1 (Jonathan Kamens) ! 732: 11. Fixed MAILX problem for SysV in ship.c (Greg Roelofs) ! 733: 12. Added Linux support (Humberto Ortiz-Zuazaga) ! 734: 13. In makefile.os2, support for $(FP), masm 5.x, match.s (Greg & Kai) ! 735: 14. Added -w-cln in makefile.bor to avoid warning (David Kirschbaum) ! 736: 15. VMS echo suppression code incorporated (Greg Roelofs) ! 737: 16. Added fix to match.asm if WSIZE != 32768 ! 738: 17. Create .exe files directly for target scodos (Bill Davidsen) ! 739: 18. Fixed the -0 bug (compressed size was doubled) ! 740: 19. Changed -- (read names from stdin) to -@ to reserve -- for undoing ! 741: the effects of ZIPOPT ! 742: 20. Create zip entries for directories with the -r option, so that ! 743: directory attributes can be saved. (Kai Uwe Rommel) ! 744: ! 745: ------------------------ June 17 1992 version 1.8b ------------------------ ! 746: 1. Changed -s (Software license) to -L (license) to avoid clash ! 747: with the old shrink option. ! 748: 2. read_buf declared as extern only in zip.h ! 749: 3. avoid warnings in zip.c for Turbo C: while ((ch = *s) != '\0' ! 750: 4. suppressed unused variables mem_inbuf and mem_outbuf in bits.c ! 751: 5. Speed up the search for start of zip structures (pksfx files) ! 752: 6. Allow updates of an empty pksfx file (original file was destroyed) ! 753: 7. Keep correct offsets for pksfx files ! 754: 8. On MSDOS, in2ex() was updating the input argument. Also, do not ! 755: force upper case: keep the name as it was in the old zip file. ! 756: This is important for -f. Similarly, force lower case in ex2in() ! 757: on MSDOS, except when dosify (-k) is imposed. I kept however the ! 758: old code under the flag FORCE_UPPER in case I goofed. ! 759: 9. When growing a zip file with -g and interrupting it, the whole file was ! 760: lost. We now attempt to restore the previous state of the file. ! 761: 10. "zip -fo jjj", where jjj is a non-existent zipfile, used to dump core. ! 762: We now emit a warning. ! 763: 11. More generally, we emit a warning for all options assuming the presence ! 764: of a zip file (-d,-f,-u,-g) if the zip file did not exist or was empty. ! 765: Idem for "zip -o jjj" on non-existent or empty zip file. ! 766: 12. Copy also the extended local entry in zipcopy(). ! 767: 13. Updated zip.1 and vms/vms_zip.rnh to describe the new features. ! 768: 14. Fixed bug in zipsplit (wrong offsets for all files but first) ! 769: 15. Added match.s, optimized 386 version of longest_match() for Unix and ! 770: 32 bit OS/2 (with gas). ! 771: 16. Added os2/match32.asm, optimized 386 version of longest_match() for ! 772: 32 bit OS/2 (for assemblers using Intel syntax). NOT TESTED YET. ! 773: 17. Added "assume DS: DGROUP" in match.asm to allow SS_NEQ_DS even with MSC. ! 774: 18. Added include <malloc.h> in tailor.h for Unix. This is required on ! 775: 16-bit Unix. ! 776: 19. Use init_upper() in os2zip.[ch] ! 777: 20. Switched back to old tempname(): the new one could overwrite an existing ! 778: file, it ignored tempath, and it caused problems on VMS for files with a ! 779: '.' in the name. Kept however the old code if NO_MKTEMP is defined. ! 780: 21. Use 0x1 instead of (unsigned)1 in definition of HSIZE (one compiler ! 781: does not like the cast in an array definition). ! 782: 22. Include VMSmunch.h in zip.c ! 783: 23. On VMS, zip -o screwed up all offsets in pksfx files ! 784: ! 785: ------------------------ June 18 1992 version 1.8c ------------------------ ! 786: 1. Added missing comma in revision.h ! 787: 2. invlocal doesn't work on Cray, use mktime instead (Greg Roelofs) ! 788: 3. On VMS, use ctx=stm only to read zipfiles, not input files. ! 789: 4. Undo change 21 above, which breaks even more compilers ! 790: 5. Include dos.h in util.c and fix trivial compilation errors ! 791: 6. Undo change 1 of 1.8b: -L already used for OS/2 (Steve Salisbury) ! 792: 7. Do not create a zip entry for directory "." (Greg Roelofs) ! 793: 8. Avoid core dump when -@ is given before the zip file (and do ! 794: the right thing). ! 795: ! 796: ------------------------ June 19 1992 version 1.8d ------------------------ ! 797: 1. Force calloc to take unsigned values. (Problem with one 16 bit ! 798: compiler on AT&T 6300). ! 799: 2. Fixed fileio.c for Convex (Bill Davidsen) ! 800: 3. util_ was missing for zipnote and zipsplit in make_vaxc.com (Glenn Andrews) ! 801: 4. Added warning in zip.1 and below (do not update encrypted files ! 802: with pkzip 1.10). ! 803: 5. Fixed fix 12 of 1.8b. I drink too much. (Confused bit 1 with bit 8). ! 804: 6. Updated install.doc ! 805: 7. Fixed result type of os2 version of init_upper(). ! 806: 8. Added makefile entry for AT&T 6300 (Peter Mauzey) ! 807: 9. Fixed typo in descrip.mms ! 808: 10. Removed zipfile.c warning: shift count exceeds width of value shifted ! 809: 11. Fix enormous bug in init_upper for VMS (upper stayed as zero) ! 810: ! 811: ------------------------ June 23 1992 version 1.8e ------------------------ ! 812: 1. Don't include malloc.h by default (does not exist on VMS) ! 813: 2. Define calloc for 16 bit systems (required for AT&T 6300) ! 814: 3. Simpler make_vaxc.com (Greg Roelofs) ! 815: 4. New vms/descrip.mms and fixes in zipfile.c (Igor) ! 816: 5. seekable() must be true for in-memory compression. ! 817: 6. Undefine S_IFLNK if NO_SYMLINK (problems with VMS and SCO) ! 818: 7. Include descrip.h only once in fileio.c (Mike Freeman) ! 819: 8. New os2/match32.asm (untested) and makefile.os2. ! 820: 9. Added dosflag in zlist and flist entries, to force MSDOS file ! 821: attributes. It is set if dosify is set, or (under OS/2) for a file ! 822: on a FAT file system which does not have a long name (Kai-Uwe). ! 823: 10. Added GetFileTime on OS/2 to avoid core dump on bad dates (Kai-Uwe) ! 824: 11. New vms.c supporting deflation of extra headers ! 825: ! 826: ------------------------ June 24 1992 version 1.8f ------------------------ ! 827: 1. Incorporated (finally!) Mac support. *Untested*. (James E. O'Dell) ! 828: 2. Another long awaited change: Atari ST. Also *untested*. ! 829: ([email protected]) ! 830: 3. New makefile.os2, as usual. (Kai-Uwe) ! 831: 4. Support for Watcom C in os2zip.c. *Not yet working*. (Kai-Uwe). ! 832: 5. I forgot to output the length for stored blocks... ! 833: ! 834: ------------------------ June 29 1992 version 1.8g ------------------------ ! 835: 1. New os2zip.c and makefile.os2 as usual. ! 836: 2. In the VMS makefiles, define the symbols systematically so that ! 837: people won't forget to update them. (Fed up with the reports that ! 838: zip does not accept parameters). ! 839: 3. Use -L for software License and -E for Extended attributes ! 840: 4. Added -F 1000 in makefile entry for scodos (Bill Davidsen) ! 841: 5. Replaced strcmp with namecmp in zip.c for check of zipfile name. ! 842: 6. New os2/match32.asm (still not working) ! 843: 7. Do not close stdin (check for null ifile in zipup.c). ! 844: 8. signal handlers for zip and zipcloak fixed to restore echo for VMS ! 845: 9. slightly cleaner VMS echo calls in fileio.c ! 846: 10. stricmp missing from VMS zipsplit, zipnote: since UTIL was unused for ! 847: util.c, I used it to specify stricmp only; then I had to change some of ! 848: the makefiles which previously used util_.* to use util.*, and I added ! 849: util_.obj to OBJS and OBJN in all of the VMS makefiles. (Greg) ! 850: 11. ifdef'd out the debugging commentary in vms.c (Greg) ! 851: 12. new VMS makefile for use with (free) MAKE/VMS (Greg) ! 852: 13. Eliminate some compiler warnings from BCC, MSC, gcc (Onno van der Linden) ! 853: 14. Do not use MSDOS version of init_upper for djgpp (Onno van der Linden) ! 854: 15. In msdos/makefile.gcc, added util_.o to OBJN and OBJS, and used asm version ! 855: match.o (Onno van der Linden) ! 856: 16. Added install target in makefile (Alvin Koh) ! 857: 17. Default makefile entry is named 'all'. ! 858: 18. fixes to vms.c for gcc (Igor) ! 859: 19. Define S_IWRITE as S_IWUSR for Minix only (problem on X/OS) (Fulvio Marino) ! 860: 20. Added xos makefile entry (Fulvio Marino) ! 861: 21. In VMS, files without an extension are now stored without the dot (Greg ! 862: and Igor). ! 863: 22. Save/restore ebx in match.s and match32.asm ! 864: 23. Fixed MAX_DIST in match.s (the asm code produced different results ! 865: than the C code) ! 866: 24. Fixed the -b option: allow ENOTSAM instead of EXDEV (used by Turbo C). ! 867: 25. Do not complain about zip files created on MSDOS with versions of zip ! 868: above 1.0. ! 869: ! 870: ------------------------ Aug 14 1992 version 1.9a ------------------------ ! 871: 1. Changed -S to -L in help screen ! 872: 2. Do not declare chmod for aegis (George Grimes) ! 873: 3. Cleaner vms/make_gcc.com (Mike Freeman) ! 874: 4. Disabled built-in functions for Linux (Arnt Gulbrandsen) ! 875: 5. Added a description of the deflation algorithm in algorith.doc. ! 876: 6. Removed ship, now distributed separately. ! 877: 7. Added the CRC for in-memory compression. The extra-field format is now ! 878: the official PKWare format (Kai-Uwe) ! 879: 8. On OS/2, force lower case names for FAT files if -k is not given. (Kai-Uwe) ! 880: 9. Allow coutry dependent mapping for upper to lower case. (Kai-Uwe) ! 881: 10. Use namecmp instead of stricmp which was confusing. (Onno van der Linden) ! 882: 11. Avoid some warnings in deflate.c (Onno van der Linden) ! 883: 12. Avoid one warning in crypt.c, and distribute it separately. ! 884: 13. Call init_upper() for all utilities and add util_.o in makefiles (Kai-Uwe) ! 885: ! 886: ------------------------ Aug 18 1992 version 1.9b ------------------------ ! 887: 1. Fixes for Windows NT (Dave Feinleib) ! 888: 2. Avoid two warnings for Ultrix (makefile and fileio.c) ! 889: 3. Finally removed the declaration of chmod(), which causes endless ! 890: new patches for each new target. ! 891: 4. Allow -L for license in the utilities (zipsplit, zipnote, zipcloak). ! 892: 5. Mention funzip in zip.1. ! 893: 6. Untabify all sources files (for more reliable context diffs) ! 894: 7. Fix bug in trees.c dealing with bit length overflow. ! 895: 8. Fix bug in zipup.c when reading from stdin: if (ifile) does not ! 896: produce the expected result. ! 897: 9. Avoid duplication of bug list in zip.1 and history. ! 898: 10. Removed ship from zip.1. ! 899: ! 900: ------------------------ Aug 20 1992 version 1.9 ------------------------ ! 901: 1. Renamed the atari files to avoid name conflicts (for unzip -j). ! 902: 2. Don't tell 'use zip -L' in zipnote and zipsplit. ! 903: 3. Add a rule for util_.ojb in the msdos and atari makefiles ! 904: 4. Fixed compilation option for util_.obj in makefile.msc (msc 5.1 bug) ! 905: 5. Added the 'Where' file. ! 906: 6. More information about zip in Readme. ! 907: 7. Fixed install.doc. ! 908: 8. Fixed vms/vms_zip.rnh ! 909: 9. Fixed init_upper() in util.c and os2zip.c (Kai-Uwe) ! 910: ! 911: ------------------------ Aug 26 1992 version 1.9p1 ------------------------ ! 912: This is official patch 1 for zip 1.9, not a beta version. ! 913: ! 914: 1. Simplified makefile entry for convex (Rafal Maszkowski) ! 915: 2. Do not use 'const' even for djgcc (Onno van der Linden) ! 916: 3. Use gcc in linux makefile entry (Arnt Gulbrandsen) ! 917: 4. Fix serious bug in -l option (file truncated). ! 918: 5. Fix stack problem for OS/2 IBM-C (Kai-Uwe) ! 919: 6. Fix serious bug in zipup.c sometimes causing file truncation to zero bytes ! 920: or internal error (Timo Salmi and Robert Tobler) ! 921: 7. Do not unlink() directories when running as root (Charles Hannum) ! 922: 8. Fix msdos/makefile.bor and msdos/makefile.gcc (Onno van der Linden) ! 923: ! 924: ! 925: Things to check or to be done (see also BUGS section in zip.1): ! 926: ! 927: - zip should not create 'stored' files with extended local headers ! 928: ! 929: - There is not (yet) a way to undo the effect of ZIPOPT ! 930: ! 931: - Under MSDOS, zip will find hidden and system files, but not set the ! 932: attributes appropriately in the zip file so that unzip can restore them. ! 933: ! 934: - it is possible in weird cases to add a zipfile to itself ! 935: ! 936: - On OS/2, zip refuses to match some names, such as those beginning with an ! 937: exclamation mark. Same for names starting with #, possibly more.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.