📄 history
字号:
zip files for MSDOS by taking an existing one (like PKZ110.EXE) anddeleting all the entries to get a prototype self-extracting zip file thatcan be copied and added to. Of course, you should only do this if you area registered user of PKZIP. Note that if the file does not end in .zip,you have to give the full name.I have relaxed some of the restrictions on zip files to allow processingones with "authenticity verification" (applied by the PUTAV program thatcomes with PKZIP). Of course, the authenticity no longer checks out ifyou muck with the file, but at least you can muck with it now.The Makefile has been considerably simplified, thanks to suggestions fromJean-Loup Gailly. Also, I wrote my own sh expression matcher, eliminatingthe regular expression hassles, and the REGEX symbol and -lPW options inthe Makefile.Many, many cosmetic changes, the most dangerous of which was turning onprototypes again in the hopes we can get them to work. If they cause youproblems, record the problems (for me), and then add a -DNOPROTO to theappropriate line in the Makefile and try again.This version now compiles under Microsoft C 5.1 and Turbo C++ 1.0, withmuch thanks to Jean-Loup Gailly. I say "compiles" and not "works" becauseI have not thoroughly tested it. It does work, but there may be errors inthe port as well as errors in the design. By the latter I mean that theremay be some disagreement over what you expect it to do and what it does,especially with regards to upper and lower case names and wildcardpatterns. Also, the implode routines do not yet work under MSDOS, so thecompilations are done using NOIMPLODE. There are two dumb batch files todo the compile: doturboc.bat and domsc.bat. If someone would like towrite make files for the make utilities that come with those languages,please be my guest. I'm just too lazy. However, I would probably resistincluding make files that require a make utility that does not come withthose languages, be it commercial, shareware, or free.There are two new programs: ZipSplit and Ship. ZipSplit tries to split abig zip file into the smallest number of zip files less than a specifiedsize. This is to aid in using zip to backup to floppies. It has thelimitation that it cannot break up an entry in a zip file, since it makescomplete, standalone zip files. This means if any entry is larger thanthe specified size (plus some overhead), zipsplit will give up and not dothe split. It does *not* implement the multi-disk zip file format impliedin APPNOTE.TXT. ZipSplit will optionally write an index file and deductthe size of that file from the first zip file so both will fit on thefirst disk.Ship is a fixed-up version of a program I have been using myself for sometime in place of uuencode/uudecode. It's purpose is to facilitate sendingzip files through the mail. It uses a more efficient coding scheme thanuuencode (four bytes per five characters instead of three bytes per fourcharacters) and includes a crc at the end of each file to check theveracity what was received. It can split its output to a specified sizeand recombine it automatically at the other end, verifying the sequence.It can also mail the parts to a specified address, with subject linesidentifying the parts, instead of making a bunch of files that you're justgoing to mail and delete anyway. Example: % ship -500 -m saddam@pickle.iq README zip07.zip README shipped zip07.zip shipped files part0001..part0004 mailedwill mail README and zip07.zip together in four chunks of 500 or fewerlines each. At the other end, Saddam can save the parts into the filesnamed in the subject lines (part0001..part0004), and then do: % ship -u part* README received zip07.zip receivedFor now, zip.1 (and zip.doc) are incomplete as far as MSDOS goes. I'llput off doing that until the MSDOS version has stabilized. Likewise, Ihave put off writing zipcloak.1, zipsplit.1, and ship.1 for the samereason.There are, of course, all the little changes that fix bugs (what arethose?), make the Makefile work on more systems, documentation, and,for the alert reader, an undocumented option ...As usual, send reports to info-zip@wsmr-simtel20.army.mil, so everyonecan get a chuckle out of whatever new bugs I've introduced.Mark Adlermadler@pooh.caltech.eduChanges from release 0.6 to release 0.7:1. Changed Makefile to use mv instead of -o on compiles.2. Added MAKE = make to Makefile.3. Catch user interrupt or termination and delete temporary files.4. Allow general purpose flags in local and central headers to differ in the "reserved" bits. Keep both for copying zip entries verbatim.5. Removed prototype for closedir--return value not used and inconsistent across systems.6. Wrote ZipSplit to break a large zip file into the smallest number of zip files less than a specified size. Run zipsplit with no arguments to see the command help.7. Put error messages in globals.c to be common across zip, zipcloak, and zipsplit. Use #define's in zip.h for error numbers.8. Changed getp() to open a new file for the terminal device, and added the echon() function to turn echoing back on when interrupted at password prompt.9. Added warn()'s to distinguish various zip file structure errors.10. Allow "extra" fields in local and central headers to differ.11. Fixed percent compression calculation to work for very large files.12. Included the program (makecrc.c) that generates the CRC table. makecrc.c is not compiled or run by the Makefile, but is present for completeness.13. Added an undocumented (except for here) option, -v, to zip that checks for "oddities" in the zip file structure and points them out if found (but continues processing).14. Put prototypes in crypt.h inside #ifdef NeXT to avoid redefinition problems with other compilers.15. Added "make zilog" for Zilog S8000 running Zeus 3.21.16. Minor changes to the manual page (zip.1 and zip.doc).17. Fixed bug in replace() (manifested by -b option).18. readzipfile() now also checks the central directory start and size in the end of central directory header.19. Allow modification of self-extracting zip files (exe instead of zip).20. Allow .ZIP as valid suffix as well as .zip (also .EXE and .exe).21. Cleaned up malloc usage, free'd everything malloc'ed.22. fclose'd all fopen'ed files explicitly.23. Corrected assignment of one ftell() result from an int to a long.24. Considerably simplified Makefile, based on Jean-Loup Gailly's suggestions.25. Renamed unixfile.c to fileio.c in anticipation of non-unix support.26. Removed const's (pesky little buggers caused too many problems).27. Wrote my own shell expression compare routine, took REGEX and -lPW's out of Makefile, which removed the sysvpw make option.28. Added tempname() prototype to crypt.h for the implode routines to use.29. Trying string.h for prototypes of string functions if __STDC__ defined, which is what unzip.h does.30. Turned prototypes on if __STDC__ defined (we'll try this one more time). They can be turned off using NOPROTO.31. Improved source documentation.32. Changed prototype of open in fileio.c to OF((char *, int, ...)).33. Removed "local" from prototypes of main() (after all, it's *not* local).34. Wrote Ship program to supplant uuencode--slightly more efficient, has error checking, file splitting, automatic mailing, other features. Ship currently uses the command: /usr/ucb/mail -s subject < tempfile to send mail. Please let me know what works for your system. Note that I want to be able to specify a subject line.35. Ported to MSDOS Microsoft C 5.1, based on Jean-Loup Gailly's work.36. Fixed add/update bug when -p not used.37. Handle lower case conversion and devices (e.g. C:) for MSDOS.38. Indented the #ifdef/#ifndef constructs that do not contain function definitions, to improve the readability somewhat.39. Cleaned up error handling. Now use perror() for i/o errors. Put the errors and messages in ziperr.h.40. Ported to MSDOS Turbo C++ 1.0.41. Implemented wild card expansion on the command line for MSDOS and handle MSDOS matching (*.* == all, not *).42. Changed version required to unzip to 11 (1.10) since the implode routines can procude an overlapping match one away from the end of the window (PKUNZIP 1.00 requires two away from the end).43. Changed old next make option to next10 (for version 1.0) and added a new next make option for 2.0 (just called next) that uses the -object linking option for smaller executables.44. Added -z option to take a multi-line zip file comment from stdin.45. Changed temporary names from $ZXXXXXX to _ZXXXXXX, where XXXXXX is filled in by mktemp(). This avoids problems with "rm $Z*" in sh.46. Got new implode routines from Rich that are (hopefully) PKUNZIP compatible.47. When -b is not specified, put the temporary files in the same directory (i.e. the same device) that the zip file is (or will be) in.48. Added doturboc.bat and domsc.bat files to compile for Turbo C++ 1.0 and Microsoft C 5.1. I am interested in successes and failures with other versions of those compilers. In this version, the implode routines do not work under MSDOS.------------------------ May 6 1991 version 0.8 ------------------------Buenos Dias Amigos,Heer ees dee Cinco de Mayo reeleese of seep, aka Zip 0.8. The changesfrom 0.7 are in the (long) list below, but here are some highlights:faster implode, faster shrink, first attempt at a VMS version (thanksto Cave Newt), and a new program, ZipNote, to aid in editing zip filecomments. To compile under VMS, do an "@makevms.com". To compile usingMircosoft C do a "make makefile.msc". To compile using Borland (Turbo)C, do a "make -fmakefile.bor". Please try to break any or all of theseprograms in every conceivable way--we're getting close a public release.Thank yew fer your support.Mark Adlermadler@pooh.caltech.eduChanges from 0.7 to 0.8:1. Added the -n option to prevent compressing already compressed files. Documented -n in zip.1.2. Check the length of the compressed data in zipup() in case implode or shrink has a bug.3. Fixed -v option to not complain about needing PKUNZIP 1.1.4. Added report of store/shrink/implode sizes when -v (verbose) used.5. Put in Rich's patch to fix 100% implosion bug.6. Fixed -i bug.7. Made changes to im_ctree.c and implode.c to (hopefully) make it work under MSDOS. (Jean-Loup said declare topmaxvals and botmaxvals as U_INT in im_ctree.c, and use MSDOS, not __MSDOS__ in implode.c.)8 Added implode routine compilation to domsc.bat and doturboc.bat.9. Replaced FILENAME_MAX with FNMAX, which is now always 1024. (It seems FILENAME_MAX is incorrectly set to 14 on some System V Unixii.)10. Changed BEST to -1 so it is different from STORE (=0). Redid some of the method logic in zipup().11. Changed wb+ to w+b in implode.c.12. Removed "nothing to do" error for -u and -f.13. Zip source distributions will now have tabs removed, except for Makefile and Makefile.exp (no feelthy tabs rule).14. Changed zip error on open failure to a warning. This accounts for files that do not have read permission or are locked, and files deleted during the zip. For entries being updated, the old entry is copied over instead. This change had the side effect of removing the zipskip() routine.15. Removed OBJC dependencies in Makefile.exp (didn't belong).16. Removed strip from Makefile, instead using the -s link option.17. Fixed -um and -fm to delete files whose entry's times were checked in the archive.18. Put portability stuff common to zip.h and crypt.h into tailor.h.19. Added mark tracing to -v (for debugging).20. Changed name and zname logic--an external name is always converted into an internal zname, and vice-versa. zname is now always malloc'ed.21. Fixed -z to use CRLF between lines (for PKZIP) and have no newline after the last (or only) line.22. Added clean to Makefile (deletes *.o, zip, zipcloak, zipsplit, ship).23. Replaced LDFLAGS with LFLAGS1 and LFLAGS2 in Makefile (splits link options before and after object files as in unzip).24. Added scodos to Makefile (from Bill Davidsen).25. Included stdio.h in tailor.h--removed stdio.h from zip.h and implode.h.26. Do not include stddef.h if M_XENIX defined.27. Cast the arguments of all free() calls to (voidp *).28. Added casts to char * for memset() and qsort() args in zipsplit.c.29. Changed implode.h to define malloc and str* properly.30. Fixed invlocal() to handle integer overflow correctly, as well as reliably across compilers.31. Got new implode.h from Rich with fix #29 above. Removed stdio.h include.32. Commented out the abort() calls in im_ctree.c.33. -ee requests a verification of the encryption password.34. malloc and free tempath.35. Documented -, SCO, and scodos in zip.1, and - in help().36. Added revision.h for Zip revision number and date.37. -u and -f with no arguments now (both) freshen the entire archive.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -