|
|
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.