diff options
Diffstat (limited to 'CHANGES')
-rw-r--r-- | CHANGES | 3460 |
1 files changed, 3460 insertions, 0 deletions
@@ -0,0 +1,3460 @@ +------------------------- August 7th 1996 version 2.2a ------------------ + 1. QDOS port (Jonathan Hudson) + 2. win32 volumelabel handling (Paul) + 3. VM/CMS clean up (Greg Hartwig) + 4. leading "../" in internal filenames are allowed (Paul) + 5. System V packages support (John Bush) + 6. Fix handling of atx in zipup() (Onno, Greg) + 7. Fixed typo that caused zip -R to dump core (Onno) + 8. msdos/makefile.dj2: fix for command line too long when linking zip.exe + 9. win95 long filename support with djgpp v2 (Onno, Kimio Itoh) +------------------------- August 9th 1996 version 2.2b ------------------ + 1. windll: use wiz instead of wizip (Mike) + 2. use z->name NOT z->zname to open files (Onno, Mike) +------------------------ September 1st 1996 version 2.2c ------------------ + 1. windll: use fprintf instead of putc to send data to std{out,err} (Mike) + 2. os2: make borlandc version detection equal to unzip 5.30d (Kai Uwe) + 3. use #elif constructions for msdos,os2 and win32 compiler detection (Onno) + 4. fix for incorrect free in zip.c (Onno, Mike, Steve) + 5. BeBox port from Chris + 6. unix/{configure,Makefile} fixes for SCO Xenix 286 (Tom Schmidt) + 7. remove zilog entry from unix/Makefile (Onno) + 8. man page fixes (Tom Schmidt) + 9. SCO ODT {3,5} fixes (Bill Davidsen) +------------------------ October 8th 1996 version 2.2d ------------------ + 1. Fix bug in QDOS patch that broke zipsplit.c (Onno, Paul) + 2. Fix a couple of warnings from BorlandC (Mike) + 3. msdos/makefile.wat: Delete some more files when cleaning up (Paul) + 4. store msdos volumelabels without a dot in them (Paul) + 5. clean up of unix/{Makefile,configure,packaging} (Tom Schmidt) + 6. make QDOS port case independent (Jonathan Hudson) + 7. new amiga SASC makefile (Walter Haidinger) + 8. don't truncate filenames in win32's in2ex() (Paul) + 9. os2/makefile.os2 update for emx 0.9c (Kai Uwe) +10. password() function for QDOS (Jonathan) +11. fix the last(?) free() related bug (Mike) +12. win32: security descriptors operations (Scott Field) +13. win32: FILE_SHARE_DELETE is not defined in some win32 compilers (Onno) +14. win32: fix makefile.wat to include nt.c (Onno) +------------------------ January 17th 1997 version 2.2e ------------------ + 1. define USE_CASE_MAP in osdep.h for those ports that need it (Onno) + 2. define PROCNAME in osdep.h for those ports that need it (Onno) + 3. wild() prototype decl only if PROCNAME defined => delete MSVMS define (Onno) + 4. add DOS EMX makefile (E-Yen Tan) + 5. include <qdos.h> a little earlier in qdos/qdos.c (Jonathan) + 6. add ttyio.o to OBJZ in qdos/Makefile.qdos (Jonathan) + 7. remove unused fprintebc define from zip.c (Onno) + 8. use the right password routine in ttyio.c for unzip (Mike) + 9. BeOS update from Chris +10. Fix for 'zip -r foo x:' (Paul) +11. Fix library bug on beos (Chris) +12. Fix calculating version number (kitoh_@mix.or.jp, Walter Haidinger) +13. IsWinNT always returned TRUE (Mike) +14. Windll update from Mike +15. Improved crc routines for x86 from Scott Field +16. Detect in unix/configure if we can use crc_i386.S (Onno) +17. Fix spurious internal logic error (Paul) +18. Fix to include directory names on the Acorn when needed (Sergio) +19. include zip.h in mvs.h (Onno, George Carr) +20. add workaround for AZTEC C compiler bug to revision.h (Paul, Walter) +21. MVS doesn't have rmdir (George Carr) +22. define and use USE_ZIPMAIN for WINDLL en VM_CMS (Onno) +23. Fixes from Greg Hartwig to make CMS standalone versions possible. +24. Move OS specific encryption stuff to the os specific directories (Christian) +25. Change password fetching interface in ttyio and crypt (Christian) +26. Update emx support for 0.9c (Christian) +27. Define WINDLL instead of MSWIN (Christian) +28. Extended time stamp extra field format support (Christian) +29. Support for rsxnt-emx 0.9c win32 compiler (Christian) +30. Use izshr017b (Christian) +------------------------ March 11th 1997 version 2.2f ------------------ + 1. Move makefile.emx, rsxwinnt.h and zip.def to win32 subdir (Kai Uwe) + 2. Add win32 target to makefile.os2 to allow cross compilation (Kai Uwe) + 3. Fix NTSD_EAS link time failures with win32 (Paul) + 4. Fix buffer freed too early in password verification code (Mike) + 5. Remove unix/zipgrep and man/zipgrep.1 (sanvila@ctv.es) + 6. Only use crc_i386.o when we're using an x86 (Onno, Mark) + 7. Remove carriage returns from amiga/crc_68.a (Paul) + 8. New windll from Mike + 9. Fix typo in os2/os2zip.c (Kai Uwe) +10. Don't use ctime (last file status change) for unix and qdos cross compile + (Greg) +11. added gccwin32 crosscompilation target (RSXNT) to os2/makefile.os2 (Kai Uwe) +12. fixed the OS/2 file attribute and time stamp generation for zipping + stdin ("-") (Kai Uwe) +13. fixed the atime and ctime stat fields for the OS/2 Watcom C library + (Kai Uwe) +14. added atime and ctime support for the UT extra field when generated under + OS/2, the atime and ctime values are only stored when zipping (Kai Uwe) +15. qdos patches from Jonathan Hudson mainly for extended time flag handling +16. amiga aztec compiler bug workaround (Paul) +17. fix -v output of zipcloak, zipnote and zipsplit (Paul) +18. new amiga/makefile.azt with targets for debug versions (Paul) +------------------------ March 31st 1997 version 2.2g ------------------ + 1. remove -I/usr/local/include from unix/Makefile (Chris) + 2. Update versinfolines in revision.h (Greg) + 3. change 1U to 0x1 to accomodate non ANSI compilers (Onno, Rodney Brown) + 4. win32zip.c: cast buffer parameter in memcompress() to char * (Mike) + 5. remove beos/zipgrep (Chris) + 6. correct the -e password verification check in zip.c (Christian) + 7. use ZCONST instead of const in the generic code. (Christian) + 8. fix mktime timezone correction when time is near to daylight/nodaylight + switch points. (Christian) + 9. correct dependencies in makefile.os2 (Christian) +10. use a more sensible default for iztime.ctime than "0" when system does not + not support creation time stamps. (Christian) +11. fix VMS_PK_EXTRA function interface declarations. (Christian) +12. implement atime/ctime support in win32. (Christian) +13. win32/win32.c: replacement getch() for Watcom. (Paul) +14. win32/makefile.wat: debug object files kept separate. (Paul) +15. msdos/makefile.wat: debug object files kept separate. (Paul) +16. Fix extended time defines for the acorn. (Sergio) +17. Define PROCNAME() in acorn/osdep.h (Sergio) +18. Ignore exit status of ${INSTALL_D} in unix/Makefile (Chris) +19. Add Metroworks and BEOS info to version() in several files (Chris) +20. Move defines for the password fetch to zip.h (Christian) +21. Support the obsolete version rsxnt 1.1 / emx 0.9b (Christian) +22. Remove obsolete "#define PROCNAME ..." from cmsmvs/cmsmvs.h (Christian) +23. Fix extended time defines for qdos (Jonathan Hudson) +24. Use watcom getch() from unz530q in win32/win32.c (Onno) +25. Don't install zipgrep via the unix package tools (John Bush) +26. use izshr021 (Onno) +27. Fix zipnote: use iname not zname in zipnote.c (Onno) +28. Create proginfo directory (Christian) +------------------------ May 5th 1997 version 2.2h -------------------- + 1. Fix vms/zipup.h: iztime --> iztimes (Onno, Mike Freeman) + 2. Remove windll/wizdll.def (Mike) + 3. Add a couple of external variable declaration to windll.h (Mike) + 4. Remove zipgrep from install in unix/Makefile (Onno) + 5. Make updating .zip files with extended time fields possible (Kai Uwe) + 6. Delete beos/Makefile.gcc, beos/Makefiles handles both compilers (Chris) + 7. Fixes for unused variables (Chris) + 8. Added very simplistic example how to load and call the windll (Mike) + 9. Updated windll documentation to note this example (Mike) +10. Removed an unused memeber of a structure in windll (Mike) +11. Add BUGS instead of infozip.who and algorith.doc with the packaging + tools (John Bush) +12. tailor.h: increment NUM_HOSTS to keep in sync with UnZip (Christian) +13. win32/osdep.h: remove NO_SECURE_TESTS define (Christian) +14. zip.h: add declaration for free_crc_table() (Christian) +15. windll: move everything that's not windows specific into api.* (Mike) +16. use iname when checking for directory names in zipfile.c (Sergio) +17. improved mktime.c with better error checking (Christian) +18. improved crc routines (Christian, Rodney Brown) +19. get the -z option working again (Onno, Brad Clarke) +20. define BROKEN_FSEEK and seekable() for those systems where fseek() + always returns 0 (== OK) (Onno, Jeffrey Altman) +------------------------ May 10th 1997 version 2.2i -------------------- + 1. win32's seekable should only check for FILE_TYPE_DISK (Onno, Jeffrey Altman) + 2. add (ulg) cast to zipbeg = ~0 in zipfile.c (Steve) + 3. seekable() *really* belongs in flush_block, keep it there (Onno) + 4. seekable() calls fseekable(FILE *) (Onno) + 5. define HAVE_FSEEKABLE if a port has their own fseekable (Onno) + 6. WatCom doesn't have _get_osfhandle, use _os_handle instead (Paul) + 7. upgrade to Mike's latest windll sources (Mike) + 8. add -P option so you can specify a password on the commandline (Onno) + 9. Get -@ working again (Onno) +10. emx+RSXNT doesn't know about _get_osfhandle() (Kai Uwe) +11. fix a couple of typos in the OS/2 makefiles (Kai Uwe) +12. fix initialization bug in windll code (Mike) +13. tweak deletedir for RISC OS (Sergio) +14. RISCOS doesn't know about fstat() (Sergio) +15. Remove acorn/acorn (Sergio) +16. Delete debugging statements from version_local() in msdos.c (Greg) +17. Fix huge bug in readzipfile() (Onno) +------------------------ May 18th 1997 version 2.2j -------------------- + 1. Add missing ';' after return ZE_PARMS in zip.c (Mike) + 2. Remove obsolete 'struct stat st' in zipfile.c (Onno) + 3. Get Amiga SFX handling working again (Paul) + 4. Get zip -A working again (Onno) + 5. Change an && to & in zipfile.c (Johnny) + 6. Fix handling of empty sfx archives (Onno, Mike) + 7. Remove experimental entries from the makefiles (Jean-loup) + 8. Add exit codes to the manual page (Onno) + 9. Remove lines from the help screen that contain lesser used options (Onno) +------------------------ June 8th 1997 version 2.2k -------------------- + 1. use zip -t ddmmyyyy for year 2000 stuff (Greg) + 2. zip -@ only handles ONE filename per line (Jean-loup) + 3. beos support for DR9 filesystem and symlinks (Chris) + 4. VB support for windll (Mike) +------------------------ June 10th 1997 version 2.2l ------------------- + 1. beos filetype support (Chris) + 2. fill the buffer in getnam() to get it working again (Onno) + 3. implement -x@filename and -i@filename (Onno) +------------------------ June 22nd 1997 version 2.2m ------------------- + 1. Add a ; after de nextarg label in main() (Onno, Erik Baatz) + 2. Initialize p to NULL in get_filters() (Onno, Frank Donahoe) + 3. Fix typo in first if statement in filetypes() (Johnny Lee) + 4. zip -A works again (Onno, Greg) + 5. don't free zipbuf for VMS and CMS_MVS in main() (Onno, Mike Freeman) + 6. fix make_zip.com, link_zip.com and vmsdefs.h for gcc 2.6.3 on VMS (Onno) + 7. clarify -g option in the man page (Jean-loup) +------------------------ July 6th 1997 version 2.2n ------------------- + 1. use local in readzipfile2() declaration (Onno, Mike Freeman) + 2. return values with windll in get_filters() (Mike) + 3. a couple of minor patches for BEOS (Chris) + 4. zip -g works again (Onno, Chris) + 5. Some more Visual Basic dll support (Mike) + 6. Fix stack overflow in readzipfile() for DOS (Onno, Michael Mauch) +------------------------ August 19th 1997 version 2.2o ------------------- + 1. beos README and Makefile tweaks from Chris. + 2. Syntax corrections for README and man/zip.1 (Frank Donahoe) + 3. Use name not iname when deleting directories in trash() (Christian) + 4. change several wkuvx1 to lists in e-mail addresses (Christian) + 5. default to PK style extra fields for VMS (Christian) + 6. use izshr023 (Christian) + 7. replace buggy time library functions (Walter Haidinger, Paul, Christian) + 8. in2ex() and stat() are needed also when UTIL isn't defined (Greg Hartwig) + 9. don't use type=record in fopen() for MVS and CMS (Greg Hartwig) +10. Change P and K literals to hex for EBCDIC systems (Greg Hartwig) +11. Add output path support for CMS and MVS (Greg Hartwig) +12. Add memtoasc and memtoebc for EBCDIC systems (Greg Hartwig) +13. Handle comments correctly to fix zipnote for CMS and MVS (Greg Hartwig) +14. Add -tt option (do not operate on files after date mmddyy) (Christian) +15. move alloc routines for DOS into the !UTIL block (Christian) +16. move UTIL blocks and version_local() functions to a more logical place + (Christian) +17. Handle -P, -R, -x@, -i@ and -tt for the VMS CLI (Christian) +18. Update VMS help file with the new options (Christian) +19. Use iname in MATCH, not zname (Jonathan Hudson) +20. windll: more Visual Basic support (Mike) +21. windll: more project makefiles (Mike) +22. windll: insert Zip in front of global variable names (Mike) +------------------------ August 25th 1997 version 2.2p ------------------- + 1. Remove unused flags from LFLAGS2 in unix/Makefile (Onno) + 2. SunOS make bug: change unix_.o rule in unix/Makefile (Onno, Mike Freeman) + 3. ZipIsWinNT() instead of IsWinNT() in zip.h (Mike) + 4. Fix -t and -tt behaviour for windll (Mike) + 5. Remove windll makefiles that are now elsewhere (Mike) + 6. BEOS: preserve file attributes associated with symbolic links (Chris) + 7. No need to use in2ex() for ziputils (Christian) + 8. Fix comment handling for EBCDIC systems (Christian) + 9. EBCDIC conversion for entry names read from zipfile in UTIL mode (Christian) +10. Fix "fatal" error messages on EBCDIC systems (Christian) +11. zipnote.c: Fix handling of entry name changes for EBCDIC systems (Christian) +12. removed a large part of "dead" code from ziputils version (Christian) +13. use z->iname in comparison functions for sorting (Christian) +14. new installation utils for the acorn (Sergio) +15. use LSSTAT in set_extra_field for unix and beos (Onno) +16. perror(z->zname) instead of perror("zip warning") (Onno, Geoff Pennington) +17. Amiga SFX should work again (Paul) +18. refer to zip22 in install.doc (Frank Donahoe) +------------------------ September 10th 1997 version 2.2q ------------------- + 1. Change .doc to .txt, these aren't MS-Word documents (John D. Mitchell) + 2. Change msdos$_(OBJ) to msdos_$(OBJ) (Kai Uwe) + 3. Fix a couple of amiga related glitches (Paul) + 4. Support for DOS packed .exe files in makefile.dj2 (Frank Donahoe) + 5. Change warning message for zip -A (Greg) +------------------------ September 29th 1997 version 2.2r ------------------- + 1. Fix make svr4package (Eric Baatz) + 2. Fix VMS warning (Mike Freeman, Christian) + 3. Clean up beos gcc port and beos README (Chris) +-------------------------- October 6th 1997 version 2.2s -------------------- + 1. Change lpPrint to lpZipPrint for windll (Mike) + 2. Change lpPassword to lpZipPassword for windll (Mike) + 3. Amiga timezone fixes (Paul) + 4. WatCom C 11.0 makefile fixes (Paul) + 5. Tandem port from Dave Smith + 6. Corrections and updates for install.txt (Christian) + 7. Minor VMS README update (Christian) +-------------------------- October 12th 1997 version 2.2t -------------------- + 1. qdos compiler bug workaround (Jonathan) + 2. prevent storing qdos specific filenames that exceed filesystem limits + (Jonathan) + 3. fix undelimited comment in fileio.c (Frank Donahoe) + 4. disable storing of symlinks in BEOS until OS support is available (Chris) + 5. Init hash_head to 0 in amiga/deflate.a (Paul) + 6. Upgrade to izshr025 (Christian) + 7. don't add ".zip" to ZIP name for TANDEM (Dave Smith) + 8. use zipup.h not tandem.h in zipup.c (Dave Smith) + 9. rename history to CHANGES (Onno) +10. rename install.txt to INSTALL (Onno) +11. rename zip.txt to ZIPMAN (Onno) +12. create WHATSNEW (Onno) +-------------------------- October 15th 1997 version 2.2u -------------------- + 1. Use Info-ZIP instead of Info-Zip (Christian) + 2. Note recent filename changes in several files (Christian) + 3. Remove a couple of items from the TODO list (Christian, Onno) + 4. Add windll port, zip -t yyyymmdd and zip -R to WHATSNEW (Christian) + 5. VMS documentation cleanups and clarifications (Christian) + 6. dist entry in unix/Makefile (Onno) + 7. remove duplicate amiga/timezone.txt (Christian) + 8. rename ZIPMAN to MANUAL and update a couple of files regarding this (Onno) +-------------------------- October 24th 1997 version 2.2v -------------------- + 1. izshr026: in WHERE wiz40 instead of wiz30 (Christian) + 2. izshr026: another couple of Info-ZIP spelling fixes (Christian) + 3. Remove zipgrep from the makefiles that still had it (Christian) + 4. Update makefiles to handle the MANUAL renaming change (Christian) + 5. Fix the last daylight savings bug on the Amiga (Paul) + 6. Fix the SCO Unix specialty detection in unix/configure (Onno, + bug reported by Bo Kullmar for Solaris 2.6 and with uname -X output + for SCO Unix from ken@apisys.com and dgsmith@vnet.ibm.com) + 7. Update WHERE and amiga/time_lib.c from unzip 5.32g (Greg) +-------------------------- October 26th 1997 version 2.2w -------------------- + 1. Additional +Onolimit check in unix/configure (Onno, Peter Jones) + 2. Use ZIPERR macro instead of ziperr (Christian) + 3. initialize z->lflg for zip entries without extra field (Christian) + 4. "local (+ locextend)" vs. "central" header consistency check (Christian) + 5. Override local header values with central header values with -A + and differences between these headers (Christain) + 6. made "deltaoff" signed long; offset adjustment may be negative (Christian) + 7. fix a number of "wild" deallocation bugs (Christian) + 8. When zipping from a FAT drive (only 8.3 DOS names) under OS/2 or + WIN32, set z->vem to "OS_DOS | <real zip version number>". + Mark as "made by DOS PKZIP 2.0" only when dosify was requested. (Christian) + 9. DOS port should not store fake unix style external attributes. (Christian) +10. amiga/time_lib.c from izshr028 (Christian) +-------------------------- October 31st 1997 version 2.2y -------------------- + 1. amiga/time_lib.c from izshr029 (Christian) + 2. Turbo C++ version code clarification (E-Yen Tan) + 3. Fix spelling in cmsvms/zipname.conven (Rodney Brown) + 4. Fix memset check in unix/configure for Unixware 2.1.1 (Rodney Brown) + 5. Forward declaration fixes for HP-UX bundled compiler (Rodney Brown) +-------------------------- November 3rd 1997 version 2.2 -------------------- + 1. Update WHERE (Greg). +-------------------------- January 4th 1998 version 2.21a ------------------- + 1. BSD friendly version of version_local() in unix/unix.c (Onno) + 2. No NT versions in DOS version_local() (Steve Salisbury) + 3. -t mmddyyyy instead of -t ddmmyyyy in WHATSNEW (Walter Haidinger) + 4. use generic fseekable() for rsxnt (Christian) + 5. Fix MSC 8.x warnings (Christian, Steve Salisbury) + 6. win32 Borland C++ makefile (E-Yen Tan) + 7. Tandem doesn't know about extensions like .zip,.arj, ... (Dave Smith) + 8. Use dosmatch for EMX and DJGPP too (Christian) + 9. dummy djgpp startup functions to remove command line globbing and + recognition of environment variables from djgpp.env (Christian) +10. include DJGPP_MINOR in DOS version_local() (Christian) +11. TC 2.0 doesn't have mktime() (Christian, mmp@earthling.net) +12. VMS: rename opendir() to zopendir() so avoiding name clash with + VMS 7.x POSIX libraries (Christian, Martin Zinser) +13. Add support for VMS DEC C V 5.6 features (Christian) +14. Use iname for comparison in check_dup (Christian Spieler, Christian Michel) +15. Fix access to uninitialized ioctx records in vms_get_attributes() + Christian, Robert Nielsen) +16. Parenthesis around MAX_MATCH>>1 in match.S (Greg) +17. Use strchr() not strrchr() for -i and -x to get -i@ and -x@ really + working (Onno, Kai Uwe) +18. add chmod statements to unix/Makefile (Quentin Barnes) +19. Windll: handle both -r and -R (Mike) +20. Windll: general error handler in main() via setjmp/longjmp (Mike) +21. Don't allow zip -i@x.lst foo.zip (Onno) +22. vms/link_zip.com: use .eqs. not .nes. when checking with f$search + for the zip AXP object library (David Dachtera) +23. rsxnt 1.3.1 fixes (E-Yen Tan) +-------------------------- January 20th 1998 version 2.21b ------------------- + 1. Bigger PATH_MAX for win32's windll (Mike) + 2. Update windll.txt w.r.t. PATH_MAX (Mike) + 3. Amiga SAS/C fixes (Walter, Paul) + 4. zip -i@ and -x@ should *really* work now ...... (Onno) +-------------------------- February 20th 1998 version 2.21c ------------------- + 1. make -f unix/Makefile qnx needs LN=ln in its options (Chris) + 2. Support Metroworks Codewarrior/x86 on BEOS (Chris) + 3. Add Norbert Pueschel to proginfo/infozip.who (Walter) + 4. Use big endian for Be types (Chris) + 5. zip -i and -x were broken by the -i@ fix last time around (Christian) + 6. win32 stat bandaid (Paul) + 7. acorn filetype and timestamp fixes (Sergio, D. Krumbholz) + 8. update to izshr30 (Christian) + 9. Support for NTSD in the RSXNT environment (Christian) +10. restructure readzipfile() (Christian) +11. Where needed define MATCH in osdep.h (Christian) +12. version_local() fixes for RSXNT (Christian) +13. New vmsmunch.c (Christian) +-------------------------- March 15th 1998 version 2.3a ------------------- + 1. Fixes for the windll API (Mike) + 2. Use CPUTYPE in BorlandC Makefile for DOS (E-Yen Tan) + 3. BEOS: -rostr not available for the x86 compiler (Chris) + 4. preserve file attributes of a symlink on BEOS (Chris) + 5. New VM/CMS README.CMS and version_local() (Ian Gorman) + 6. INSTALL fixes from Takahiro Watanabe + 7. OS/390 port from Paul von Behren + 8. new api.h from Mike +-------------------------- April 19th 1998 version 2.3b ------------------- + 1. Improve Tandem file I/O performance (Dave Smith) + 2. New VM/CMS README.CMS and version_local() (Ian Gorman) + 3. cygwin32 port from Cosmin Truta + 4. Workaround for tasm32 5.0 bug in win32/crc_i386.asm (Cosmin Truta) + 5. win32/match32.asm fixes for tasm 5.0 (Cosmin Truta) + 6. simplify OS/390 port (Christian) + 7. win32 timezone handling fixes (Christian) + 8. fix 40-bit time conversion on the acorn (Sergio and Christian) + 9. strip network part from UNC type filenames (Christian) +10. Makefile for OpenMVS (Ian Gorman) +11. Use the Watcom getch() for cygwin32 (Christian) +12. Borland C++ 5.x added to win32's version_local() (Cosmin Truta) +13. Borland C++ needs tzset() in win32 (Christian, Cosmin Truta) +-------------------------- May 21st 1998 version 2.3c ------------------- + 1. Better error messages for -i and -x (Christian) + 2. Win32 stat() wrapper needs dos2unixtime (Christian,Paul,Mike) + 3. DJGPP: use _chmod to handle LFN attributes correctly (Michael Mauch) + 4. Fix Borlandc warnings (Mike) + 5. win32/makefile.bor fixes from Michael Mauch + 6. win32/makefile.{dj,emx} fixes from E-Yen Tan + 7. Use izshr031 (Christian) + 8. CMS: use RECFM=V LRECL=32760 by adding "byteseek" (Greg Hartwig) + 9. Check external name for trailing "/" (Greg Hartwig) +10. More specific info in CMS version_local() (Greg Hartwig) +11. Changed usage info to refer to "fm" rather than "path" on CMS (Greg Hartwig) +12. No more "extra data" messages when using the same OS (Greg Hartwig) +13. Rewritten README.CMS, one version for ZIP and UNZIP (Greg Hartwig) +14. DOS/OS2/WIN32/UNIX: ex2in() strips off "//host/share/" from UNC names (SPC) +-------------------------- June 23rd 1998 version 2.3d ------------------- + 1. Fixed Win32's stat() bandaid handling of time stamps (SPC) + 2. General fix of file selections for DELETE and FRESHEN action (SPC) + 3. CMS_MVS: Use ASCII coding for TIME extra field ID (SPC) + 4. EBCDIC: Repaired bogus CMS_MVS fix in zipup.c; check the internal + name for trailing (ASCII) '/' to detect directory entries (SPC) + 5. Use explicit ASCII coding when comparing or setting chars in iname (SPC) + 6. Fixed win32/makefile.bor, win32/makefile.dj (support NTSD), + win32/makefile.emx (SPC) + 7. Replaced win32/makefile.cyg by win32/makefile.gcc, containing new + support for mingw32 GCC environment (SPC) + 8. Use izshr032 (SPC) + 9. Modified zipup.c to hold (un)compressed lengths in "ulg" variables, in + an attempt to support handling of huge (>2GByte) files. (SPC) +10. Removed some duplicate #defines from api.h, they are now in crypt.h (SPC) +11. Reenabled "extra data size" info messages in noisy mode for all systems + except RISCOS and CMS_MVS (SPC) +12. For EMX 0.9c, the runtime lib contains a working mktime(), use it (SPC) +13. Miscellanous cosmetic changes (SPC) +14. Move win32/makefile.emx to msdos (E-Yen Tan) +15. make api.h work with zcrypt2.8 (Mike) +16. define ydays differently in api.h to avoid linking problems (Mike) +17. New windll.txt (Mike) +18. win32 lcc patches (E-Yen Tan) +19. win32 lcc makefile (E-Yen Tan) +20. Multiple inclusion bug: no malloc.h when using lcc-win32 (E-Yen Tan) +21. New VB support files for windll (Mike Le Voi, Raymond King) +22. MacOS port by Dirk Haase +-------------------------- August 1st 1998 version 2.3e ------------------- + 1. Generalized check for validy of TZ timezone setup info, similar to + UnZip; use it on AMIGA and MSDOS, as before. (SPC) + 2. Apply TZ validy check on OS/2 and enable creation of UT e.f. (SPC) + 3. BEOS: New Makefile, updates for README and Contents (Chris Herborth) + 4. beos/beos.c: declare some private functions as "local" (SPC) + 5. Include memcompress() code only for ports that make use of it, controlled + by preprocessor symbol ZP_NEED_MEMCOMPR (SPC) + 6. cmsmvs/README.CMS fix: Zip archive entries to be extracted into var-length + records CMS files should >>NOT<< contain binary data ... (SPC) + 7. crc32.c, crctab.c: the crc polynom table is ZCONST (SPC) + 8. trees.c: fixed a bug in the deflate algorithm that limited the compressed + size of an archive member to 512 MByte (SPC) + 9. deflate.c: Integrated the changes found in zlib that are neccessary to make + the deflate algorithm deterministic; modified msdos/match.asm to take + care of the "nice_match" global no longer being constant. (SPC) +10. deflate.c, trees.c, zipup.c: Reorganized and simplified deflate's + compressed output buffer handling. I/O and compression code are now + separated more cleanly. (SPC) +11. Killed bits.c by moving its contents into trees.c resp. zipup.c; + synchronized all Makefiles and Make procedures with this change. (SPC) +12. Integrated support for optionally replacement of deflate and crc32 by + public domain zlib code. (SPC) +13. Synchronize the different variants (UNIX/GNU C, OS/2, WIN32) of i386 + assembler replacement for deflate's longest_match() (SPC) +14. Moved the EMX+rsxnt Makefile.emx from msdos/ back into win32/ (SPC) +15. Restored a separate Makefile.emx for DOS; on DOS, some make programs may + have difficulties with recursive invokation (SPC) +16. Fixed the "include header mess" of the new MACOS port and removed the + "work-around hacks" caused by these bad MACOS .h-file includes (SPC) +17. Integrated Dirk Haase's beta4 (27-Jun-98) release of MacZIP (Dirk Haase) +18. Added support for MS Quick C in the MSDOS version_local() report (SPC) +19. Added WIN32 rsxnt targets linking against the emx crtl DLL to Makefile.emx + in os2/ and win32/ (SPC) +20. Fixed typo in os2/os2.c wild() function. (Kai Uwe Rommel) +21. Removed ChangeNameForFAT() from os2/os2.c in2ex() to fix problem with + long filename support. (Kai Uwe Rommel) +22. os2/os2zip.[ch]: correct type of DOS-style timestamp data is "ulg" (SPC) +23. vms/cmdline.c: Removed wrong ';' behind if condition (Johnny Lee) +24. VMS: Preliminary preparations in C code for supporting GNU C on OpenVMS + Alpha (Onno van der Linden, Christian Spieler) +25. VMS: Fixed check against adding zipfile to itself in fileio.c (SPC) +26. WIN32: Added lcc-Win32 variants of i386 assembler code for crc32() and + longest_match(). (SPC) +27. WIN32: Removed bogus type-cast in assignment to statb st_mode member (SPC) +28. zip.c: Fixed MACOS-related typo that broke "-@" command option (SPC) +29. zipup.c: Fixed messed-up expression for assignment to z->ver (SPC) +30. MACOS extra fields: check realloc return values (Onno, Johnny Lee) +31. Fix the PUTBYTE macro in trees.c: >= instead of < (Onno) +-------------------------- September 6th 1998 version 2.3f ------------------- + 1. Add zp_tz_is_valid to globals.c (Onno, Frank Donahoe) + 2. Updated tandem files from Dave Smith + 3. Windll: allow comments to zip archive with VB (Mike) + 4. Windll: add support for -b and update the documentation (Mike) + 5. win32: use wbS for FOPW to handle large zip files better (Steve Miller) + 6. MVS fix: use fseek();clearerr() instead of rewind() (Onno, Lee Burton) + 7. Updated VB examples for windll (Mike) + 8. Tandem: use UTC timestamps and GID/UID in extra field (Dave Smith) + 9. Tandem: handle -o option (Dave Smith) +10. default for ZCONST is const in tailor.h, override in osdep.h (Onno) +11. additional Macintosh options in zip.c (Dirk Haase) +12. additional Macintosh options in zip.1 and MANUAL (Onno, Dirk Haase) +13. Integrate Beta 5 of the Macintosh Port (Dirk Haase) +-------------------------- October 27th 1998 version 2.3g ------------------- + 1. zip_tz_is_valid should be zp_tz_is_valid (Kai Uwe) + 2. MVS native (not OE) beta fixes (Keith Owens) + 3. LynxOS support from Giuseppe Guerrini + 4. MVS already has stat() and fstat() so use 'em (Keith Owens) + 5. MVS fix in readzipfile() for new, unopened dataset without EOF marker + (Keith Owens) + 6. Remove 16-bit stuff from windll/windll.rc (Mike) + 7. Windll: Use hCurrentInst not hInst (Mike) + 8. In util.c compare strchr() return value with NULL (Onno, Frank Donahoe) + 9. unix/unix.c: initialize variable t in ex2in() (Onno, Frank Danahoe) +10. Remove windll/borland subdirectory (Mike) +11. Really fix extra field realloc() for BeOS and MacOS (Christian) +12. Fix the dj2 LFN related access violation bug (Christian, Joe Forster) +13. proginfo/3rdparty.bug: Added more info about other Zip clone's bugs. +14. The global copyright definitions in revision.h now depend on DEFCPYRT + (Christian). +15. tandem/macros: removed obsolete object file references (Christian) +16. fix memory leak with the "filter" patterns (Christian, Leah Kramer) +17. zip.c: completed the support for MacOS specific -N (Christian) +18. reorganized the Mac specific help screen code (Christian) +19. zipup.c: corrected the USE_ZLIB code to emit "stored" entries under + the same conditions as the "native deflate" code (Christian) +20. A couple of vars that will never be negative should be unsigned (Christian) +-------------------------- November 18th 1998 version 2.3h ------------------- + 1. DJGPP: When compressing from stdin don't set binary mode if stdin is + a terminal (E-Yen Tan) + 2. Fix signed/unsigned comparisons in fileio.c, util.c and zipcloak.c + (Frank Donahoe) + 3. Move macgetch() prototype from macos/source/macos.c to macos/osdep.h + (Christian) + 4. _doserrno should have type int, not unsigned int (Christian) + 5. In zipfile.c init a file pointer with NULL to fix gcc warning (Christian) + 6. Upgrade to MacOS beta 7 (Dirk Haase) + 7. Move the #pragma statements from generic sources to cmsmvs.h (Christian) + 8. Support for QNX/Neutrino 2.0 (Chris) + 9. Default to -r in help screen add -R at the bottom (Chris) +10. Clean up Makefile for BeOS R4 on x86 (Chris) +11. Beos: If not storing symlinks store attributes of symlink target (Chris) +12. Use izshr037 (Christian) +13. Remove ZIPERR() macro from in {msdos,win32}/osdep.h (Christian) +14. win32/win32.c: Fix 1-day offset in non-64bit FileTime2utime() (Christian) +15. win32: enable 64-bit FileTime2utime() for MS VC++ >= 5.0 (Christian) +16. cygwin32 only has _P_WAIT (Thomas Klausner) +17. msname() should *really* ignore illegal characters (Thomas Klausner) +18. Fix a missing ')' in Opendir() from win32zip.c (Thomas Klausner) +-------------------------- December 5th 1998 version 2.3i ------------------- + 1. Remove the #pragma statements that were forgotten the first time (Ian) + 2. Remove obsolete macos/source/CharMap.h (Steve Salisbury) + 3. isatty(fileno(zstdin)) in zipup.c should be isatty(zstdin) + (Onno, E-Yen Tan) + 4. several "shut up warnings from compiler" fixes (Christian) + 5. several cosmetic source changes (Christian) + 6. win32: make NTSD handling to be robust against alignment and structure + padding problems (Christian) + 7. Apply don't set binary mode when stdin is a terminal in zipup.c for + MSDOS and human68k (Christian) + 8. Upgrade to MacOS beta 8 (Dirk Haase) + 9. Add callback for WINDLL to handle user termination (Mike) +10. Fix typo in acornzip.c (Darren Salt) +11. acorn/sendbits.s: pass correct parameters to flush_outbuf() (Darren Salt) +12. Fixes for IBM C/C++ 3.6 where time_t is a double (Kai Uwe) +13. Fixes for IBM Visual Age C++ for win32 (Douglas Hendrix) +14. man/zip.1: some version numbers in the text were still "2.2" (Christian) +15. win32/makefile.emx: added a compilation variant that generates + standalone executables (Christian) +16. change __CYGWIN32__ into __CYGWIN__ and add compatiblity definition for + B19 and older (Cosmin Truta) +17. create uniform win32 getch() replacement (Christian) +18. put back in define of USE_EF_UT_TIME in tandem.h (Dave Smith) +19. put back in define of USE_CASE_MAP in tandem.h (Dave Smith) +20. updates to make/macros to allow the object to be licensed (Dave Smith) +21. updates to macros/doit to remove mktime.c (Dave Smith) +22. updates to tandem.c for in2ex/mapname/chmod amendments to match Unzip + (Dave Smith) +23. Use izshr039.zip (Christian) +24. Init filenotes to 0 for the amiga too (Onno) +25. get_filters(): remove one flag=0 statement to make -R work again (Onno) +-------------------------- December 17th 1998 version 2.3j ------------------ + 1. FOPWT defines opening a temp file for writing (Ian) + 2. Remove handling of bits.c from a couple of tandem files (Christian) + 3. A couple of "shut up warnings from compiler" fixes (Christian) + 4. win32/osdep.h: removed duplicate "IZ_PACKED" definition (Christian) + 5. win32/zipup.h: remove invalid "elseif" preprocessor token (Christian) + 6. sync MacOS help screen with other ports (Christian) + 7. get_filters(): set flag to 0 when -R isn't used (Christian) + 8. "local extra != central extra" now has "info" status (Christian) + 9. use windll directory as "home" directory for builds (Mike) +10. CMS/MVS: define FOPWT (Ian) +11. Upgrade to MacOS beta 9 (Dirk Haase) +-------------------------- January 17th 1999 version 2.3k ------------------ + 1. Change FOPW into FOPW_TMP (Christian) + 2. win32: #include uses paths relative to the parent directory (Christian) + 3. Use forward slashes as path separator in #include statements (Christian) + 4. windll: fix descriptions of f{In,Ex}cludeDate (Christian) + 5. win32/makefile.lcc: add some -I<path> options to find files in the + right places (Christian) + 6. Supply default empty IZ_PACKED define (Christian) + 7. windll: Fix some typos, descriptions (Christian) + 8. windll project files: use relative paths, no specific root directory + (Christian) + 9. windll project files: remove link references to import libraries that + are not used by the zip library (Christian) +10. windll: fix potential infinite loop in a VB sample (Mike) +11. windll/windll.txt: remove "may not work with VB" statement (Mike) +12. Multibyte character set support from Yoshioka Tsuneo +13. Theos port from Jean-Michel Dubois +14. Tandem: added simple handling of Enscribe files by converting them into + text type files (Dave Smith) +15. Tandem Extra Field ("TA") containing Tandem File Attributes (Dave Smith) +16. Tandem history file showing background info to (UN)ZIP ports (Dave Smith) +17. create ZIP file on tandem with special file code (1001) (Dave Smith) +18. made tandem.c & tandem.h code completely the same as UNZIP (Dave Smith) +19. unix/configure: move +Onolimit and -Olimit into the machine specific + section (Onno, John Wiersba) +-------------------------- February 21st 1999 version 2.3l ------------------ + 1. Fix qdos Makefile (Jonathan Hudson) + 2. fgets instead of gets in zipnote to fix linker warnings (Jonathan Hudson) + 3. Theos: remove _setargv.c and a reference in zip.c (Jean-Michel Dubois) + 4. Theos README (Jean-Michel Dubois) + 5. interchanged the fRecurse flag values for "-R" and "-r" (Christian) + 6. add "z" pr prefix to MBCS functions to avoid name clashes (Christian) + 7. Whenever the position of the increment operator does not matter, the + INCSTR variant is used, which has been mapped to the {PRE|POS}INCSTR + variant that is more efficient. (Christian) + 8. fixed the "-R" handling in fileio.c, filter() function (Christian) + 9. simplified some THEOS specific code additions (Christian) +10. changed the line break of the compiler version message in version_local() + for MSDOS and Win32 to take into account some verbose compilers (Christian) +11. removed the THEOS changes from ttyio.c. Instead, a THEOS specific + setup was added to ttyio.h (Christian) +12. sync vms/link_zip.com with the corresponding make_zip.com (Christian) +13. added compatibility settings for support of MBCS on Win32 with all tested + compilers to win32/osdep.h +14. added type-casts to isalpha() macro calls (Christian) +15. fixed win32's wild_match which was clobbered by the MBCS addition + (Christian) +16. finished up the "potential infinite loop" problems in the VB sample + that Mike started to repair (Christian) +17. in ziperr.h, AZTEK C might require the false comma that was removed + to satisfy THEOS C (Christian) +18. removed the bogus THEOS specific isdir check in zipup.c (Christian) +19. modified the code for line ending translation to be independent + of the local system's convention for '\n' and '\r'; this allowed + the removal of the THEOS specialities (Christian) +20. Tandem: -B option to zip Enscribe files with no record delimiters + (Dave Smith) +21. Tandem: attempt to catch Large Transfer mode failure (Dave Smith) +22. Theos: Fixed keyboard entry functions. (Jean-Michel Dubois) +23. Theos: workaround for the argument wild card expansion that is bugged + in the standard library. Managed by MAINWA_BUG flag. (Jean-Michel Dubois) +24. Theos: support for filenames and notes with accented characters. + (Jean-Michel Dubois) +25. Upgrade to MacOS final (Dirk Haase) +-------------------------- March 31st 1999 version 2.3m ------------------- + 1. Theos: for relative paths to root directory cause open, fopen and stat + failure, workaround this. (Jean-Michel Dubois) + 2. Theos: when no path is indicated in a file or directory name and the + file or directory doesn't exist in the current directory it looks for + the file or directory in the root directory, workaround this. + (Jean-Michel Dubois) + 3. Corrected some typos and spelling error in macos/HISTORY.TXT; skipped + off invisible trailing whitespace (Christian) + 4. proginfo/extra.fld: added documentation for Tandem and Theos extra + field layout (Christian with Dave D Smith resp. Jean-Michel Dubois) + 5. qdos/Makefile.qdos: The build of ZipCloak requires inclusion of + the crctab object module; qfileio_.o compilation requires the -DUTIL + flag (Christian) + 6. win32: fix incorrect MB_CUR_MAX macro for mingw32 and lcc (Christian) + 7. theos/_fprintf.c, theos/_rename.c, theos/osdep.h: Some function + parameters require the "const" attribute to achieve compatibility + with ANSI C requirements (Christian) + 8. theos/theos.c: map Theos' (No)Hidden file attribute to MSDOS Hidden + bit in the MSDOS part of zipentry header's external attribute field; + 9. theos/stat.h: prevent multiple inclusions +10. Theos: Fixed wild card management for options other than adding + (Jean-Michel Dubois) +11. Theos: Removed modifications of const strings (Jean-Michel Dubois) +12. Split tandem.c up into separate zip/unzip parts (Dave Smith, Christian) +13. Move inclusion of OS specific zipup.h files to tailor.h (Onno) +-------------------------- August 14th 1999 version 2.3n ------------------- + 1. Move inclusion of OS specific zipup.h files back to zipup.c (Onno) + 2. Remove getline() from zipnote.c and use gets() again (Onno) + 3. BeOS PowerPC R4.1 support (Chris) + 4. New DOIT and MACROS files for the tandem port (Dave Smith) + 5. Don't switch the console to binary mode (Michel de Ruiter) + 6. In some circumstances undosm could be freed twice (Mike) + 7. Also define const in tailor.h for ultrix (Onno, Foppa Uberti Massimo) + 8. Tandem: Change zopen in TANZIPC to allow opening of files with missing + alt keys (err 4) (Dave Smith) + 9. Tandem: Assume not DST if can't resolve time (no DST table available) + (Dave Smith) +10. WIN32: skip trailing dots and spaces in getnam (Onno, Dan Kegel) +11. Use ZE_NONE when nothing to freshen or update (Onno, Yuri Sidorenko) +12. Remove tabs from files that don't need them (Onno) +13. Remove tabs and spaces from the end of a text line (Onno) +14. Upgrade macos to 1.04b2 (Dirk) +15. Add -Q documentation to manual page (Jonathan Hudson) +16. Copy hiperspace files instead of renaming them (Keith Owens) +17. Disallow some more characters to appear in DOS filenames when using -k + (Onno, Thomas Klausner) +18. Document missing options and environment variables in the manual (Onno) +19. New acorn/GMakefile to compile with gcc on RISCOS (Darren Salt) +20. ISO 8601 date format support for -t and -tt (Rodney Brown) +-------------------------- September 21st 1999 version 2.3o ------------------- + 1. Sync zip.h license with LICENSE (Onno) + 2. Add copyright notice to README, os2zip.c and os2.zip.h (Onno, Greg) + 3. Fix the ASM variable in acorn/GMakefile (Darren Salt) + 4. Add another requirement to acorn/ReadMe.GMakefile (Darren Salt) + 5. Fix unbalanced parenthesis in vms_get_attributes declaration in zip.h + and move it to vms/zipup.h (Onno, Mike Freeman) + 6. Make a couple of os2 files public domain (Kai Uwe) + 7. Change and rename disclaimer array in revision.h (Onno) + 8. Change copyright array in revision.h (Onno) + 9. macstuff.c copyright is the same as macstuff.h (Christian) +10. WHATSNEW: add ISO 8601 dates supported (Christian) +11. fileio.c - msname(): strip off leading dots, these are illegal for + MSDOS compatible names (Christian) +13. fileio.c - replace(): deactivate "dead" code for CMS_MVS (Christian) +14. man/zip.1: "-$" option is also used for WIN32 ports +15. msdos/msdos.c - version_local(): break the version line for + GNU compilers too (Christian) +16. tailor.h: added typecasts to MBCS macros, to suppress "type mismatch" + warnings (Christian) +17. util.c, zip.h, zipfile.c: ZCONSTify several pointers (Christian) +18. util.c - recmatch(), zip.c - version_info(): add compile time option + WILD_STOP_AT_DIR (Christian, Darren Salt) +19. util.c - envargs(): MBCS related fixes (Christian) +20. win32/lm32_lcc.asm: add TAB characters that are required by the lcc + assembler source parser (Christian) +21. zip.c: fix the "is a console" check (Christian) +22. zipnote.c: use getline() (Christian) +23. zipup.c: use zclose() in case of I/O errors (Christian) +24. zipup.c: use ZE_WRITE when a write error occurs (Christian) +25. win32/win32.c: HAVE_INT64 is used by mingw32 (Cosmin Truta) +26. update shared sources to match izshr041 (Christian) +-------------------------- November 29th 1999 version 2.3 ------------------ + 1. Missing parenthesis in win32/win32.c (Steve Salisbury) + 2. Add Cosmin Truta to proginfo/infozip.who (Onno) + 3. Remove one parenthesis pair too many from vms_get_attributes() declaration + in vms/zipup.h (Mike Freeman) + 4. qdos .s are expected to start with a #, work around it (Jonathan Hudson) + 5. tandem: -B0 should be deflating not storing (Dave Smith) + 6. human68k updates from Shimazaki Ryo + 7. beos Makefile cleanup (Chris) + 8. workaround for fseek to negativate offset behaviour of the RISC OS + SharedCLibrary (Darren Salt) + 9. set file type for RISC OS in zipcloak.c (Darren Salt) +10. change tandem zgetch() to allow crypt version to work (Dave Smith) +11. fix a comment typo in acorn/riscos.c (Christian) +12. fileio.c: two type-cast to shut up noisy compilers (Christian) +13. human68k: fix missing case_flag argmument (Christian) +14. win32/win32.c: remove HAVE_INT64 completely (Christian) +15. zip.c: raise "cannot zip to console" error when stdout IS a tty (Christian) +16. zip.h: don't use dummy argument names in declarations (Christian) +17. Add missing semicolon in fileio.c (Shimazaki Ryo) +18. win32.c: IBMC compiler >= 3.50 have int64 (Kai Uwe) +19. Handle initialization error return value from MVS stat() in procname() + (Keith Owens) +20. Use RISC OS instead of RiscOS in the manual (Darren Salt) +21. Use # instead of ? as single character wildcard on RISC OS (Darren Salt) +22. New windll example.c (Mike) +23. Correct storage of 8-bit char filenames with RSXNT (Burkhard Hirzinger) +24. fix install in unix/Makefile (Santiago Vila, Onno) +25. Fix zip -L output (Santiago Vila, Onno) +26. Ignore unix special files (Jonathan O'Brien) +27. Upgrade to izshr042 (Onno) +28. Make copyright notice the same as in izshr042 (Onno) +29. Make copyright notice in zip.h the same as LICENSE (Christian) +30. Set tempzf to NULL _after_ it has been closed (Chris Kacher) +31. Change email address for Jonathan Hudson (Jonathan Hudson) +32. Remove win32/winzip.c.orig (Steve Salisbury) +33. Use 'Steve Salisbury' throughout the documentation (Steve Salisbury) +34. Change email address for Steve Salisbury (Steve Salisbury) +35. Change email address for Chris Herborth (Chris Herborth) +36. Use zip23 in INSTALL (Roger Cornelius) +37. Use zcrypt28 in INSTALL (Onno) +38. New acorn/srcrename (Darren Salt) +39. amiga/makefile.azt: make clean should remove some more items (Paul) +40. Change email address for Cosmin Truta (Cosmin Truta) +-------------------------- February 11th 2001 version 2.4a ------------------ + 1. Identify newer Borland compilers (Brad Clarke) + 2. Detect Turbo C 2.01 which doesn't have mktime (Brian Lindholm) + 3. Fix the use of -@ together with -i -x (Christian) + 4. Update msdos/README.DOS to match reality (Christian) + 5. win32: use assembler crc32 code (Christian) + 6. windll: _CRTIMP is needed in several function declarations (Christian) + 7. back to zip 2.2 memcompress() behaviour (Kelly Anderson) + 8. new amiga time code based on nih public domain code (Paul Kienitz) + 9. Detect some more Borland C++ builder versions (Brad Clarke) +10. Fix OS/2's extended file attributes compression code (Christian, Kai Uwe) +11. Correct translation of EBCDIC passwords to ASCII (Christian) +12. Attempt at integrating novell patches from Roger Foss (Onno) +13. Use izshr043 (Christian) +-------------------------- July 3rd 2001 version 2.4b ------------------ + 1. Fix OS/2's ACL compression code (Christian, Kai Uwe) + 2. Rename netware subdir to novell (Christian) + 3. Remove -dNETWARE -dDOS from novell Makefile (Christian) + 4. Remove defined(NETWARE) from the sources (Christian) + 5. printf is a macro in glibc 2.2, fix version_local function + (Christian, Matthew Wilcox) +-------------------------- January 13th 2002 version 2.4c ------------------ + 1. Use klist_items when initilizating koff[] in tandem.c (Dave Smith) + 2. Only call NLMsignals() in zip.c when NLM is defined (Mike, Onno) + 3. include riscos.h instead of acorn/riscos.h in acorn/osdep.h (Andy Wingate) + 4. Use izshr044 (Christian) +-------------------------- January 13th 2002 version 2.4d ------------------ + 1. Don't use mmap for stored entries (Christian) + 2. BIG_MEM and MMAP cannot be defined at the same time (Christian) + 3. Allow redirection of version screen to file (Christian) + 4. Fix for OS/2 output redirection bug (Christian, Kai Uwe) + 5. Acorn script for creating self extracting zips (Darren Salt) + 6. Update amiga makefiles to support revised timezone routines (Christian) + 7. Correct memcompress calculation for allocation size (Christian) + 8. Fix FORCE_METHOD debug option for level 1 and 2 (Christian) + 9. Whitespace cleanup in man/zip.1 (Christian) +10. Define IZ_IMP to specify compiler declaration prefixes (Christian) +11. make win32 and msdos version_local() "stdio-macro-safe" (Christian) +12. move tandem's zip specific zipopen to tanzip.c (Christian) +13. first parm is void * in external scope of vms_get_attributes() (Christian) +14. use right novell subdirectory in zipup.c (Christian) +15. update copyright for files modified in 2002 (Onno) +-------------------------- January 19th 2002 version 2.4e ------------------ + 1. Add MacOS X to version_local() (Mark) + 2. unix/configure: Init LFLAGS1 to "", MacOS X doesn't like -s (Onno, Mark) + 3. rename errors array to ziperrors to avoid MacOS X library clash (Mark) + 4. Support for the upx executable packer in DOS makefiles (Christian) + 5. remove obsolete -m486 switch from dos djgpp makefile (Christian) + 6. When using DOS, force the use of msdos style external attributes when + updating zip entries created under another OS (Christian) + 7. os2/makefile.os2: fixed ASFLAGS for watcom16dos (Christian) + 8. Update copyright and ftp address in several files (Christian) + 9. The RISCOS port uses '.' as directory separator, not '/' (Christian) +10. win32/makefile.bor: more options to compile the asm CRC code (Christian) +11. win32: use registry to handle timezones with MS C rtl (Christian) +12. acorn: use recommended practice for calling the linker (Andy Wingate) +13. unix/configure: check if CPP works else use ${CC} -E (Onno, Mark) +14. update versioninfolines in revision.h to match reality (Onno) +-------------------------- February 10th 2002 version 2.4f ------------------ + 1. vms: Zip -V is now able to handle file sizes up to 4Gb (Christian) + 2. vms: Include target environment detection for MMS/MMK (Christian) + 3. Change dummy message from zipcloak (Christian) + 4. acorn: add riscos specific -/ option (Darren) + 5. Update acorn's WILD_STOP_AT_DIR feature (Christian) + 6. acorn: Fix buffer allocation for -/ option (Christian, Darren) + 7. acorn: fix make clean (Andy Wingate) + 8. acorn: use tabs for GMakefile to make GNU make happy (Andy Wingate) + 9. tandem: use nskopen not zipopen (Dave Smith) +10. tandem: allow passing of CRYPT define (Dave Smith) +11. use izshr045 (Christian) +-------------------------- April 1st 2002 version 2.4g ------------------ + 1. acorn: fix assembler and compiler options in makefile (Darren) + 2. use izshr046 (Christian) + 3. MVS: define isatty to 1 to fix screen output (Christian) + 4. tandem: encryption really works now (Dave Smith) + 5. win32: detect Borland C++ builder 6 (Brad Clarke) +-------------------------- April 30th 2003 version 2.4h ------------------ + 1. tandem: fix temporary file contention (Dave Smith) + 2. cmsmvs: generate better filenames with -j (Owen Leibman) + 3. tandem: fix temporary file leftovers (Dave Smith) + 4. solaris: enable large file I/O to break 2G barrier (Rick Moakley, Onno) + +Note: Zip 2.4 was never released. That code was the start of the Zip 3.0 +effort below. Some changes and fixes also made it to the Zip 2.3x releases. + +---------------------- January 21st 2004 version 3.0a ---------------------- +Initial work on Zip 3.0 by Ed Gordon and Rainer Nausedat + 1. Changed some comments to update copyrights (Ed) + 2. Changed text in command line messages from zip 2.4 to zip 3.0 (Ed) + 3. Changes to many files for Zip64 wrapped in ifdef ZIP64_SUPPORT (Rainer) + 4. Attempt to fix buggy Win32 buffered 64-bit calls (Ed) + 5. Add functions to zipfile.c for Little-Endian memory writes (Rainer) + 6. Add functions to zipfile.c for writing Zip64 extra fields (Rainer) + 7. Major changes to putlocal, putcentral, and putend (Rainer) + 8. Fixing -F and -FF for Zip64 postponed (Ed and Rainer) + 9. Command line code replaced. Global table sets options, long options now + supported. Permutes so order of arguments can vary (Ed) +10. Fix bug where not allowed to use -@ with stdout but was with stdin. + Now can read filenames from stdin using -@ and output to stdout and + no longer am allowed to use -@ if reading from stdin (Ed) +11. Replace stat() with zstat(), fstat() with zfstat() and struct + stat with z_stat in Zip64 blocks. Put 64-bit file calls in ifdef + LARGE_FILE_SUPPORT blocks. Can implement Zip64 without > 4 GB + file support but for now need large files for Zip64 support (Ed) +12. Move port-specific code to osdep.h and win32.c (port specific) and + tailor.h (generic) and remove temporary os_io.c. As OF() is + not defined until after osdep.h includes in tailor.h function + prototypes for zfseeko, zftello, and zstat after that in tailor.h (Ed) +13. Settings of ZIP64_SUPPORT and LARGE_FILE_SUPPORT automatic based on + port and version of compiler. Defining NO_ZIP64_SUPPORT or + NO_LARGE_FILE_SUPPORT overrides this (Ed) +14. Bugs compiling scanzipf_fix(...) in zipfile.c and the fix functions could + use rewrite (Rainer and Ed) +15. Add prototype for zfopen for mapping to 64-bit fopen on ports using + inodes but not implemented (Ed) +16. More work on extended local headers and encypted archives (Rainer) +17. Fix DLL files so now compiles (Ed) +18. File size in dll limited to 32-bit in structure. A new DLL api is needed + to return 64-bit file sizes. Current api fixed to return max 32-bit if + more than that (Ed) +19. Add local header Zip64 support and local extra field. Fixed cast + to ulg missed previously that forced zstat to return value mod 4 GB in + zipup.c which kept local header code from seeing actual file size (Ed) +20. Add new option --force-zip64 to force use of zip64 fields. Could + be temporary (Ed) +21. Fix for VB added to api.c that just store the passed strings internally. + Should update api to optionally return file sizes as 64-bit in call back + and to accept RootDir and other strings in same call that zips (Ed) +22. Readme updated to describe new features and mention updated mail group + web links (Ed) +23. Minor bugs in output format found and fixed. Now can add + files > 4 GB to archive and unzip using major unzippers (Ed) +24. If zip used as filter (zip - -) and sizes exceed limits of extended + local header (data descriptor) then set max 32-bit values there. Major + unzippers ignore and use central directory values which are correct. Can + create Zip64 data descriptor using --force-zip64 option but seems no need + for it (Ed) +25. A few bugs in how headers are handled prevented zipping large numbers + of files. Fixed (Rainer) +26. A bit of an attempt to fix -F and -FF. Seems to work but not that + robust. More work needed (Ed) +27. After some cast and other fixes zip compiles on Linux Red Hat 9 using Unix + generic. Added automatic detection of fseeko64 and if detected + sets LARGE_FILE_SUPPORT and setting that sets ZIP64_SUPPORT. Works but + could not test large files on the small system (Ed) +28. Tried to fix bug that prevents zipnotes from compiling when ZIP64_SUPPORT + is set. Still broke. This crashes the Unix Makefile but after + zip is compiled (Ed) +---------------------- May 8th 2004 version 3.0b ---------------------- + 1. Update license headers on more files (Ed) + 2. Change many ZIP64_SUPPORT ifdefs to LARGE_FILE_SUPPORT where appropriate. + Now can test ports using three stages, compile with NO_LARGE_FILE_SUPPORT + (which disables ZIP64_SUPPORT) to test base code, compile with + NO_ZIP64_SUPPORT to test the 64-bit file calls (assuming port sets + LARGE_FILE_SUPPORT) but otherwise use the base code, and without either + to test Zip64 if enabled on port (Ed) + 3. Fix zipnotes bug by moving a ZIP64_SUPPORT block in zipfile.c (Ed) + 4. Add Large File Summit (LFS) code to Unix port to enable 64-bit calls. + Update configure to include test for all needed 64-bit file calls before + enabling LARGE_FILE_SUPPORT for unix port (Ed) + 5. Merge encryption code from zcrypt29 (files from unzip) into zip and + enable by default (Ed) + 6. New man pages for zipnote, zipsplit, and zipcloak (Greg, Ed) + 7. Add encryption notice to crypt.c comments and to version information + in zip.c (Greg, Ed) + 8. Add Russian OEM EBCDIC support when OEM_RUSS defined in ebcdic.h but + Dmitri reports that 0x2F not '/' so make recommended change in cutpath + call in zipfile.c used by -D option (Dmitri - Nov 10 2003 email) + 9. ToDo30 file added to list what's left to do in this release (Ed) +10. Change fopen to zfopen for large file code and map to fopen64 for + Unix (Ed) +11. ftello64 seems broken in zipup.c on Linux (kernel 2.4), returning + negatives past the 2 GB barrier, though ftello64 works in a test program. + Likely error in defines. For now skip ftello64 check for Unix with + LARGE_FILE_SUPPORT. +12. A few updates in Readme. Needs overhaul likely. Also verified mxserver + is gone and replaced with list addresses (Ed) +13. First iterations at updating WinDLL for Zip64 (Mike) +14. Decide to drop backward dll compatibility in favor of a cleaner + dll interface. Decide to add string interfaces for VB (Ed, Mike) +15. Add string interfaces to dll interface to bypass array limitations + imposed by VB and add -x and -i to interface (Mike) +16. Create new VB example using new Zip64 dll interface (Ed) +17. Add O_LARGEFILE define for zopen in unix/zipup.h to enable reading + large files in unix (Ed) +18. Combine ZpSetOptions and ZpArchive dll calls to allow removing all VB kluges + in api.c to work around VB garbage collecting passed strings (Mike) +19. Change new VBz64 example to use updated interface. All works without + kluges (Ed) +---------------------- August 15th 2004 version 3.0c ---------------------- + 1. Add date formats in -t and -tt date errors (Ed) + 2. Add -so to display all available options (Ed) + 3. Many fixes from Dan Nelson to fix some large file support problems and + add large file support to a few ports. Main change is rather than use + explicit 64-bit calls like fopen64 now set 64-bit environment and use + standard calls. Also add a define for 64-bit printf format used to + print 64-bit stats (Dan, Ed) + 4. Changes to Unix config based on suggestions from Dan Nelson. Check + if off_t is at least 64 bit (Dan, Ed) + 5. Add -- to get_option. Any arguments after -- on command line now + read as paths and not options (Ed) + 6. Add extended help (Ed) + 7. Change add_filter flag parameter from char to int as some compilers have + problems with char arguments (Ed) + 8. Changed filter() to do R and i separately so i has precedence over R (Ed) + 9. Split variable t in zip.c into t (off_t) and tf (ulg) (Ed) +10. Add quotes to zipname in check_zipfile for MSDOS to allow spaces in + archive path given to unzip to test ( , Ed) +11. Move zip.h include before ctype.h include in trees.c and zipup.c as + when ctype.h is first and using 64-bit environment at least on unix port + found it defines off_t as 4 bytes in those files as off_t is defined as + 8 bytes in other files and this changes the size of the zlist structure + which is not good (Ed) +12. Add default 64-bit file environment to tailor.h if LARGE_FILE_SUPPORT + is set but no port 64-bit file defines are set up earlier in the file. + Should allow other ports to set LARGE_FILE_SUPPORT on the compiler + command line to test if the standard defines work (Ed) +13. Adjust binary detection in trees.c by changing 20% binary (4 out of 5 + ascii) that used >> 2 to 2% (64 out of 65) using >> 6 instead. + trees.c (Ed) +---------------------- November 12th 2004 version 3.0d ---------------------- + 1. Add global variable for EncryptionPassword in VBz64 example and + some other password callback cleanup (Ed) + 2. Add -W option to turn on WILD_STOP_AT_DIR where wildcards will not + include directory boundaries in matches (Ed) + 3. Add -nw option "no wild" to completely disable wildcards in MATCH + function. Allows a list of files to be read in without worrying about + wildcards or escapes (Ed) + 4. Add -s option split-size but not implemented (Ed) + 5. Add -sp option split-pause but not implemented (Ed) + 6. Add changes for WiZ including moving Win32 64-bit wrappers into + win32i64.c to avoid naming conflict between libraries in WiZ (Mike, Ed) + 7. Some large file fixes in crypt.c (Ed) + 8. Add new error code ZE_UNSUP for unsupported compiler options. Add + check of size of zoff_t in zip.c when LARGE_FILE_SUPPORT enabled (Ed) + 9. Changed ZE_UNSUP to ZE_COMPERR to avoid conflict with unzip (Ed) +10. On VMS (sufficiently recent, non-VAX), DECC$ARGV_PARSE_STYLE is set + automatically to preserve case of the command line if the user has + SET PROCESS /PARSE = EXTEND. This obviates quoting upper-case + options, like -V, when enabled. VMS.C (Steven Schweda (SMS)) +11. On VMS, building with macro VMS_PRESERVE_CASE defined preserves case + of names in archive, instead of forcing lower-case (the former and + current default behavior). VMSZIP.C (SMS) +12. On VMS, in some of the simplest cases, ODS5 extended file name + escape characters ("^") are removed from names in archive. + VMSZIP.C (SMS) +13. On VMS, fixed a problem in some cases with mixed-case directory + names, where too much of the directory hierarchy was included in the + path names in the archive. VMSZIP.C (SMS) +14. On VMS, minor changes for large file support (long -> zoff_t). + VMSZIP.C (SMS) +15. On VMS, changed some structure declarations to typedefs, and + rearranged to simplify #if's and reduce potential name conflicts. + VMS.H, VMS_IM.C, VMS_PK.C (SMS) +16. On VMS, reformed -V (/VMS) processing. Added -VV (/VMS=ALL). + Removed some sign bits to accomodate files bigger than 2GB. + CMDLINE.C, VMS_IM.C, VMS_PK.C, ZIP.C, ZIP_CLI.CLD, ZIP_CLI.HELP, + ZIPUP.H (SMS) +17. Update command line options to support -VV as distinct option (Ed) +18. More VMS changes (SMS) +19. Add zoff_t format function (SMS) +20. On VMS, when -b was not used, temporary archive files were always + created in the current default directory, rather than in the archive + file destination directory. VMS now uses its own tempname() + function. FILEIO.C, VMS.C (SMS) +21. Remove using FNMAX for path size in a few places including filetime.c + to avoid exceeding limit (based on fixes from Greg and others) (Ed) +22. Add port atheos (Ruslan Nickolaev, Ed) +23. Bug fix adds different extra fields for local and central in VMS (SMS) +24. Now short options also take optional values as next argument (Ed) +25. Change -dd to control -v dots (SMS, Ed) +26. On VMS, a new open callback function senses (where supported) the + process RMS_DEFAULT values for file extend quantity (deq), + multi-block count (mbc), and multi-buffer count (mbf), and sets the + FAB/RAB parameters accordingly. The default deq is now much larger + than before (16384, was none), and the default mbc is now 127 + (up from 64), speeding creation of a large archive file. Explicitly + set RMS_DEFAULT values override built-in defaults. OSDEP.H, VMS.C + (SMS) +27. VMS CLI definitions and CLI help have been updated, and may be + approximately correct. CMDLINE.C, ZIP_CLI.CLD, ZIP_CLI.HELP (SMS) +28. The man file zip.1 updated and Makefile updated to generate manual + pages for zipcloak.1, zipnote.1, and zipsplit.1 (Ed) +---------------------- July 23rd 2005 version 3.0e ---------------------- + 1. Debian patch 004 - apply 2.4i configure changes from Onno to remove + need for -fno-builtin in unix/configure (Onno, Ed) + 2. Debian patch 005 for bug 279867 - fix bug that could crash on large paths + and create security problem. Apply patch changes from Greg (Greg, Ed) + 3. SourceForge patch 1074363 - add win32i64.c to win32/makefile.w32 (Ed) + 4. Add check when not ZIP64_SUPPORT in scanzipf_reg() in zipfile.c if + Zip64 archive being read (Ed) + 5. Renamed fzofft() used to format zoff_t values to zip_fzofft() to remove + conflict when combined with UnZip in WiZ (Mike) + 6. Add check in scanzipf_reg() in zipfile.c if Zip64 archive being read (Ed) + 7. Fixes for amiga/makefile.azt to define directory for object files (Paul) + 8. Define prototypes for local functions optionerr, get_shortopt and + get_longopt in fileio.c. Define err argument of optionerr as ZCONST (Paul) + 9. Add help_extended and DisplayRunningStats prototypes, fix other prototypes + in zip.c (Paul) +10. Split int kk off of k for argument types (Paul) +11. Aztec #endif quirk fix in zip.c for Amiga (Paul) +12. Add detection of binary in first buffer read from file in zipup.c to avoid + a -l or -ll translation on binary file. Not perfect but at least should + catch some binary files (Ed) +13. Remove check for >= 128 from binary check in zipup.c as <= 6 enough for + signed char (SMS, Ed) +14. SF Bug 1074368 - check for empty zip file in readzipfile() in zipfile.c + (Christian d'Heureuse, Ed) +15. Add error exit to prevent archive corruption when updating a large-file + archive with a small-file program. Add ZE_ZIP64 error. + ziperr.h, zipfile.c (SMS) +16. Change percent() in zipup.c to do rounding better, handle cases near limits + while rounding, and allow negative percent returns (SMS, Ed) +17. Add function ffile_size() in zipfile.c but in #if 0 block until determine + if works on all ports under all conditions. Currently only used for size + check for Zip64 archive detection if compiled without ZIP64_SUPPORT and + this check may already be handled in scanzipf_reg() and should be added to + scanzipf_fix() when that is updated (SMS, Ed) +18. Change >>1 to /2 in zipsplit.c to allow for negative percent returns (SMS) +19. Add type uzoff_t for unsigned zoff_t things. Should clean up some casting + (Ed) +20. Based on discussions with other development groups, when data descriptors + (extended local headers) are used, force to Zip64. This is compatible + with other unzips and does not require a change of the AppNote, but the + resulting archive requires Zip64 to read. Using standard data descriptors + would mean that the zip operation would fail if a Zip64 entry was + encountered. See zipfile.c (Ed) +21. Add define SPLIT_SUPPORT to enable splits. The command line options are + done and the globals are set up but nothing more. globals.c, zip.h, and + zip.c mainly (Ed) +22. Create spanning signature at beginning of archive when splitting enabled. + If reading a split archive skip the spanning signature unless creating a + split archive. zip.c, globals.c (Ed) +23. Start implementing split archives. Define two methods. split_method = 1 + updates local headers and is the most compatible but requires updating + previous splits. split_method = 2 uses data descriptors and should work + for streams and removable media but may not be as compatible with other + zip applications. (In part based on previous discussions with Rainer.) + Updated global variables to include bytes written to just the current + entry in the current split. zipfile.c (Ed) +24. Add note about output redirection to zip.1 (?, Ed) +25. Remove num < 0 check as num now unsigned. util.c (SMS, Ed) +26. Change lastchar to lastchr in fileio.c in places to avoid function by same + name (SMS, Ed) +27. Moved #endif /* !WINDLL */ in zip.c (Mike) +28. Account for vms directory version being ;1. vmszip.c (SMS) +29. Fix Zip64 check in scanzipf_reg to use the buffer. zipfile.c (Ed) +30. Default define size_t (for use by Steve's ffile_size() function). tailor.h (Ed) +31. Enable Steve's ffile_size() function and enable large file check. It + currently does not allow file sizes over 2 GB but the code is not supporting + it anyway without large file support. Should remove that part of the check + when the casts are fixed. zipfile.c (Ed) +32. Fixes for djgpp. Now compiles with djgpp 2 (Ed) +33. Add new VC6 projects for win32 and windll (Cosmin) +34. Convert some variables in zipsplit.c from ulg to zoff_t so compiles (Ed) +35. Add wildcards to extended help. zip.c (Ed) +36. For optional option value now '-' is same as missing value. fileio.c (Ed) +37. Remove extra free() from -dd option switch. zip.c (Ed) +38. Change write_unsigned_to_mem() to write_ulong_to_mem() and write_short_to_mem() + to write_ushort_to_mem(). zipfile.c (Ed) +39. Create new append to mem functions. zipfile.c (Ed) +40. Change zlist nam and ext from extent to ushort as that is what gets written. + zipfile.c (Ed) +41. Change GetSD to use ush instead of size_t. win32/win32zip.c (Ed) +42. Change PutLocal(), PutExtended(), PutCentral(), and PutEnd() to write to + memory and then write the block at once to the file. zipfile.c (Ed) +43. Change zcomlen from extent to ush, other extent conversions. zipfile.c, + globals.c, zip.h (Ed) +44. Add is_seekable() and global output_is_seekable. Do seekable check + when output file is opened. zipup.c, globals.c, zip.h, zip.c (Ed) +45. Do not increment files_so_far and bytes_so_far if file could not be read. + zip.c (Ed) +46. If force_zip64 set, only force compressed size in central directory to Zip64 + instead of all entries (csize, usize, off, disk) in Zip64 extra field. This + fixes inconsistent handling of disk numbers. zipfile.c (Ed) +47. Add end status if displaying running stats and not all files were read. + zip.c (Ed) +48. Change force_zip64 to zip64_archive in putend(). zipfile.c (Ed) +49. Enable the i686-optimized code by default. crc_i386.S, + win32/crc_i386.asm, win32/crc_i386.c (Cosmin) +50. Document and implement a new text detection scheme provided by Cosmin in + set_file_type(). Should be able to handle UTF-8 and some other character sets. + proginfo/txtvsbin.txt, trees.c (Cosmin, Johnny, Christian) +51. Update binary detection for -l and -ll to use Cosmin black list. zipup.c (Ed) +52. Change ZE_BIG to include read and write. ziperr.h (Ed) +53. If archive not seekable then use data descriptors. If ZIP64_SUPPORT always + create Zip64 data descriptors and add a Zip64 extra field to flag it is + a Zip64 data descriptor. This is klugy but should be compatible with other + unzips. See the note in zipfile.c for details. (Ed) +54. Use ush for comment length in putend(). Instead of extent use ush for + zcount and fcount same as in zip file. zip.h (Ed) +55. Update VB readme. windll/VB/readmeVB.txt (Ed) +56. Change (INSTALL) to (INSTALL_PROGRAM). unix/Makefile (, Ed) +57. During update the file and byte status counts were off. Fixed by not coun- + ting files copied from old to new as those are not in totals. zip.c (Ed) +58. Change from -b to -bx for nroff of manuals to text files. unix/Makefile (Ed) +59. Add cygwin to makefile. unix/Makefile (, Ed) +60. Fix bug where files to delete not added to list. zip.c (Ed) +61. Fix delete stats. zip.c (Ed) +62. Increment version of crypt to 2.10. Update default behavior notes. + crypt.c, crypt.h (Paul, Christian) +63. Format changes, add parentheses to zfseeko(), fix output bytes, add ifdef + blocks for ZIP10, fzofft formatting, casts. crypt.c (Christian) +64. Cast block_start to unsigned. deflate.c (Christian) +65. Let -R patterns match in subdirectories. Update filter() to use switch, + use global icount and Rcount, handle subdirectories, update icount and + RCount in filterlist_to_patterns(). fileio.c, zip.c, zip.h, globals.c + (Christian) +66. Enclose option -! and use_privileges under NTSD_EAS guard. globals.c, + zip.c, zip.h (Cosmin) +67. Updates to version, copyright, license. [I did not split the copyright + to 2 lines as it already takes up space on the help screen. Ed] + revision.h (Christian) +68. Add ZCONST to some read-only string pointer arguments in function + declarations. zipcloak.c, zipnote.c, zipsplit.c, zip.c, zip.h (Christian) +69. Fix byte counts on exit in zipcloak() and zipbare() to fix zipcloak bug + (Christian) +70. Modified zipnote.c to use WRBUFSIZ to handle line widths of at least 2047 + characters in write mode (Christian) +71. Change simple() and greedy() from zoff_t to uzoff_t. zipsplit.c (Christian) +72. Remove duplicate copyright notices. zipsplit.c (Christian) +73. Remove export notice from help page. Move notice to bottom of license + page. zipcloak.c (Ed) +74. File USexport.msg export history added. (Greg) +75. Added support for VMS ODS5 extended file names. (Eight-bit only, no + Unicode.) VMS name character "/" is mapped to Zip name character + "?". New command-line options -C[2|5][-] (/PRESERVE_CASE[=opts]) + control name case preservation and/or down-casing. globals.c, + zip.c, zip.h, vms/cmdline.c, vms/vms_im.c, vms/vms_pk.c, vms/vms.c, + vms/vmszip.c, vms/vms.h (SMS) +76. New VMS option -ww (/DOT_VERSION) stores version numbers as ".nnn" + instead of ";nnn" [changed from -Y to -ww (Ed)]. zip.c (SMS) +77. Changes to vms_open(). vms/vms_im.c, vms/vms_pk.c +78. Changes to vms_read(). vms/vms_pk.c (SMS) +79. Documentation updates. vms/vms_zip.rnh (SMS) +80. Minor updates. vms/zip_cli.help, vms/cmdline.c, vms/vms_zip.rnh (Ed) +81. Changes to vmsmunch(). vms/vmsmunch.c (SMS) +82. Do some updating of VMS options. vms/zip_cli.cld (SMS) +83. Moved the VMS-specific ziptyp() function from zipfile.c to vms/vms.c + to segregate better the RMS stuff. (SMS) +84. Put 64-bit calls in ZIP64_SUPPORT ifdef blocks, change some long parameters + for append to memory block functions to ulg, remove redundant includes, + add OFT protos to some functions with parameter types that get promoted + like ush to avoid warnings in VMS. zipfile.c (SMS) +85. Use zip_fzofft() to format number. zipsplit.c (SMS) +86. Add file_id.diz from Zip 2.31 (?, Ed) +87. Update install from Zip 2.31 (?, Ed) +88. Update license from Zip 2.31. License (?, Ed) +89. Update Readme.cr from Zip 2.31 (?, Ed) +90. Add 64-bit assembler for Win32 from Zip 2.31. win32/makefile.a64, + win32/readme.a64, win32/gvmat64.asm (?, Ed) +91. Update Readme (Ed) +92. Update headers. crctab.c, crc32.c, deflate.c, ebcdic.h, fileio.h (Ed) +93. Option for extra verbose VMS, change DIAG_FLAG from verbose to + (verbose >= 2). vms/vms.c (SMS) +94. Update copyright header. qdos/qdos.c (Christian, Ed) +95. Change exit(0) to exit(ZE_OK). qdos/qdos.c (Christian) +96. Change ulg to unsigned long. tailor.h (, Christian) +97. Default uzoff_t to unsigned long long if LARGE_FILE_SUPPORT manually + enabled for an otherwise unsupported port. tailor.h (Ed) +98. Update copyright header. tailor.h (Ed) +99. Change EXIT(0) to EXIT(ZE_LOGIC) for ziperr recursion. zip.c (Christian) +100. Change EXIT(0) to EXIT(ZE_OK) for successful returns. zip.c, + zipcloak.c (Christian) +101. Update license. zip.h (Christian) +102. Initialized mesg in zipcloak.c, zipnote.c, zipsplit.c to fix access + violation crashes. (Christian) +103. Added -q (Quiet mode) option to zipcloak, zipnote, zipsplit. (Christian) +104. Add proto of mb_clen(). fileio.c (Cosmin) +105. Synchronize ttyio.c and ttyio.h with the unzip-5.52 source. (Cosmin) +106. Control the POSIX emulation provided by some Unix-on-Windows compiler + distributions, such as Cygwin, via the FORCE_WIN32_OVER_UNIX macro. + tailor.h, win32/Makefile.gcc (Cosmin) +107. Remove getenv() declaration. util.c (Cosmin) +108. Fix definitions of zopen and zstdin. unix/zipup.h (Cosmin) +109. Enable binary file operations for DJGPP and Cygwin. unix/osdep.h (Cosmin) +110. Remove -DMSDOS from CFLAGS; use correct dependency in target crc_i386.obj. + win32/makefile.w32, win32/makenoas.w32 (Cosmin) +111. Update win32/makefile.bor and win32/makefile.gcc (Cosmin) +112. Put mktemp() declaration inside the NO_PROTO guard. tailor.h (Cosmin) +113. Use the right type (DWORD) for volSerNo, maxCompLen and fileSysFlags + in FSusesLocalTime(). win32/win32.c (Cosmin) +114. Set the "zip Debug" configuration as default. win32/vc6/zip.dsp (Cosmin) +115. Define ASM_CRC by default. win32/osdep.h (Cosmin) +116. Avoid using file names that are distinguished solely by letter case; + e.g. crc_i386.S and crc_i386.s. unix/Makefile (Cosmin) +117. Stylistic fix inside ex2in(). unix/unix.c (Cosmin) +118. Change zlist dsk from ush to ulg to support Zip64 and added casts in + zipfile.c to write ush. zip.h, zipfile.c (Christian, Ed) +119. Conditionally apply S_IFLNK to support DJGPP. unix/unix.c (Cosmin) +120. Change -dd [siz] (display dots, set optional dot size) to the options + -dd (turn dots on, use 10 MB default) and -ds siz (set dot size). + Found that using -dd with an optional value got confusing as detection + of an optional argument, when the next argument was not either an option + or the end of the line, was easy to overlook. Easier to avoid optional + values. zip.c (Ed) +121. Change text output of manual pages to zip.txt, zip.txt, zipcloak.txt, + zipnote.txt, zipsplit.txt. unix/Makefile (Christian, Ed) +122. Change comments using // to /* */ format. api.c, zip.c (Christian) +123. Add support for signals SIGABRT, SIGBREAK, SIGBUS, SIGILL, and SIGSEGV + to utilities. zipcloak.c, zipnote.c, zipsplit.c (Christian) +124. Update ToDo30.txt file (Ed) +125. Delete old Manual file (Ed) +126. Update WHERE from Zip 2.32 (Ed) +127. Change description of dot-size. zip.c (Ed) +128. Change VMS to use -ds to set dotsize. vms/cmdline.c (Ed) +129. Update manuals. man/zip.1, man/zipsplit.1, man/zipnote.1, + man/zipcloak.1 (Ed) +130. Detect i586, i686 and Cygwin in version_local(). unix/unix.c (Cosmin) +131. Add clean target. win32/makefile.w32, win32/makenoas.w32 (Cosmin) +132. Changed most 64-bit size/offset variable declarations (like zoff_t) + into "unsigned" type (like uzoff_t), for better backward compatibility + with non-ZIP64_SUPPORT setups where "ulg" was used for these variables. + deflate.c, fileio.c, globals.c, trees.c, vms/vms_pk.c, win32zip.c, + zip.c, zip.h, zipfile.c, zipup.c (Christian) +133. Add (ulg) cast to strstart in flush_block. deflate.c (Christian) +134. Updated Win32 LARGE_FILE_SUPPORT setup for Watcom and MinGW. + tailor.h, win32/osdep.h (Christian) +135. Add attempt count to tempname(). fileio.c (Christian) +136. Fixed size counter handling in debug code for Zip64. trees.c (Christian) +137. Moved cryptnote display text definition into revision.h, like was done + in Zip 2.31. zip.c, revision.h (Christian) +138. Add ZCONST. fileio.c (Christian) +139. Removed earlier change in trash() where ASCII-containing iname was + searched for native-coded '/' characters. [Added note but left as + changed 5/20/05 EG] zipfile.c (Christian) +140. Change zipup size error message to use zip_fzofft(). zipup.c (Christian) +141. Updated win32/makefile.wat to enable Zip64 support and use directory + for intermediate files. (Christian) +142. Change fcount and zcount from ulg to extent as extent is used internally, + but Zip64 standard supports up to ulg. Add note to zip.h. globals.c, + zip.h (Christian) +143. Define NO_W32TIMES_IZFIX in compile options when appropriate. Add + version information for USE_ZLIB compiler option. zip.c (Christian) +144. Add support for SIGABRT, SIGBREAK, SIGBUS, SIGILL, and SIGSEGV signals. + zip.c (Christian) +145. Add display-usize option to show uncompressed size. zip.c (Ed) +146. Add many descriptions to options table. zip.c (Ed) +147. Remove -R from help screen as on extended help screen. zip.c (Ed) +148. Add basics to extended help. zip.c (Ed) +149. Fix checks in scanzipf_reg() for empty file since cenbeg now unsigned. + Change buffer from t to b in small big check. Back up after small + zip big archive check. zipfile.c (Ed) +150. Change Zip64 not supported warning in scanzipf_reg(). zipfile.c (Ed) +151. Fix bug where local and central headers were not matching when compiled + with NO_LARGE_FILE_SUPPORT. Restored order of zlist structure elements + to match order of local header as scanzipf_reg() compares it as an + array of bytes to the local header. Gag. It needs fixing but at least + it works as intended now. zip.h, zipfile.c (Ed) +152. Minor fix from 10000 to 10 K for WriteNumString(). util.c (Ed) +153. Add overflow check to file_read(). zipup.c (SMS) +154. Add parameter p1 product specification. vms/collect_deps.com (SMS) +155. VMS changes. vms/descrip_mkdeps.mms (SMS) +156. Change zoff_t to uzoff_t and unsigned int to size_t. vms/vms_im.c, + vms/vms_pk.c (SMS) +157. Fix ; that was : at end of line. Fix DisplayNumString() prototype. + zip.h (Ed) +158. Get rid of leading blanks in DisplayNumString(). util.c (Ed) +159. Reset dot_count each file. zipup.c (Ed) +160. Minor changes to extended help. zip.c (Ed) +161. Move defines into DEFINED_ONCE block. api.h (Mike) +162. Add Still Remaining And Planned For Zip 3.0 section. WhatsNew (Ed) +163. Delete quotes around CHANGES. Readme (Ed) +164. Add -lf, open file at path and use for logging, -la, append to + existing logfile, and -li, include informational messages, options. + globals.c, zip.h, zip.c (Ed) +165. Update extended help to include logging. zip.c (Ed) +166. Add support for required short option value in form -o=value as optional + does. fileio.c (Ed) +167. If bytes_total is smaller than bytes_so_far for some reason then display + negative of bytes_to_go. This can happen if files grow in size after all + the sizes are initially added up. zip.c (Ed) +168. Use usize from filetime for adding to bytes_total when updating instead + of size in old entry. zip.c (Ed) +169. Change status counts files_so_far and bytes_so_far to include bad files + so the status counts end at the end but add bad_files_so_far and + bad_bytes_so_far to track bad files. After minor fixes it looks like + the counts remaining at the end are correct, even when some files are + not readable. Update bad file warnings. zip.c, zip.h, globals.c, + zipup.c (Ed) +170. Add uq for unsigned q in zipup(). Initialize z->len in case an error + later so have a valid size. zipup.c (Ed) +171. Check noisy in DisplayRunningStats() so logging is independent of it. + zip.c (Ed) +172. Add check in DOS for windows and if running DOS version on Windows warn + user. zip.c, msdos/msdos.c, msdos/osdep.h (Johnny) +173. Add errno.h for strerror(errno) call. zip.c, zipup.c (SMS) +174. Fix log problem if using -q option. zipup.c (Ed) +175. Change "Far char" to "char Far" as Far is a qualifier not for the char + type but the storage allocation of the array. fileio.c (Christian) +176. Update note on extent. globals.c (Christian, Ed) +177. Remove extra USE_ZLIB. zip.c (Christian) +178. Add note for the OEM_RUSS '/' bug. Need to look at later as it seems + the Russian bug remains unfixed. zipfile.c (Christian, Ed) +180. So byte counts always come out even, create good_bytes_so_far to + count bytes read in and convert bytes_so_far to use the counts + from the initial scan. If files change during the zip operation + good_bytes_so_far will change and not match bytes_so_far. + zip.h, globals.c, zip.c (Ed) +181. Changes to extended help. zip.c (Ed) +182. Update WhatsNew (Ed) +183. Update DLL resource copyright. windll.rc, windll.aps (Ed) +184. Add directory search improvements to Win32 (within recursion, reuse + attribs from directory lookup to avoid calling stat()). Add + getd_attribs(), procname_win32(). win32/win32zip.c (Johnny) +185. Cache result of IsFileSystemOldFAT() to avoid repetitive system calls + for identical information. win32/win32.c (Johnny) +186. Add optimization to dosmatch(): apply alternate shortcut code when the + pattern to match consists of one multichar wildcard ('*') followed + by a fixed string. util.c (Johnny) +187. Move DOS check_for_windows() checks to Help and Version and errors + only. Shorten message to one line. zip.c, msdos/msdos.c (Ed) +188. Define WIN32_OEM to enable oem ansi conversions for more than RSXNT. + Not yet fully implemented. win32/win32.c, win32zip.c, zip.c, + zipfile.c (Ed) +189. Directory search improvements for MSDOS. msdos/msdos.c (Johnny) +190. Add caching of directory information. If pattern is just *string no + need to recurse. win32/win32.c (Johnny) +191. If wild_stop_at_dir then do recurse to handle cases like a/b/*.txt. + win32/win32.c (Ed) +192. Additional improvements to directory search speedups, including + a) MSDOS port fixes for Turbo C++ compiler + b) In both Win32 and MSDOS, change getDirEntryAttr() into macro, + saving one function call overhead + e) Add explaining comment to optimized procname_{local} code + f) In util.c, move "*literal" pattern-matching optimization from + dosmatch() to recmatch(). Advantages: + - optimization used for all systems + - optimization applied to all occurences where a "*" is last wildcard + in pattern + - "dosmatch()" only preconditoning wrapper for matching workhorse + "recmatch()", it should not implement matching algorithms itself + - optimization not applied for WILD_STOP_AT_DIR option + g) >>>disabled<<< "*literal" optimization for all MBCS-aware environments, + because suspect that supplied optimization code is not MBCS-clean + (for details see the comment within the patch), so IS NOT USED for + win32 port! Can force activation of match optimization by specifying + conditional compilation symbol TEST_FOR_MBCS_CLEAN. + (Christian) +193. Add and move comments, implement changes for directory search improvements + in Zip 3.0 util.c (Ed) +194. In win32/win32.c, IsFileSystemOldFAT(), add declarations of static caching + variables where missing to fix win32 port compilation bug (Christian) +195. Correct changed arguments in RSXNT-only character set conversion + call. win32/win32zip.c (Christian) +196. Implement Directory Search improvements from Zip 2.32. win32/win32zip.c + (Johnny, Ed) +197. Debian Bug #312090 fix. Reworded man page to give multiple examples of + recursion, not just zip -r foo foo. man/zip.1 (Ed) +198. Change "-Aa -D_HPUX_SOURCE +e" to -Ae for HP. "HP-UX with the HP compiler + and on AIX 4.2.0. AIX 5.1 with gcc-3.4.3 (32-bit) and Darwin built fine + - though AIX 5.1 needed CC=gcc make -e ... to find gcc. According to the + HP-UX man page -Ae is equivalent to -Aa -D_HPUX_SOURCE +e it seems the + +e is needed and -Ae is more terse anyway." Expression generated before + was too long. unix/configure (Rodney Brown) +199. Add support for osf4.0f that does not have fseeko or ftello but has 64-bit + fseek and ftell though. tailor.h (Rodney) +200. Fix unsigned char to char in recmatch(), add casts for compares. util.c + (Ed) +201. Fix for alpha off_t long long. unix/osdep.h (Rodney) +202. Change shmatch() from uch to char and change parameters to recmatch(). + Change dosmatch(). util.c (SMS, Rodney, Ed) +203. Add local for DisplayRunningStats(). zip.c (Rodney, Ed) +204. Disable unused append_ubyte_to_mem(). Fix error messages in other append. + zipfile.c (Rodney, Ed) +205. Delete unused getDirEntryAttribs(). msdos/msdos.c (Christian) +206. Change warning when running msdos version on Windows. msdos/msdos.c (Ed) +207. Change recmatch() to support MBCS matching. util.c (Christian) +208. Update WhatsNew (Ed) +209. Update Readme (Ed) +210. Format Readme to fit in 80 character lines (SMS, Ed) +211. Rename install.vms to install_vms.txt. vms/install_vms.txt (SMS) +212. Add reference to vms/install_vms.txt in INSTALL (SMS) +213. Update INSTALL (Ed) +214. Remove ALT_NEXTBYTE and Building UnZip sections as no longer needed. + vms/notes.txt (SMS, Ed) +215. Add note to TODO (Ed) +216. Update Makefile message to suggest using generic. unix/Makefile (Ed) +217. Update text output of manual. zip.txt (Ed) +218. Update VMS section. INSTALL (SMS, Ed) +219. Minor changes in vms/install_vms.txt (SMS, Ed) +220. Update VMS install information. INSTALL, vms/install_vms.txt (SMS, Ed) +221. Do not use _stati64 under Cygwin. win32/osdep.h (Cosmin) +222. Add note to Makefile to use generic first. unix/Makefile (Ed) +223. Add Test option for VMS CLI. vms/cmdline.c (SMS, ?) +224. Add noconfirm to deletes, define symbol edit. vms/descrip.mms (SMS) +225. Changes to vms/install_vms.txt (SMS) +226. Add note on symbols to VMS. INSTALL (SMS) +227. Update license headers. vms/osdep.h, vms/vms.h, vms/vmsmunch.c, + vms/zipup.h, vms/vmszip.c, vms/vms.c, vms/vms_im.c, vms/vms_pk.c, + vms/command.c (Ed) +228. Add stsdef.h include for VMS and convert unzip test return to VMS + result for VMS. zip.c (SMS) +229. Add const to ziperr(). amiga/amiga.c (Paul) +230. Clean up makefile. amiga/makefile.azt (Paul) +231. Don't try Amiga large file support. amiga/osdep.h (Paul) +232. Add note on -V and -VV. vms/notes.txt (SMS) +233. Small update. vms/zip_cli.help (SMS) +234. Format Windows warning message. msdos/msdos.c (Christian) +235. Format changes. util.c (Christian) +236. Update VMS. INSTALL (SMS) +237. Add creation of intermediate object directories. msdos/makefile.wat + (Christian) +238. Add void * cast. msdos/msdos.c (Christian) +239. Add include for mktemp(). msdos/osdep.h (Christian) +240. Fix __RSXNT__ and WIN32_OEM define blocks. win32/win32.c (Christian) +241. Fix __RSXNT__ and WIN32_OEM define blocks. win32/win32zip.c (Christian) +242. Add != NULL to check. zip.c (Christian) +243. Fix WIN32_OEM. zipfile.c (Christian) +---------------------- October 11th 2005 version 3.0f01 ---------------------- +(the internal betas may be merged later) + 1. Add DSEG for Watcom data segment. msdos/makefile.wat (Christian) + 2. Add -zq and use assembler. os2/makefile.os2 (Christian) + 3. Update header. os2/match32.asm (Christian) + 4. Change len from int to unsigned int. os2/os2.c (Christian) + 5. In GetLongPathEA() limit tempbuf to CCHMAXPATH. os2/os2.c (Christian) + 6. Add DWATCOM_DSEG to use data segment. win32/makefile.wat (Christian) + 7. Update header and add DGROUP. win32/match32.asm (Christian) + 8. Add UNICODE_SUPPORT define. zip.h, zip.c (Ed) + 9. Add oname to f and z structs for the display name to use in messages. + Change z->zname to z->oname in messages. fileio.c, zip.c, win32zip.c, + zipup.c, zipfile.c, zip.h (Ed) +10. Move multi-byte defines to make global (they were needed with wide + characters but that was taken out and left them where they are). + fileio.c, zip.h +11. Add copy_args(), free_args(), and insert_arg() to create copy of argv + that can free() and to support inserting "@" in get_option for lists. + fileio.c, zip.h +12. Insert arg "@" after list if not followed by option. fileio.c +13. Add args variable and copy argv to args so can use insert_arg(). zip.c +14. Add MKS Korn Shell note. zip.c +15. Change cast of option in add_filter() calls from char to int. zip.c +16. Implement multi-byte version of Unicode support. To support Win32 NT + wide calls will require additional work not planned for this release. + Changes include (Ed): + - Add use_wide_to_mb_default flag. globals.c, zip.h + - Add compiler UNICODE_SUPPORT version information. zip.c + - Add uname to f and z structs for UTF-8 name. zip.c + - Moved some defines out of ZIP64 section. zipfile.c + - Add define UTF8_PATH_EF_TAG for Unicode Path extra field. Currently + the tag is 0x7075 which is 'u' 'p' for Unicode path and seems + free according to the AppNote. The extra field is + tag (2 bytes 'u' 'p') + size (2 bytes) + Unicode Path size (2 bytes) + unused (2 bytes set to 0) + unused (2 bytes set to 0) + Unicode path (variable) + The unused locations also serve as a check in case the tag is in + use already. + - Add add_Unicode_Path_local_extra_field() and + add_Unicode_Path_cen_extra_field() functions. zipfile.c + - Add read_Unicode_Path_entry() function. zipfile.c + - Set uname and oname in scanzipf_ref(). zipfile.c + - Add define wide_to_mb_default. Add zchar but not used. win32/osdep.h + - Add wide command line reading but don't use. win32/win32.c + - Add port functions for Unicode, including local_to_utf8_string(), + wide_to_escape_string() (for converting a wide character that can't be + converted to mb in the local character set to a reversable escape string), + escape_string_to_wide(), wide_to_local_string(), local_to_display_string() + (for creating the display version of name), utf8_to_local_string(), + local_to_wide_string(), wide_to_utf8_string() (NOT IMPLEMENTED), and + utf8_to_wide_string() (NOT IMPLEMENTED). win32/win32.c + - Implement attempt at escape function. Whenever a wide character can't + be mapped to the local character set, this function gets called. + Currently the wide character is converted to a string of hex digits. + If the wide can fit in 2 bytes then the form #1234 is used. If not, + the 4-byte form #L12345678 is used. + It compiles but needs the utf8 functions implemented. Also needs testing + in a multi-byte environment and only Windows is implemented so need to at + least do Unix. (Ed) +17. Update freeup() to include uname and oname. zip.c +18. Move define wide_to_mb_default so default for all is '_'. zip.h (Ed) +19. No changes needed to osdep.h and update unix/unix.c but not tested. (Ed) +---------------------- October 19th 2005 version 3.0f02 ---------------------- + 1. Remove null value check for split_size as get_option() already checks. + zip.c (Ed) + 2. Update f$search(). vms/descrip.mms (SMS) + 3. Save parse name before search and use that on failure. Change name parsing + in ziptyp() to solve a problem with search-list logical name device directory + specs. vms/vms.c (SMS) + 4. Compile in UNICODE_SUPPORT if have wchar_t and mbstowcs(). unix/configure (Ed) + 5. Move Unicode defines to zip.h and functions to fileio.c so generic. Create + a new OEM function for Windows. fileio.c, zip.h, tailor.h, win32/win32.c (Ed) + 6. Add UTF-8 functions. fileio.c (Paul) + 7. Convert Unicode functions to use zwchar defined as unsigned long for wide + char. fileio.c, zip.h (Ed) + 8. Add wchar_t check for Unix. unix/configure (Ed) + 9. Add default when zwchar (4 bytes) is too big for wchar_t (2 bytes). zip.h (Ed) +10. Allow for states for wide characters but surrogates not done. fileio.c (Ed) +11. Update WhatsNew (Ed) +---------------------- December 16th 2005 version 3.0f03 ---------------------- + 1. Fix broke encryption when ZIP64_SUPPORT enabled by accounting for need for + data description when encrypting. Data description is not required for + encryption (WinZip does not use one) but seems needed by Zip for some reason. + zipfile.c (Ed) + 2. Add function bfwrite() to do buffered fwrite(). Most output already is + written by zfwrite used by crypt.c which now calls bfwrite. All splitting + and new byte counts are done in bfwrite. fileio.c (Ed) + 3. Move some functions out of ZIP64_SUPPORT defines for use with UNICODE_SUPPORT. + zipfile.c, zip.h (Ed) + 4. Add is_ascii_string() and only create Unicode extra field if z->iname is + not ascii. zipfile.c, zip.h, fileio.c, (Ed) + 5. Add parameter rewrite to putlocal() to note when rewriting bytes so the bytes + rewritten are not counted in output totals. zipfile.c, zip.h (Ed) + 6. Handle VMS ... wildcard. util.c (SMS) + 7. Make tempzip file name global. zip.c, globals.c, zip.h (Ed) + 8. Add out_path global and -O path option to allow the output archive to have a + different name than the input archive, if there is one. This allows + updating a split archive, since output to the same split name would otherwise + be complicated and not user friendly. Use out_path for output. zip.h, + zip.c, globals.c (Ed) + 9. Many output functions that had output file y as parameter, such as zipup(), + zipcopy(), putlocal(), putcentral(), and putend(), now do not as y is + now global. This allows changing y as splits are created. zip.c (Ed) +10. Add function zipmessage() for writing messages like zipwarn() but are + informational. zip.c (Ed) +11. Minor changes to help. zip.c (Ed) +12. Add SPLIT_SUPPORT to version output. zip.c (Ed) +13. Add rename_split() to rename and set attributes for a split. zip.c (Ed) +14. Add set_filetype() to set attributes of split. zip.c (Ed) +15. Change variable a (holds attributes) to zipfile_attributes and make global. + zip.c, zip.h, globals.c (Ed) +16. Add key_needed flag for encryption and move setting key to after + command line processed. zip.c (SMS) +17. Initialize dot size using default only if dot_size not set. zip.c (Ed) +18. Change command line processing so that last -P or -e is used. zip.c + (Ed) +19. Fix broke writing of 4-byte spanning signature at the beginning of the archive + if splitting. zip.c (Ed) +20. Use bfcopy() instead of fcopy() to copy archive beginning. bfcopy() uses + global y. zip.c (Ed) +21. It looks like tempzf is no longer used. zip.c (Ed) +22. Account for SUNPRO_C and DECC_VER. Change SPARC to Sparc. unix/unix.c (SMS) +23. Remove GNUC. vms/cmdline.c (SMS) +24. Change case of system calls. vms/vms.c (SMS) +25. Add fix for VMS ... matching, but may change Zip to avoid ex2in() and in2ex() + for pattern matching in future. vms/vmszip.c (SMS) +26. Remove /NODIRNAMES and /DIRNAMES from VMS help. vms/zip_cli.help (SMS) +27. Define new globals zip64_eocd_disk, zip64_eocd_offset, current_local_tempname, + bytes_this_split, and bytes_this_entry for splits. globals.c, zip.h (Ed) +28. Add SUNPRO C and DEC C compile checks. unix/configure (SMS) +29. Add CFLAGS_NOOPT for removing optimization for configure. unix/Makefile (SMS) +30. Modify crypthead() to use bfwrite(). crypt.h, crypt.c (Ed) +31. Modify zfwrite() to use global output file. crypt.h, crypt.c (Ed) +32. Modify zfwrite() when no encryption to use bfwrite(). crypt.h (Ed) +33. Add bfcopy() to copy to y. fileio.c (Ed) +34. Add close_split() and bfwrite() for splits. fileio.c (Ed) +35. Add is_ascii_string() to check if UTF-8 extra field is needed. fileio.c (Ed) +36. Change Unicode escape of 2-byte wide from #1234 to #U1234. fileio.c (Ed) +37. Add read_Unicode_Path_entry() to read the UTF-8 path extra field. zipfile.c (Ed) +38. Latest Unicode Path extra field format is + 1 byte Version of Unicode Path Extra Field + 2 bytes Name Field Checksum + variable UTF-8 Version of Name +39. Use CRC-32 for Unicode Path Checksum and AND halves. zipfile.c (Paul) +40. Add Unicode Path Checksum check to make sure extra field applies to Name field + still. zipfile.c (Christian) +41. Move get_extra_field() out of Zip64 block and make available for splits. + zipfile.c (Ed) +42. Check in putlocal() using is_ascii_string() and don't create Unicode path + extra field if name is ASCII characters. zipfile.c (Ed) +43. If local header for split is on another disk and using split method 1, close + that split in putlocal() after rewrite local header. zipfile.c (Ed) +44. Fix data descriptor bug when encrypting where putextended() did not handle the + not Zip64 case, which mostly only happens now for encryption. zipfile.c (Ed) +45. Check for ASCII name using is_ascii_string() in putcentral() for Unicode path + extra field. zipfile.c (Ed) +46. Instead of single disk values, update putend() to use real split values for + current_disk, cd-start_disk, cd_entries_this_disk, cd_start_offset, + zip64_eocd_disk, zip64_eocd_offset, and current_disk and allow for + needing Zip64 if exceed standard max values for current_disk, cd_start_disk, + cd_entries_this_disk, total_cd_entries, and cd_start_offset. zipfile.c (Ed) +47. Use current_local_offset and current_local_disk for z->off and z->dsk in + zipup(). zipup.c (Ed) +48. Fix bug where force_zip64 was used to determine descriptor size but can have + Zip64 entry without force_zip64 so use zip64_entry. zipup.c (Ed) +49. Change the p - o != s compression size test for splits to bytes_this_entry + != (key ? s + 12 : s) and avoid ftell() in split. zipup.c (Ed) +50. If local header is on a previous split and split method 1 do the seek on that + split to update header. zipup.c (Ed) +51. For streaming, only force Zip64 if reading stdin and writing a non-seekable + device. In other cases can detect either the input file size and set Zip64 + if needed or seek in the output to update the local headers. zipup.c, + zipfile.c, zipup.c (Ed) +52. Allow creation of stored archives with descriptors for testing. Currently + they can't reliably be read but this is planned. zipup.c, zipfile.c, zip.c + (Ed) +53. Update help, adding in -e, -P, -s splitsize, -sp, and -sv options. zip.c (Ed) +54. Spelling fix in zipsplit man page. man/zipsplit.1, zipsplit.txt (Ed) +55. New option -sv and variable noisy_splits to enable verbose splitting. + Default is to quietly create splits, unless -sp set to pause between splits. + zip.h, zip.c, globals.c, fileio.c (Ed) +---------------------- December 23rd 2005 version 3.0f04 ---------------------- + 1. Move inlined text-vs-binary checks from file_read() into a separate, + new function named is_text_buf(). zipup.c, util.c, zip.h (Cosmin) + 2. Fix calls to putlocal to remove the removed dest parameter. crypt.c (Ed) + 3. Add get_split_path() to get the path for a split given the disk number. + fileio.c, zip.h (Ed) + 4. Change formatting of zipmessage() to remove tabbing and add formatting + to call to zipmessage(). fileio.c, zip.c (Ed) + 5. Initialize many variables such as y and tempzip. zip.c, fileio.c, + zipfile.c (Ed) + 6. Add loop to pause during split method 2 to allow changing disk or changing + the path for the next split. fileio.c (Ed) + 7. If after starting new split there is not enough room for the remaining buffer + for split method 1 display error and exit and for split method 2 we can + display a warning and user can replace disk or change path. fileio.c (Ed) + 8. Add list to store input file arguments using add_name() to add the name to + filelist_struc filelist and then process the names after the input archive + is read. zip.c (Ed) + 9. Fix infinite loop when opening a log file whose name contains multiple '/'. + zip.c (Cosmin) +10. Move split size message lower and only output if option sv sets + noisy splits. zip.c (Ed) +11. Set y to output file, remove output file from zipcopy(), putlocal(), + putcentral(), and putend(). zipsplit.c, zipnote.c, zipcloak.c (Ed) +12. Add code for not SPLIT_SUPPORT case. zipfile.c, zipup.c (Ed) +13. Prepend '-' to commands from target clean. + win32/makefile.w32, win32/makenoas.w32, win32/makefile.bor (Cosmin) +14. Must not call putenv() in iz_w32_prepareTZenv() under Cygwin. + win32/osdep.h (Cosmin) +15. Add browse info in Visual C++ 6 project. win32/vc6/zip*.dsp (Cosmin) +---------------------- December 27th 2005 version 3.0f05 ---------------------- + 1. Add proposed changes to License (Ed) + 2. Fix -l corruption bug by using memcpy() instead of wrongly changing the + buffer pointer. Fix was left out of last beta. zipup.c (Cosmin) + 3. Fix get_split_path() parameter. zip.h (SMS, Ed) + 4. Add -dg and display_globaldots to display dots globally for entire archive + instead of for each file. Is not affected by noisy flag. globals.c, + zip.h, zip.c, zipup.c, fileio.c (Ed) + 5. Make dot_count and dot_size uzoff_t, dot_count because with global dots + dot_count does not reset and with terabyte files the number of buffers + could exceed 2G, dot_size to allow use of ReadNumString() to read number. + zip.c, zip.h, globals.c (Ed) + 6. Add Deletion to help. zip.c (Ed) + 7. Fix delete date. zip.c (Ed) + 8. For streaming, need to assume Zip64 if writing a non-seekable device so + extra field for Zip64 is created if needed. zipup.c, zipfile.c, zipup.c (Ed) + 9. Add remove_local_extra_field() and remove_central_extra_field(). + zipfile.c (Ed) +10. Remove disabled copyright from license(). zip.c (Ed) +11. Clean up recent changes. zip.c, zipfile.c, fileio.c, zip.h, zipup.c (Ed) +12. Create scanzipf_regnew() for new file scan. zipfile.c (Ed) +---------------------- December 29th 2005 version 3.0f06 ---------------------- + 1. Change dot_size and dot_count from uzoff_t to zoff_t to allow use of + negative flag values. globals.c, zip.h (SMS, Ed) + 2. Remove file parameter to bfwrite() in putend(). zipfile.c (SMS, Ed) + 3. Add back code for not SPLIT_SUPPORT to putend(). zipfile.c (SMS, Ed) + 4. Change tag from ush to ulg in remove_local_extra_field() and + remove_central_extra_field() to avoid parameter problems. zipfile.c (Ed) + 5. Add allow_empty_archive to flag when want to create an empty archive. + globals.c, zip.h (Ed) + 6. Set allow_empty_archive when using -i and expecting an archive to be + created. This is in response to the 2/14/05 email. zip.c (Ed) + 7. Make before and after variables that hold the dates of files to + process or delete global so can use them in scanzipf_regnew(). zip.h, + zip.c, globals.c (Ed) + 8. Change scanzipf_regnew() to be based on scanzipf_fix() which seems closer. + Still have not coded the new regular zipfile reader. zipfile.c (Ed) + 9. For new reader first get add list and then read old archive and filter + as reading old entries. zip.c, zipfile.c (Ed) +10. Define USE_NEW_READ to turn on using new reader, which is being + created. This allows all to work while the new reader is being worked + on. zip.c, zipfile.c (Ed) +---------------------- January 9th 2006 version 3.0f07 ---------------------- + 1. Remove dest parameter from crypthead() and zipcopy(). crypt.c (SMS, Ed) + 2. Change -ds to handle dots for as small as every 32 KB. zip.c (Ed) + 3. Add ask_for_split_write_path() and ask_for_split_read_path() for + asking where to put the next write split and for locating the next + read split. zip.h, fileio.c (Ed) + 4. Add in_path to track where reading splits from. zip.h, globals.c, zip.c (Ed) + 5. Update copyright date on changed files to include 2006 (Ed) + 6. Replace stderr with mesg for most output messages. deflate.c, fileio.c, + trees.c, util.c, zip.c, zipcloak.c, zipfile.c, zipnote.c, zipsplit.c + 7. Add mesg_line_started to track if need new line on mesg output and update + zipmessage() and zipwarn() to use it. Set mesg_line_started to 1 when + newline not last character written to mesg and 0 when it is. deflate.c, + zip.h, zip.c, globals.c, zipup(), fileio.c (Ed) + 8. Include base_path as parameter for get_split_path(). fileio.c (Ed) + 9. Account for VMS version in split path. Add vms_file_version(). fileio.c, + zip.c, vms/vms.c, vms/vms.h (SMS) +10. Create crc16f() to create ANDed halves crc32 for Unicode using copy + of crc32() but may change to use main copy. zipfile.c, zip.h, + fileio.c (Ed) +11. Close in_path and out_path in finish() and ziperr(). zip.c (Ed) +12. Change perror() to strerror() and print to mesg in ziperr(). zip.c (Ed) +13. Add find_next_signature() to find the next signature when reading a + zip file. zipfile.c (Ed) +14. Add find_signature() to find a given signature from current point in + archive. zipfile.c (Ed) +15. Add at_signature() to check if at a given signature in archive. + zipfile.c (Ed) +16. Changes to scanzipf_regnew() but far from done. zipfile.c (Ed) +17. Changes to readzipfile() to close input archive file and allow new + zipfile reader to open and close files as goes through splits. + zipfile.c (Ed) +18. Change -s to default to MB and set minimum split size to 64k. + zip.c (Ed) +19. Add link to user32.lib for CharToOem(). makefile.w32, makenoas.w32 + (Cosmin) +20. Remove unused Z64_EFPos. globals.c (Ed) +---------------------- February 13th 2006 version 3.0f08 ---------------------- + 1. Move option checks before any work is done. zip.c (Ed) + 2. Update bfcopy() to handle reading splits and remove input file + parameter and use global in_file. fileio.c (Ed) + 3. Change ask_for_split_read_path() to allow user aborting. fileio.c (Ed) + 4. Change get_split_path() to use standard file extensions from most + recent AppNote of .z01, .z02, ..., .z99, .z100, .z101, ... fileio.c (Ed) + 5. Change is_ascii_string to use 0x7F for ASCII detection. fileio.c (Ed) + 6. Add copy_only global for when -O is used to change the format of an + archive without changing the contents. This allows for converting an + archive to a split archive for instance. The global copy_only is used + to output status information for copies when normally copied files + have no status messages. globals.c (Ed) + 7. Add in_file, split_path, total_disks, current_in_disk, and + current_in_offset as globals to track reading splits. zip.h, + globals.c (Ed) + 8. Update copyright date. revision.h (Ed) + 9. Close in_file if open in finish(). zip.c (Ed) +10. Add -O (big o) to extended help. zip.c (Ed) +11. Remove readzipfile() from zipstdout() and use main call later down. + zip.c (Ed) +12. Move archive reading and file scanning after command line checks. + zip.c (Ed) +13. If -O out_zip and so have_out is set then set copy_only and allow + copying instead of error message *Nothing to do*. zip.c (Ed) +14. If zipbeg is just 4 bytes and spanning then assume is spanning + signature and set zipbeg to 0 to ignore. zip.c (Ed) +15. Don't open initial write test as modify if have_out is set and so have + a separate output file. zip.c (Ed) +16. If zipbeg is 0 and nothing at beginning of archive to copy then don't + open input file until zipcopy() does. zip.c (Ed) +17. If stuff at beginning then copy and close input file. Should be able + to keep it open but easier to close it and let zipcopy() reopen it. + zip.c (Ed) +18. Add status message when copy_only set so something is displayed. + zip.c (Ed) +19. Instead of closing x at bottom close in_file. The variable x was used + inconsistently and it seemed easier to make in_file global instead. + Then again y remains the global output variable. zip.c (Ed) +20. Update copyright. zipnote.c, zipsplit.c, zipcloak.c (Ed) +21. Change adjust_zip_local_entry() to return 1 if the entry is Zip64 and + 0 if not. This is needed to know how large the extended local header + is later. zipfile.c (Ed) +22. Add read_Unicode_Path_local_entry() to read the local version of the + Unicode Path extra field. zipfile.c (Ed) +23. Handle disk in adjust_zip_central_entry(). zipfile.c (Ed) +24. Change USE_NEW_READ to SPLIT_SUPPORT as splits seems to be stable more + or less. zipfile.c (Ed) +25. Add is_signature() to compate signatures. zipfile.c (Ed) +26. Create scanzipf_fixnew(). It should look like scanzipf_regnew(). + zipfile.c (Ed) +27. Change scanzipf_regnew() to read the central directory and create zlist + and handle reading traditionally. Allows using central directory + information, in particular file sizes, in zipcopy() while reading + entries. Use global in_file instead of f for input file and set to NULL + when not a valid file so finish() only tries to close it if needed. + Check to make sure the End Of Central Directory record found is infact + the last one in case a stored archive is in the last 64 KB. Refuse + to update a split archive but recommend using -O instead. zipfile.c (Ed) +28. Change readable check in readzipfile() to require input archive to exist + if using -O out_archive. zipfile.c (Ed) +29. Change putlocal() to not create a Zip64 extra field unless needed and + on rewriting the local header to remove Zip64 extra field if was created + but not needed. Add check if assumed entry does not need Zip64 but does, + meaning probably the uncompressed size is less than 4 GB but the + compressed size is over 4 GB. zipfile.c (Ed) +30. Change zipcopy() to use the global in_file and y files and to open and + close read splits as needed. Checks the local header against the + central directory header to verify same file, which should be as using + the disk and offset values from the central directory. Update disk and + offset in central directory. zipfile.c (Ed) +31. Change out_path and out_len to base_path and base_len in + get_split_path(). fileio.c (SMS) +32. Update command line options for VMS to include verbose splitting. + vms/zip_cli.cmd, vms/cmdline.c (SMS) +33. Handle HP. unix/unix.c (SMS) +34. Add adler16() checksum function. util.c (Cosmin) +35. Use FILE_FLAG_BACKUP_SEMANTICS and a less demanding access mode + in CreateFile() when retrieving file attributes. Fixes a problem + when adding a directory entry from an NTFS or a CDFS partition + (i.e. one that stores timestamps using universal time), and the + directory timestamp is not the same daylight savings time setting. + The effect is an offset in the timestamp by one hour, if zip is + built using NT_TZBUG_WORKAROUND. The problem is not exposed, + however, if NO_W32TIMES_IZFIX is defined. win32/win32.c (Cosmin) +---------------------- March 19th 2006 version 3.0f09 ---------------------- + 1. Fix encryption problem where a large file with uncompressable data + can cause deflate to store bad data. See crypt.c for details. + Thanks to the nice people at WinZip for finding and providing the + details of this problem. crypt.c (Ed) + 2. Add note at top of Extended Help to refer to the Zip Manual. zip.c + (Ed) + 3. Update extended help for delete. zip.c (Ed) + 4. Change crypthead() to use buffer and bfwrite() which is split aware. + crypt.c (Ed) + 5. Create SPLIT_SUPPORT version of zipcloak() and zipbare() and read + local header rather than assume data using central header. crypt.c (Ed) + 6. Change zfwrite() to use global output file y. crypt.c (Ed) + 7. Remove in and out parameters from zipcloak() and zipbare() for + splits. crypt.h, zipcloak.c (Ed) + 8. Change get_split_path() to get_in_split_path() and get_out_split_path(). + zipfile.c, fileio.c, zip.h (Ed) + 9. Change crc32f() to crc32u(). fileio.c, zip.h (Ed) +10. Add encryption overwrite fix to copy_block() and remove from zfwrite(). + crypt.c, tree.c (Ed, Christian) +11. Add note on bug fix. WhatsNew (Ed) +12. Add copy_only mode. zip.c (Ed) +13. Make SPLIT_SUPPORT the default. zip.h (Ed) +14. Add set_filetype(), rename_split(), and zipmessage(). zipcloak.c, + zipnote.c, zipsplit.c (Ed) +15. Add long option support. zipcloak.c (Ed) +16. Set in_path. zipcloak.c, zipnote.c, zipsplit.c (Ed) +17. Use SPLIT_SUPPORT calls. zipcloak.c, zipnote.c, zipsplit.c (Ed) +18. Set current_disk, cd_start_disk, and cd_entries_this_disk for use + by putend() and bytes_this_split for putcentral(). zipsplit.c (Ed) +19. Include ctype.h for toupper(). zipfile.c (Ed) +20. Add readlocal() for utilities to read local header. zipfile.c (Ed) +21. Put Zip64 variables and code in ZIP64_SUPPORT ifdef in scanzipf_regnew(). + zipfile.c (Ed, SMS) +22. Use zip_fzofft() for converting offset. zipfile.c (Ed, SMS) +23. Add casts to many append to memory calls. zipfile.c (Ed) +24. Move handling of .zip split to get_in_split_path() and + get_out_split_path(). zipfile.c (Ed) +25. Handle fix = 3 case for ZipNote that renames entries in zipcopy(). + zipfile.c (Ed) +26. Restore clearing of extended local header bit when not encrypting. When + encrypting need to output extended local header using putextended() in + zipcopy(). zipfile.c (Ed) +27. Add notes on using file time for encrypting. zipup.c (Ed) +28. Remove extended local header bit separately for z->lflg (local flags) + and z->flg (central directory flags). These should be the same but + could be different. zipup.c (Ed) +29. Suppress command line globbing for MINGW. win32/win32.c (Christian) +30. Add EF UT time fix for delete. zip.c (Christian) +---------------------- April 28th 2006 version 3.0f10 ---------------------- + 1. Add note to extended help to escape [ as [[] or use -nw. zip.c (Ed) + 2. Remove local declaration of tempfile as now global. zipnote.c, + zipcloak.c (SMS) + 3. Add zip_fzofft() for outputting uzoff_t bin size c. zipsplit.c (SMS) + 4. Add only_archive_set and clear_archive_bits to do Window archive bit + selection and clearing. Add -AS option to require DOS Archive bit + be set and -AC to clear archive bits of included files. Add + ClearArchiveBit() to clear archive bits after archive created. + Only Win32. globals.c, zip.h, zip.c, win32zip.c, win32.c (Ed) + 5. Change procname_win32() and readd() to check archive bit. + win32/win32zip.c (Ed) + 6. Update copyright. win32/win32zip.h (Ed) + 7. Add mesg_line_started = 0 to stats to remove blank line when clearing + archive bits. zipup.c (Ed) + 8. Add zip_fzofft() to format split size. zipsplit.c (SMS) + 9. Update help for splits and archive bit and add note on escaping [. + zip.c (Ed) +10. Add -M option and bad_open_is_error to exit with error if any input + file unreadable. Also error if -M and would get "name not matched" + warning. zip.c (Ed) +11. Copy Zip 2.32 csharp example, though it is designed for zip32.dll and + not zip32z64.dll from Zip 3.0. Updated note. windll/csharp (Ed) +12. Change -M to -MM and define -mm to avoid accidental use of -m. + zip.c (Ed) +13. Define split_method -1 to not allow splitting, mainly used when reading + a split archive to stop automatic splitting of output with same + split size. Now -s=0 or -s- disables splitting. zip.h, globals.c, + zip.c (Ed) +14. Add fflush() after dots displayed. deflate.c, fileio.c, zipup.c (Ed) +15. Instead of assuming buffer size as 32 KB for dots, use WSIZE for + compressing and SBSZ for storing and calculate as dots are counted. + Now dot_count and dot_size are bytes instead of buffers. Add dots + to Delete and Archive modes. zip.c, zipup.c, deflate.c, fileio.c (Ed) +16. If reading a split archive and split size has not been given, get + size of first split read by zipcopy(), which should be the first + split, and set split size to that, making the output archive the same + split size as the input archive. Delay -sv split size message + if split size is 0 at first but then changed. zipfile.c (Ed) +17. Add proc_archive_name() for new archive mode to process names in old + archive only and skip looking on the file system. Easier than modifying + the various port codes. fileio.c (Ed) +18. Fix cd_start_offset bug. fileio.c (Ed) +19. Create new action ARCHIVE that looks for matches only in old archive + for Copy Mode. If no input paths and there is an output archive, + Copy Mode is assumed even without ARCHIVE. Old default Copy Mode + when no input files updated to work like -U mode and allow filters. + New global copy_only currently only used to control global dots. + zip.c, fileio.c, globals.c, zip.h (Ed) +20. Update help. Change extended help to more help. Update more help + to include internal modes delete and new Archive. Update help for + formatting options. Update help for wildcards. Remove streaming + examples from top basic section. Indent examples. Help for new + --out and Copy Mode. Add warnings that output using data descriptors + may not be compatible with some unzips. Update dots help and add + warning that dot size is approximate. Add help for new DOS archive + bit options. More help for -b and -MM. zip.c (Ed) +21. Add support for Unix FIFO (named pipe). Add set_extra_field() stat + name ending in '/' fix found in Zip 2.32. unix/unix.c (Ed) +22. Add check to not allow setting -U (internal copy) in similar cases to + -d (delete). zip.c (Ed) +23. Add counts for internal modes Delete and Archive. Byte counts for -db + remain uncompressed size for external modes, but internal modes Delete + and Archive now use compressed sizes as these copy that many bytes. + zip.c (Ed) +24. Add check for when ftell() wraps. zipup.c (Ed) +25. Add mesg_line_started = 0 to result percentage message. zipup.c (Ed) +26. Update contact information. unix/packaging/preinstall.in (SMS, Ed) +27. A few Zip64 fixes to set Zip64 correctly and fix disk and offset of + Zip64 End Of Central Directory. zipsplit.c (Ed) +28. Update comments for get_option(). fileio.c (Ed) +29. Update DLL version. windll/windll.rc (SMS, Ed) +30. New option -sf shows files that would be operated on. zip.c (Ed) +---------------------- May 5th 2006 version 3.0f11 ---------------------- + 1. Use C prototypes for Unicode functions. fileio.c (SMS) + 2. Change constant for mask in set_file_type from unsigned to signed. + trees.c (SMS) + 3. Use C prototypes for zip_fzofft() and zip_fuzofft() signed and + unsigned zoff_t formatting functions. util.c (SMS) + 4. Remove U from constants in Adler16 code. util.c, zip.h (SMS) + 5. Add spaces to VMS usage to avoid misinterpretation. zip.c (SMS) + 6. Add OF() to at_signature(). zipfile.c (SMS) + 7. Use zip_zofft() for entries error. zipfile.c (SMS) + 8. Remove U in constants in percent(). zipup.c (SMS) + 9. VMS command line updates. vms/cmdline.c, vms/descrip_deps.mms, + vms/vms_zip.rnh, zip_cli.cld, vms/zip_cli.help (SMS) +10. Update to VMS help. vms/zip_cli.help (Ed) +11. Check for memmove() and strerror(). Remove specific 64-bit support + for SunOS, as large file support now does. unix/configure (SMS) +12. Add emergency replacements for memmove() and strerror(). + unix/unix.c (SMS) +13. Remove old not SPLIT_SUPPORT code. globals.c, zipnote.c, fileio.c, + crypt.h, crypt.c, zipcloak.c, zip.h, zip.c, zipup.c, zipsplit.c, + zipfile.c (Ed) +---------------------- May 12th 2006 version 3.0f12 ---------------------- + 1. Add UNICODE_SUPPORT ifdef around uname in zipup(). zip.c (SMS) + 2. Change size from uzoff_t to zoff_t in zipcopy(). zipfile.c (SMS, Ed) + 3. Fix a bug where filetime() returns -1 for device but not handled in + byte counts. zip.c (Ed) + 4. Add check for UnZip version and exit if not 6.00 or later if + a Zip64 archive. Define popen() and pclose() in Win32 to native + _popen() and _pclose(). ziperr.h, zip.c, win32/osdep.h (Ed) + 5. Add -sb option to ring bell when pause to change disk. Use new + global split_bell. global.c, zip.h, zip.c, fileio.c (Ed) + 6. Enable crc32u() and use for Unicode extra field. fileio.c (Ed) + 7. Add -dv to display volume being written to. zip.c, zip.h, + globals.c (Ed) + 8. Update WhatsNew. WhatsNew (Ed) + 9. Help updates. zip.c (Ed) +10. Create option -X- (negated -X) to keep old extra fields and remove + -XX which is now -X. Make get_extra_field() global. Add + copy_nondup_extra_fields()to copy old extra fields not already + in new extra fields. zipup.c, zip.c, zipfile.c (Ed) +11. Use output name oname for -sf option to show files that would be + worked on. zip.c (Ed) +12. When updating or freshening old entries, read the old local header + with readlocal() to get local flags and extra fields. zip.c (Ed) +13. Add UNICODE_SUPPORT ifdefs around uname code. zip.c (SMS, Ed) +14. If WIN32_OEM set then on WIN32 store OEM name in archive. As read + DOS or WIN32 archives convert assumed OEM paths to ANSI. Remove old + WIN32_OEM code. Make oem_to_local_string() global for WIN32_OEM and + local_to_oem_string() global for WIN32_OEM and UNICODE_SUPPORT. + zip.h, zipfile.c, zipup.c, win32/win32.c, win32/win32zip.c (Ed) +15. Update error 8 to include wrong unzip. ziperr.h (Ed) +16. Change checksum for Unicode extra field to standard crc32 using + C version crc32u(). Add crctab.c. win32/vc6/zipnote.dsp, + win32/vc6/zipsplit.dsp, zipfile.c +17. Update readlocal() to handle multi-disk archives if not UTIL. + zipfile.c (Ed) +18. Convert size to signed zoff_t in zipcopy(). Update note. + zipfile.c (Ed) +19. Update Readme. Readme (Ed) +20. Add crctab.o to zipsplit and zipnote. unix/Makefile (Ed) +21. Proposed update to license. License (Ed) +---------------------- May 20th 2006 version 3.0f13 ---------------------- + 1. Reformat License file. License (Cosmin) + 2. Change %d to %lu for disk number and add cast. zip.c (Cosmin, Ed) + 3. Display Scanning files message after delay at start based on + suggestion from Greg. Currently the time is checked every 100 + entries processed. After 100 entries the start time is saved. + After 5 seconds or 100 entries after that, whichever takes + longer, the Scanning files message is displayed and every 2 seconds + or 100 entries, whichever takes longer, after that a dot is displayed. + fileio.c, zip.c, globals.c, zip.h (Greg, Ed) + 4. Add Unicode mismatch flag and option -UN. Default is now a Unicode + mismatch is an error. -UN=warn outputs warnings and continues, + -UN=ignore disables warnings, and -UN=no ignores the Unicode extra + fields. globals.c, zip.h, zipfile.c (Ed) + 5. Add options for VMS. vms/cmdline.c, vms/zip_cld.cld (SMS) + 6. Add casts to percent(). zipup.c (Ed) + 7. Minor changes to logfile formatting. zip.c (Ed) + 8. Update help. zip.c (Ed) + 9. Add -Z=compression-method option. zip.c (Ed) +10. Add sd: to -sd status messages. zip.c (Ed) +11. Instead of original argv[] use args[] for -sc show command line + to show final command line. zip.c (Ed) +12. Change argv[] to args[] for logfile. zip.c (Ed) +13. Put results of -sf show files in log file if open. zip.c (Ed) +14. Add Johnny's bzip2 patch but not tested. win32/makefile, zip.c, + zip.h, zipup.c (Johnny) +15. Minor tweeks to bzip2 to work with latest beta. zip.c, zipup.c (Ed) +16. Add -sf- to list files that would be included only in log file + and not on stdout as list can be long. Only list totals on stdout. + zip.c (Ed) +17. Create check_unzip_version(). Fix Unix check. Zip still creates + the temporary archive then does the check, and if it fails + the archive is deleted, even if the check fails because of the wrong + verion of UnZip. On Unix only 'unzip' the system version of UnZip + is checked, not './unzip' which would allow putting a local more + up to date version of UnZip in the current directory for the check. + There should be a way to override the system version of UnZip for + the -T test. zip.c (Ed) +---------------------- July 12th 2006 version 3.0f14 ---------------------- + 1. Change crypt version from 2.10 to 2.91 to match Zip 2.32 and avoid + confusion. crypt.h (Cosmin) + 2. Add abbrevmatch() to handle option values that can be abbreviated + like compression method. util.c, zip.h, zip.c (Ed) + 3. Change USE_BZIP2 to BZIP2_SUPPORT as USE_BZIP2 implies it replaces + deflation maybe. zip.c, zip.h, zipup.c (Ed) + 4. Update man page. man/zip.1, zip.txt (Ed) + 5. Add bzip2 to VMS. vms/build_zip.com, vms/bzlib.h, vms/cmdline.c, + vms/descrip.mms, vms/descrip_src.mms, vms/find_bzip2_lib.com, + vms/install_vms.txt, vms/zip_cli.cld (SMS) + 6. Remove zipfile parameter from bzfilecompress(). Add unsigned + cast for EOF in bzip2 code. Add bzip2 version information. + zipup.c, zip.c (SMS) + 7. Add bzip2 to Unix. unix/configure (SMS) + 8. Add and update bzip2 descriptions. INSTALL, README, WhatsNew, + bzip2/install.txt (SMS, Ed) + 9. Add vc6bz2 projects for compiling bzip2 code into zip (not the + best approach perhaps). win32/vc6/readmevc.txt, + win32/vc6bz2/readvcbz.txt, win32/vc6bz2/zip.dsp, win32/vc6bz2/zip.dsw, + win32/vc6bz2/zipcloak.dsp, win32/vc6bz2/zipnote.dsp, + win32/vc6bz2/zipsplit.dsp (Ed) +10. Add support for VC++ 2005 by disabling deprecation. win32/osdep.h + (Cosmin) +11. Update instructions for makefile. unix/Makefile (Ed) +12. Update todo list. todo30.txt (Ed) +13. Reduce #if 0 block to now allow extra data message. zipfile.c (Ed) +14. Add note that readlocal() reads local headers. zipfile.c (Ed) +15. Archive comment was not being read by new scanzipf_regew(). Added. + zipfile.c (Ed) +16. Handle reading and writing OEM comments. zipfile.c (Ed) +17. Update Zip64 data descriptor note. zipfile.c (Ed) +18. Format filetypes() check. zipup.c (Ed) +19. Update note to remember to force deflation for descriptors by + release. zipup.c (Ed) +20. In compression code using libraries, enable dots for noisy also. + zipup.c (Ed) +21. Update extended help to add more of the basic options and + compression method. zip.c (Ed) +22. Add additional lines bz_opt_ver2 and bz_opt_ver3 to bzip2 + version to give credit to bzip2. zip.c (Ed) +23. Add descriptions to version information for USE_EF_UT_TIME, + NTSD_EAS, WILD_STOP_AT_DIR, WIN32_OEM, LARGE_FILE_SUPPORT, + ZIP64_SUPPORT, and UNICODE_SUPPORT similar to how UnZip does. + zip.c (Ed) +24. Add note that crypt is modified in Zip 3. zip.c (Ed) +25. Use abbrevmatch() and update warnings for compression + method selection. zip.c (Ed) +26. Update config to handle either using IZ_BZIP2 to define + the location of the bzip2 files or the bzip2 directory. + unix/configure, zipup.c, zip.c (SMS, Ed) +---------------------- July 14th 2006 version 3.0f15 ---------------------- + 1. Change USE_BZIP2 to BZIP2_SUPPORT in VMS. vms/descrip_src.mms, + vms/build_zip.com (SMS) + 2. Add SYS$DISK:. vms/descrip.mms, vms/build_zip.com (SMS) + 3. Change vms/install.txt to [.vms]install.txt. bzip2/install.txt (SMS) + 4. Change VMS files to lower case. vms/mod_dep.com, vms/install_vms.txt, + vms/zip.opt, vms/hlp_lib_next.com, vms/notes.txt, vms/unixlib_gcc.h, + vms/unixio_gcc.h (SMS) + 5. Remove old VMS files. vms/descrip-old.mms (removed), + vms/link_zip.com (removed), vms/make_zip.com (removed), + vms/makefile.vms (removed) (SMS) +---------------------- July 24th 2006 version 3.0f16 ---------------------- + 1. Fix global dots so can set with dot size. deflate.c, fileio.c (Ed) + 2. Update License top line to refer only to license. License (Cosmin) + 3. Update License. License (Ed) + 4. Implement zero length UTF-8 path length as flag standard path is UTF-8 + and should use that. This allows Zip to use the standard path as + UTF-8 when the local character set is UTF-8. zipfile.c (Ed) + 5. Update WhatsNew. WhatsNew (Ed) + 6. Change case of bzip2/install.txt. INSTALL (Ed) + 7. Change MANUAL.txt to ZIP.txt and update ftp site. README (Ed) + 8. Update announcement. zip30f.ann (Ed) + 9. Now also check if OS has bzip2 library and can use that. + unix/configure, zip.c (Mark Adler, Ed) +10. Add fix from akt@m5.dion.ne.jp in Japan to recurse on doublebyte + characters without processing in recmatch(). This should not be needed + unless the rest of the code in there is broke for Japanese character + sets in some way. Need to test. util.c (Ed) +11. Add note for bzip2. zip.c (Ed) +12. Do not do seek wrap test if ftell() returns -1 as from a pipe. Add + output of last ftell() and current ftell() for zipfile too big seek + error. zipup.c (Ed) +13. Add version to the options table. Remove the check to display version + before the command line is processed. Add to option -v a check to + display the version if that is the only argument. Can still enable + verbose with piping by using zip -v - - format. zip.c (Ed) +14. Add abbrevmatch() for -UN option. zip.c (Ed) +---------------------- August 7th 2006 version 3.0f17 ---------------------- + 1. Change license modifications to retain intent of copyright holders, as + any major change in license conditions would require contacting all + copyright holders. LICENSE (Greg, Ed) + 2. Move debugging statement after zipstdout() where mesg is set to stderr. + Add mesg and fflush() to sd messages where needed so that messages go + to stderr when piping. zip.c (Ed) + 3. Update encryption comment. zipup.c (Ed) + 4. Do not use data descriptors for directories. zipup.c (Mark, Ed) + 5. Update Q & A to match license. README (Ed) + 6. Update WhatsNew. WHATSNEW (Ed) + 7. Add ifndef around version_info() for dll. zip.c (Ed) + 8. Add -TT (--unzip-path) to allow setting the unzip command to use with + -T to test the archive. zip.c (Ed) + 9. Add -DF (--difference-archive) which requires --out and turns off + copying unchanged entries to the new archive creating an archive with + just the changes and additions since the original archive was created. + zip.c, globals.c, zip.h (Ed) +10. Update help. zip.c (Ed) +---------------------- September 7th 2006 version 3.0f18 ---------------------- + 1. Split -t and -tt options and remove limitation that only one can be + used to allow setting a date range. zip.c, WhatsNew (Ed) + 2. Minor changes in comments. zipfile.c (Ed) + 3. Add entries for format of Unicode Path and Unicode Comment extra fields. + proginfo/extrafld.txt (Ed) + 4. Change note at top of infozip.who, but needs to be updated with all new + contributors. proginfo/infozip.who (Ed) + 5. Note Zip 3 and UnZip 6 now support Zip64. proginfo/ziplimit.txt (Ed) + 6. Add note on Unicode. README (Ed) + 7. Update WHATSNEW. WHATSNEW (Ed) + 8. Update help. zip.c (Ed) + 9. Add {} support to -TT option, allowing insertion of temp archive path + into the command string to -TT similar to Unix find does. zip.c (Ed) +10. Start changes for -F fix option. Add checks when reading input archive + and skip bad central directory entries and bad local entries. Currently + -F requires the central directory to be intact (except for bad CD entries + that will be skipped) and local entries and data to be where the + central directory say they are. This allows all recovered entries to + be complete with all central directory information. Calculate CRC of + input entry and compare to CRC from central directory. Allow skipping + split disks the user may not have. Store state of output archive + before each local entry and data are read, allowing seeking back and + restoring state to skip bad entries. fileio.c, global.c, zipfile.c, + zip.h (Ed) +11. Started changes for fixfix. fileio.c (Ed) +12. Update help on -t and -tt. zip.c (Ed) +13. Add note on Unicode support, but may change if add handling of names + with characters not supported in current character set. README (Ed) +14. Combined ToDo30.txt and ToDo but more to be done. TODO (Ed) +15. Update ToDo list. ToDo30.txt (Ed) +16. Add -F and -FF to help. zip.c (Ed) +17. Run fix mode in copy mode, as it is copying from one archive to + another, and use those checks. zip.c (Ed) +18. Add Try -F and Try -FF warnings in places. zipfile.c (Ed) +19. Allow reading version 4.6 (bzip2) archives. zipfile.c (Ed) +20. Add Unicode Path and Unicode Comment extra field descriptions. + proginfo/extrafld.txt (Ed) +21. First attempt at updating the Who file. proginfo/infozip.who (Ed) +22. Add note to top of ziplimit.txt. proginfo/ziplimit.txt (Ed) +23. Add possible fix for paths returned by the Win32 directory scan with + '?' in the name. These are characters in the Unicode name stored on + disk but not represented in the multi-byte character set used by zip + for the scan. In this case, return the short name in 8.3 format so + directory scan can continue. Could put the Unicode name in the Unicode + extra field, but not done. Add warning when long name is replaced + by short name. Not fully tested. win32/win32zip.c, zip.h, zip.c, + fileio.c (Ed) +24. If archive name and -sf are the only parameters, list archive contents. + zip.c (Ed) +---------------------- September 8th 2006 version 3.0f19 ---------------------- + 1. Fix error message. zipfile.c (SMS, Ed) + 2. Put crc32() in ifndef UTIL as only needed for fix. fileio.c (SMS, Ed) +---------------------- November 3rd 2006 version 3.0f20 ----------------------- + 1. Fix comment. vms/vmszip.c (SMS) + 2. Include oem_to_local_string() if UNICODE_SUPPORT. win32/win32.c, + zip.h (Ed) + 3. Modify procname_win32() to flag a path not supported by the local + character set so can get Unicode for it. Check Unicode names. + win32/win32zip.c (Ed) + 4. Add matching of escaped Unicode names to proc_archive_name() that + reads entries from an archive. Add sorted zlist zusort. + globals.c, fileio.c, zip.h, zipfile.c (Ed) + 5. Add support for non-local character set names and paths for WIN32, + getting and storing the UTF-8 path when needed. Use 8.3 name + when normal name has characters not supported in current local + character set. Note when short name used. zip.c, fileio.c (Ed) + 6. Add support for fix = 2 which reads local headers first to + bfcopy(). fileio.c, zip.h (Ed) + 7. Allow selection of .zip split in ask_for_split_read_path() when + reading a split archive that has no end records giving the total + split count. fileio.c (Ed) + 8. Add zoff_t casts to dot counts. fileio.c (Ed) + 9. Comment changes for Unicode. fileio.c (Ed) +10. Call wide_to_local_string() separately in utf8_to_local_string() + to free up temp value. fileio.c (Ed) +11. Support new AppNote bit 11 for forcing UTF-8, but needs finishing. + globals.c (Ed) +12. Add to zlist struct zuname for the escaped version of the UTF-8 + name in uname and add ouname for the display version of zuname. + zip.c, zip.h, zipfile.c (Ed) +13. Add zipmessage_nl() that can output to the screen and to the log + file like zipmessage(), but can write lines without a newline. + zip.c, zip.h, zipcloak.c, zipnote.c, zipsplit.c (Ed) +14. Update help for -FF and Unicode. zip.c (Ed) +15. Change > to >= for byte message check to avoid -0 (negative zero). + zip.c (Ed) +16. Add -su show unicode option which adds escaped unicode paths to + -sf. Also uses show_files = 3. zip.c (Ed) +17. Update comments for -UN and -X. zip.c (Ed) +18. Add support for new AppNote bit 11 that says standard path and + comment have UTF-8 when -UN=f is used. zip.c (Ed) +19. Fix zipfile name message by replacing value with zipfile. + zip.c (Ed) +20. Add new code for -FF, which processes archives by trying to read + the EOCDR to get split count, then starting with the local + entries. This option does not use the standard code but does + everything itself. Add scanzipf_fixnew(), which tries to read + the EOCDR, then the local entries, then the central directory. + zip.c, zipfile.c (Ed) +21. Update note for ZIP64_CENTRAL_DIR_TAIL_SIZE. zipfile.c (Ed) +22. Put read_Unicode_Path_entry() and read_Unicode_Path_local_entry() + into UNICODE_SUPPORT ifdef. zipfile.c (Ed) +23. Add zuqcmp() and zubcmp() to support Unicode sorted list of + paths. zipfile.c (Ed) +24. Update zsearch() to also search unicode paths. zipfile.c (Ed) +25. Split out iname in read_Unicode_Path_entry() for debugging. + Should put it back. Update Unicode mismatch warning. + zipfile.c (Ed) +26. Update Unicode in readlocal(). zipfile.c (Ed) +27. Add more Unicode support to scanzipf_regnew(). zipfile.c (Ed) +28. Add support for fix = 2 to zipcopy(). Add checks and warnings, + but allow scan to continue when can. Use local data to fill + in central directory fields in case no central directory entry + for local entry. zipfile.c (Ed) +29. Add get_win32_utf8path() to get UTF-8 from Windows if can. + zipfile.c (Ed) +---------------------- November 7th 2006 version 3.0f21 ----------------------- + 1. Add crude data descriptor support to -FF in bfcopy() that should be + updated by release. fileio.c (Ed) + 2. Change %d to %s and use zip_fzofft() to format zoff_t byte count. + zipfile.c (SMS, Ed) + 3. Call local_to_oem_string() for only WIN32 in zipcopy(). zipfile.c + (SMS, Ed) +---------------------- November 29th 2006 version 3.0f22 ----------------------- + 1. Change ' to " in extended help. zip.c (Ed) + 2. Change -dv disk number display to indisk>outdisk. zip.c (Ed) + 3. Finish -FF fix option. Move detailed output to require -v. zip.c (Ed) + 4. Add note to help to use -v with -FF to see details. zip.c (Ed) + 5. Add -sU option to view only Unicode names when exist. zip.c (Ed) + 6. Change default dot size in verbose from every buffer to 10 MB. zip.c (Ed) + 7. Exit if --out and in path same as out path. zip.c (Ed) + 8. Remove verbose information when fixing archive. zip.c (Ed) + 9. Initialize in disk to 0, but still problem with disk number of first entry + for each disk lagging by 1. zip.c (Ed) +10. Consistently use ZE error codes for exit from ask_for_split_read_path. + zipfile.c, zip.c (Ed) +11. Seek back when fix finds bad entries. Also skip last entry of split + if next split is missing. Should check if entry completed. zip.c (Ed) +12. Add messages to -sd for writing the central directory, replacing the old + zip file, and setting file type. zip.c (Ed) +13. Don't set file type on stdout. zip.c (Ed) +14. Increase errbuf from FNMAX + 81 to FNMAX + 4081. zip.h (Ed) +15. Add skip_this_disk, des_good, des_crc, des_csize, and des_usize globals + for -FF and reading data descriptors. Change note on display_volume. + Add global skip_current_disk. zip.h, globals.c (Ed) +16. BFWRITE_HEADER define now also does data descriptor. zip.h (Ed) +17. Skip zipoddities() if fix. Maybe can later add back. zipfile.c (Ed) +18. Update fix messages. zipfile.c (Ed) +19. Allow user to end archive early using ZE_EOF. zipfile.c, fileio.c (Ed) +20. Only show split numbers and offsets for -FF if verbose. zipfile.c (Ed) +21. Handle spanning signature at top of split archive. zipfile.c (Ed) +22. Only close in_file if open. zipfile.c (Ed) +23. Add note if no .zip and only splits suggest use -FF. zipfile.c (Ed) +24. In putlocal() and putcentral() only convert to OEM if z->vem == 20. + zipfile.c (Ed) +25. Do not OEM convert archive comment as PKWare says this should + be ASCII. zipfile.c (Ed) +26. Fix swap of siz and len and LOCSIZ and LOCLEN. zipfile.c (Ed) +27. Call read_Unicode_Path_local_entry() before OEM conversion so Unicode + checksum checks iname before conversion. zipfile.c (Ed) +28. Only check if local and central crc match if not stream entry. + zipfile.c (Ed) +29. Keep data descriptors if fix == 2, but need to look at this. + zipfile.c (Ed) +30. Fix bug adding up header bytes in n by adding 4 for signature. + zipfile.c (Ed) +31. If fix == 2 use local crc for central, otherwise use central crc + for local. zipfile.c (Ed) +32. In zipcopy(), check data descriptor and skip if not correct one. + zipfile.c (Ed) +33. Add SH, LG, and LLG macros from zipfile.c to allow reading the data in + the data descriptor. fileio.c (Ed) +34. In bfcopy(), read and check the data descriptor if n == -2. If + run out of bytes before find descriptor, return error. fileio.c (Ed) +35. In ask_for_split_read_path(), increase buf to SPLIT_MAX_PATH + 100, + fix bug by adding "- 1", set split_dir = "" if current directory, + and update prompts to add skip and end choices. Add skip and end + choices. fileio.c (Ed) +36. Increase buffer for fgets to SPLIT_MAXPATH. fileio.c (Ed) +37. Update WhatsNew. WhatsNew (Ed) +---------------------- December 10th 2006 version 3.0f23 ----------------------- + 1. Handle additional ODS5 issues by upper casing many symbols and file names. + vms/build_zip.com, vms/collect_deps.com, vms/descrip.mms, + vms/descrip_mkdeps.mms, vms/descrip_src.mms, vms/find_bzip2_lib.com (SMS) + 2. Update VMS Find Help Library code. vms/hlp_lib_next.com (SMS) + 3. Instead of tempname use temp_name as parameter to avoid function + tempname(). zipsplit.c, zipnote.c, zipcloak.c, zip.c (Ed) + 4. If fixing archive with -FF and no EOCDR to get disk count, see if top of + archive has spanning signature or local header and guess if it is + single-disk archive, then ask user to confirm. zipfile.c (Ed) + 5. For Unix where NO_MKSTEMP is not defined, replace mktemp() with mkstemp() + that avoids a race condition. zip.c, zipcloak.c, zipnote.c, fileio.c (Ed) + 6. Eliminate mkstemp() warning by using mkstemp() instead of mktemp() for + Unix. Only for UNIX and if NO_MKSTEMP is not defined. Many OS do not + have mkstemp(). zipcloak.c, zipnote.c, zip.c, fileio.c (Ed) + 7. If UNICODE_SUPPORT and UNIX then try to switch to UTF-8 locale to allow + displaying of Unicode, otherwise just get escapes. This results in some + characters displaying as whitespace if needed fonts, such as East Asian, + are not installed. zip.c (Ed) + 8. If new global unicode_escape_all is set, then escape all non-ASCII + characters when converting Unicode file path. This allows viewing paths + as escapes on Unix that would otherwise be white space. If not set, any + characters that map to the current locale are returned as is. Can only + display if either supported as base by the OS or fonts installed. Set + using -UN=escape option. zip.c, fileio.c, zip.h, globals.c (Ed) + 9. Update extended help for Unicode. zip.c (Ed) +10. All variables used by Win32 in global.c should now be initialized at + start so dll is initialized each call. zip.c (Ed) +---------------------- January 1st 2007 version 3.0f24 ----------------------- + 1. Fix a problem when building with (old, obsolete) IM attribute encoding + combined with bzip2 support. vms/descrip_src.mms (SMS) + 2. Update WHATSNEW. WhatsNew (Ed) + 3. Update README. ReadMe (Ed) + 4. Remove in_crc code. Too involved to implement but may look at later. + fileio.c, globals.c, zip.c (Ed) + 5. Use 0x50 and 0x4b for 'P' and 'K' in signatures to handle EBCDIC case. + zipfile.c, fileio.c (Ed) + 6. Implement new -FS file sync option that deletes entries missing on the + file system from an archive being updated. globals.c, zip.c (?, Ed) + 7. Update help. zip.h, zip.c (Ed) + 8. Include scanning files dots when update small but new file scan long. + zip.c (Ed) + 9. Ask if single-file archive when using -FF and can't tell. zipfile.c (Ed) +10. Display message when entry would be truncated. zipfile.c (Ed) +11. Check for VMS_IM_EXTRA. Update bzip2 support for VMS. Change + destination directory if large-file enabled. vms/build_zip.com, + vms/descrip_src.mms (SMS) +12. Change parameters for VMS bzip2 search. vms/find_bzip2_lib.com (SMS) +---------------------- January 12th 2007 version 3.0f25 ----------------------- + 1. Incorporate faster crc32.c including the Rodney Brown changes (originally + implemented in the zlib project) from UnZip, which includes the + IZ_CRC_BE_OPTIMIZ and IZ_CRC_LE_OPTIMIZ optimizations when those symbols + are defined. These modifications include: + - enlarge unrolling of loops to do 16 bytes per turn + - use offsets to access each item + - add support for "unfolded tables" optimization variant + crc32.c (Christian) + 2. As the crc32.c module now includes crc table generation, remove crctab.c. + crctab.c (remove) (Christian) + 3. Update crc i386 assembler code from UnZip (details see above). + win32/crc_lcc.asm, win32/crc_i386.asm, win32/crc_i386.c, crc_i386.S + (Christian) + 4. Guard against redefinition of symbols @CodeSize and @DataSize in memory + model setup section to work around Open Watcom (version 1.6) wasm + assembler problem. msdos/crc_i86.asm (Christian) + 5. Change type of keys[] array for new crc, add IZ_CRC_BE_OPTIMIZ, and + use new crypt crc table. Use header buffer instead of buf for header. + crypt.c, crypt.h (Christian) + 6. Update version and remove crc table. crypt.h (Christian) + 7. Add crc32.h, change sprintf() format for disk number from d to lu as + can go over 16-bit, remove crc32u(). fileio.c (Christian) + 8. Update to use new crc. msdos/makefile.bor, msdos/makefile.dj1, + msdos/makefile.dj2, msdos/makefile.emx, msdos/makefile.msc, + msdos/makefile.tc, msdos/makefile.wat, unix/Makefile, + vms/build_zip.com, vms/descrip_deps.mms, vms/descrip_src.mms, + vms/osdep.h, win32/makefile.bor, win32/makefile.dj, win32/makefile.emx, + win32/makefile.gcc, win32/makefile.ibm, win32/makefile.lcc, + win32/makefile.w10, win32/makefile.w32, win32/makefile.wat, + win32/makenoas.w32, win32/vc6/zip.dsp, + win32/vc6/zipcloak.dsp, win32/vc6/zipnote.dsp, win32/vc6/zipsplit.dsp, + win32/vc6bz2/zip.dsp, win32/vc6bz2/zipcloak.dsp, win32/vc6bz2/zipnote.dsp, + win32/vc6bz2/zipsplit.dsp, windll/visualc/dll/zip32.dsp, + windll/visualc/dll/zip32.mak, windll/visualc/lib/zip32.dsp, + win32/visualc/lib/zip32.mak (Christian) + 9. Include crc32.h. Make variable uname local in proc_archive_name(). + Remove unused num and new_base_path. Change %02d to %02l2 for + disk number in print format. Remove crc32u() as now use crc32(). + Add parentheses around conditions in loops. Use 0 instead of NULL + for zwchar. fileio.c (Christian) +10. Add z_uint4 defines from crypt.c to tailor.h. Move uch, ush, and ulg + typedefs before tailor.h include which needs them. tailor.h, zip.h (SMS) +11. Include crc32.h. change add_name() to return not int but long + since number of command line arguments can exceed 16 bits. Cast + variable option to (int) for subtraction. Change 0x400 to 0x400L. + Add braces to show_files print block. zip.c (Christian) +12. Add warning if use -F or -FF without --out. Change defined(NO_MKSTEMP) + to !defined(NO_MKSTEMP). zip.c (Ed) +13. Define EC64LOC and EC64REC for size of Zip64 EOCD Locator and Zip64 + EOCD Record. Add extern for crc_32_tab. Move crc32() to crc32.h. + zip.h (Christian) +14. Add crc.h. zipcloak.c (Christian) +15. Include crc32.h. Comment out scanzipf_reg() and scanzipf_fix() as + no longer used, which are left in for now for comparison. Cast + blocksize to extent for malloc(). Instead of 0x10000 malloc 0xFFFF for + extra field block so fits in 16 bits. Instead of crc32u() use crc32(). + Only do lflg != flg check for fix == 2. Add comments to various #endif. + Indent comment. Comment out copy_sig() which is not used. Reduce size + of SCAN_BUFSIZE to EC64REC for MEMORY16. Use ENDHEAD for EOCDR size. + Change %u to %lu in print formats for disk count. Use EC64LOC for size + of Zip64 EOCD Locator. Use EC64REC for size of Zip64 EOCD Record. + Add streaming and was_zip64 to ZIP64_SUPPORT. Remove lflg != flg check + in zipcopy(). zipfile.c (Christian) +16. Add note that z-flg & ~0xf check will fail if new bit 12 for UTF-8 paths + and comments is set. Update -FF warning. zipfile.c (Ed) +17. Include crc32.h. Modify tempzn update. Fix comment. Set + z->lflg = z->flg after deflate as deflate may have set bits in z->flg + [Ed, Christian]. Include BZIP2_SUPPORT block in !UTIL block. zipup.c + (Christian) +18. Changes to use crc32.c. acorn/gmakefile, acorn/makefile, amiga/lmkfile, + amiga/makefile.azt, amiga/smakefile, aosvs/make.cli, atari/makefile, + atheos/makefile, beos/makefile, cmsmvs/cczip.exec, cmsmvs/mvs.mki, + cmsmvs/zip.makefile, cmsmvs/zipmvsc.job, cmsmvs/zipvmc.exec, + human68k/makefile, human68k/makefile.gcc, novell/makefile, novell/zip.lnk, + os2/makefile.os2, qdos/makefile.qdos, qdos/makefile.qlzip, tandem/history, + tandem/macros, tandem/tandem.h, theos/makefile, tops20/make.mic, + unix/configure, unix/makefile, win32/makefile.a64 (Christian) +19. Add note to use BZ_NO_STDIO. bzip2/install.txt (Ed) +20. Remove crctab. cmsmvs/zipvmc.exec (Ed) +21. Update comment. macos/source/pathname.c (Christian) +22. Start of manual update. Zip.1 (Ed) +23. Changes to use crc32.c. vms/descrip.mms, vms/descrip_deps.mms, + vms/descrip_mkdeps.mms, vms/descrip_src.mms, vms/vms.c (SMS) +---------------------- January 17th 2007 version 3.0f26 ----------------------- + 1. Add note for UnZip. crypt.c (Christian) + 2. Change current_disk and disk_number from int to ulg. Change num from int + to unsigned int. [Even though a 16-bit system likely won't see more than + 64k disks, it probably should be ulg - Ed] Remove unused mbsize. Change + match from long to int as the number of possible options should always fit + in that. fileio.c, globals.c (Christian) + 3. Use -Gt to force some data into separate data segments so all data fits. + msdos/makefile.msc (Christian) + 4. Move some copyright constants to far to save near space. + revision.h (Christian) + 5. Change u for character from int to unsigned int. util.c (Christian) + 6. Move include of crc32.h from vms/vms.c to vms/vms_pk.c. vms/vms.c, + vms/vms_pk.c (Christian) + 7. Update crci386_.o. win32/makefile.gcc (Christian) + 8. Use NOASM=1 to disable assembler and clear variables when do not. + win32/makefile.w32 (Christian) + 9. Remove unused totalslashes and returnslashes from get_win32_utf8path(). + win32/win32zip.c (Christian) +10. Remove local versions of tempzip and tempzf. + zip.c (Christian) +11. Make options[] far. Change cd_start_disk from int to ulg. Cast -1 to + (ulg) for cd_start_disk. Put here = zftello() in DEBUG defines. + zip.h, zip.c (Christian) +12. Change length of zipfile comment parameter from ush to extent. Change + disk numbers from int to ulg in close_split(), ask_for_split_read_path(), + ask_for_split_write_path(), get_in_split_path(), find_in_split_path(), + get_out_split_path(). Add Far to longopt and name strings in + option_struct. zip.h (Christian) +13. Add far to options[]. zipcloak.c (Christian, Ed) +14. Define write_string_to_mem() only for UNICODE_SUPPORT. Change ulg to + extent for append to mem memory offset and blocksize parameters. Make + at_signature() local. Cast usValue to char. Remove unused oname in + read_Unicode_Path_local_entry(). Remove local definitions of zip64_entry + as Zip is always processing one entry at a time and this is a global + flag for the current entry. Make find_next_signature() and + find_signature() local. Add ZCONST to signature parameter. Make + is_signature() and at_signature() local. Change m, result of fread(), + from int to extent. Reduce SCAN_BUFSIZE from 0x40000 to the size of the + largest header being read. As find_next_signature() is used to scan for + the next signature and that reads a byte at a time, the scan buf is only + used to read in the found headers. Since we skip the extra parts of the + Zip64 EOCDR, all headers are a fixed size. Remove unused variables from + scanzipf_fixnew(). Use ENDCOM for end comment offset. Instead of 64 KB + seek back 128 KB to find EOCDR. Use ENDOFF and ENDTOT for offsets in + EOCDR. Remove tabs. Merge versions of putend(). Update Amiga SFX. + Remove unused offset in zipcopy(). Make size local in zipcopy(). + zipfile.c (Christian) +15. Update putend() comment. zipfile.c (Ed) +16. Add far to options[]. zipnote.c, zipsplit.c (Christian) +17. Add NO_ASM versions of Win32 zipnote, zipsplit, and zipcloak projects. + Add crc32.h and crc32.c to zipsplit and zipnote projects. + win32/vc6/zipsplit.dsp, win32/vc6/zipnote.dsp, win32/vc6/zipcloak.dsp (Ed) +18. Add NO_ASM versions of Win32 bzip2 zipnote, zipsplit, and Zipcloak + projects. Add crc32.h and crc32.c. win32/vc6bz2/zipsplit.dsp, + win32/vc6bz2/zipnote.dsp, win32/vc6bz2/zipcloak.dsp (Ed) +19. Update Win32 dll and lib projects and make files. + windll/visualc/lib/zip32.dsp, windll/visualc/lib/zip32.mak, + windll/visualc/dll/zip32.dsp, windll/visualc/dll/zip32.mak (Ed) +20. Remove space in front of #ifdef and other conditionals that slipped in. + zipfile.c, zipup.c (SMS) +21. Updates for bzip2. vms/bzlib.h, vms/install_vms.txt (SMS) +22. Updates. vms/notes.txt (SMS) +23. Update copyrights. crc32.c, deflate.c, globals.c, revision.h, ziperr.h, + trees.c, win32/nt.c, win32/win32.c, win32/win32i64.c, win32/win32zip.h, + win32/zipup.h (Ed) +24. Update WhatsNew. WHATSNEW (Ed) +---------------------- February 4th 2007 version 3.0f27 ----------------------- + 1. Fix array sizes and loop lengths in wide_to_escape_string(). fileio.c + (Johnny, Ed) + 2. Fix escape_string_to_wide() to handle hex strings, then comment out as + not used. zip.h, fileio.c (Ed) + 3. Use ZIPERRORS() macro instead of ziperrors[] array. zip.c, zipcloak.c, + zipnote.c, zipsplit.c (SMS) + 4. Add VMS-compatible "severity" values, add new ZE_SEV_PERR define to + set when perror() needs to be called, add ZIPERRORS() macro, change + PERR() to use ZE_SEV_PERR, change ziperrors[] to new structure array + to hold error strings, add new VMS facility names and severity codes + assigned by HP to ziperrors[] array, and add new official + VMS_MSG_IDENT. ziperr.h (SMS) + 5. Change ZE_SEV defines to ZE_S to save space and reformat ziperrors[]. + ziperr.h (Ed) + 6. Update install.txt to include generic Unix case. bzip2/install.txt (Ed) + 7. Add creation of message file and add NOMSG message. vms/build_zip.com, + vms/descrip.mms, vms/install_vms.txt (SMS) + 8. Update notes.txt to add changes to program exit status values and changes + to messages. vms/notes.txt (SMS) + 9. Include crc32.h, include ssdef.h, instead of FAB_OR_NAM use FAB_OR_NAML, + add status code summary note detailing old versus new error codes, and if + CTL_FAC_IZ_ZIP is 0x7FFF and OLD_STATUS is defined use old VMS error codes. + vms/vms.c (SMS) +10. Change FAB_OR_NAM to FAB_OR_NAML and remove NAME_DNA, NAME_DNS, NAME_FNA, + and NAME_FNS. vms/vms.h (SMS) +11. Change FAB_OR_NAM to FAB_OR_NAML. vms/vms_im.c, vms/vms_pk.c, + vms/vmszip.c (SMS) +12. Fix compile warning on VC 2005. win32/makefile.w32 (Johnny) +13. Update readmevb.txt and readvb64.txt. windll/vb/readmevb.txt, + windll/vbz64/readvb64.txt (Ed) +14. Change tch from int to ulg in utf8_from_ucs4_char(). Move comments to keep + line lengths to 80 characters. fileio.c (Christian) +15. Update comment for total_cd_entries. global.c, zip.c, zip.h (Christian) +16. Comment out unused Adler-16 code. util.c, zip.h (Christian) +17. Add InterlockedExchangePointer() macro if not defined. Update Initialize() + to use macro. nt.c (Christian) +18. Move zip64 eocd disk and offset variables next to input archive variables. + zip.c (Ed) +19. Remove zipbegset from scanzipf_fixnew() as offsets are ignored when this + is fixing archives. Add comment to cd_total_entries. Remove local + cd_start_disk and cd_start_offset as these are already global. Use + ZIP_UWORD16_MAX when disk number exceeds this to flag use of Zip64. + zipfile.c (Christian) +20. Some comment changes. zipfile.c (Ed) +21. Fix indentation in places. zipsplit.c (Christian) +22. Remove unused variable zfile. zipup.c (Christian) +23. Update manual. zip.1, zip.txt, zipsplit.txt (Ed) +---------------------- February 22nd 2007 version 3.0f28 ---------------------- + 1. Update notes. vms/notes.txt (SMS) + 2. Add stream_lf.fdl to specify carriage control. vms/stream_lf.fdl (SMS) + 3. Update License to also refer to www.info-zip.org and to hopefully provide + an example of misrepresentative use. LICENSE (Ed) + 4. Update Readme. README (Ed) + 5. Update WhatsNew. WHATSNEW (Ed) + 6. Change output archive cd_start_disk and cd_start_offset to input archive + local in_cd_start_disk and in_cd_start_offset in scanzipf_fixnew() and + scanzipf_regnew() to avoid mixing in and out. zipfile.c (Ed) + 7. Update copyright. Remove crc32.h include. vms/vms.c (Christian) + 8. Changes for new crc32. Remove CRC32. Add CRCA_0 and CRCAUO. Add + compiling of crc_i386.S. win32/makefile.emx. (Christian) + 9. Add handlers for better RSXNT and Windows OEM conversions. Add detailed + comments on conversions. win32/osdef.h (Christian) +10. Define CP_UTF8. win32/rsxntwin.h (Christian) +11. Define WIN32_LEAN_AND_MEAN to reduce size of Windows includes. + win32/win32.c, win32/win32zip.c, zip.c (Christian) +12. Use only standard FAT attributes if OEM. win32/win32zip.c (Christian) +13. Add use of INTERN_TO_OEM() and related OEM changes. Add console comment. + zip.c (Christian) +14. Change severity from char to int. Update macros. ziperror.h. (Christian) +15. Update Visual Basic project to clarify some of the code. + windll/vbz64/vbzip.vbp, windll/vbz64/vbzipbas.bas, + windll/vbz64/vbzipfrm.frm (Ed) +16. Update copyright. api.c (Ed) +17. Update format for duplicate entry warning. fileio.c (Ed) +18. Instead of ifdef __RSXNT__ use ifdef WIN32. Define WIN32_LEAN_AND_MEAN. + Use WIN32_CRT_OEM. Change OEM check from vem == 20 to vem & 0xff00 == 0 + and instead of local_to_oem_string() use _INTERN_OEM(). Remove unused + first_CD in scanzipf_fixnew(). Instead of oem_to_local_string() use + Ext_ASCII_TO_Native(). Instead of local_to_oem_string() use + INTERN_TO_OEM(). zipfile.c (Christian) +19. Replace escape from zipsplit man page with '. zipsplit.txt (Christian) +20. Instead of using 20 every time, account for dosify when setting vem. + Update FAT comment. zipup.c (Christian) +------------------------ March 3rd 2007 version 3.0f29 ------------------------- + 1. Remove crctab.c. vms/build_zip.com (SMS) + 2. Add LFLAGS_ARCH. vms/descrip.mms (SMS) + 3. Remove redundant includes descrip.h, rms.h, and atrdef.h. + vms/vmsmunch.c (SMS) + 4. Remove includes descrip.h and rms.h. vms/vmszip.c (SMS) + 5. Only define NO_UNISTD_H if __VAX defined or __CRTL_VER is + less than 70301000, allowing support of the new symbolic + links in VMS. Also use unlink instead of delete if version + above 70000000. vms/osdep.h (SMS) + 6. Formatting changes. vms/notes.txt, vms/install_vms.txt (Christian) + 7. Remove spaces before tabs. win32/makefile.emx (Christian) + 8. Formatting change. win32/osdep.h (Christian) + 9. If -y on VMS open the link not the target file. vms/vms_im.c (SMS) +10. If -y on VMS search for the link, not the target file. vms/vms_pk.c (SMS) +11. Change default for Unicode path mismatch from error to warning, so + processing will continue. zip.c, globals.c (Ed) +------------------------ March 12th 2007 version 3.0f30 ------------------------ + 1. Add bzip2 support for the reduced no stdio bzip2 library for VMS and Unix. + Use libbz2_ns_.olb for VMS bzip2 library which is compiled from the VMS + version of bzip2 with the BZ_NO_STDIO flag set. This flag removes most + standard bzip2 stdio support and enables using a callback routine for + errors. zbz2err.c, unix/Makefile, vms/build_zip.com, vms/descrip.mms, + vms/descrip_deps.mms, vms/descrip_src.mms (SMS) + 2. Add zbz2err.c to Win32 vc6bz2 project for support of BZ_NO_STDIO for bzip2. + Modify zbz2err.c to handle different ports. zbz2err.c (Ed) + 3. Update license. zip.h (Ed) + 4. Update copyright. zip.c, zipfile.c, zipup.c, zbz2err.c, revision.h (Ed) + 5. Fix bug where directories got set to ver 4.6 in local headers instead of + ver 1.0 when using bzip2. zipfile.c, zipup.c (Ed) + 6. Minor updates to INSTALL. INSTALL (Ed) + 7. Minor updates to README. README (Ed) + 8. Add BZ_NO_STDIO to vc6bz2 projects. Error routine seems to work. + win32/vc6bz2 (Ed) + 9. Set bit FAB$M_BIO (.fab$v_bio) in the FAB when using sys$open() on a + symlink. vms/vms_im.c (SMS) +10. Change sys$disk to SYS$DISK. vms/build_zip.com (SMS) +11. Update extended help. zip.c (Ed) +12. Update bzip2 install. bzip2/install.txt (Ed) +------------------------ March 19th 2007 version 3.0f31 ------------------------ + 1. Define bz2_olb as LIBBZ2_NS.OLB. Change LIBBZ2.OLB to bz2_olb. Use + ZZBZ2ERR.C error callback for bzip2. vms/build_zip.com (SMS) + 2. Change NO_SYMLINK to NO_SYMLINKS to be consistent with UnZip. tailor.h, + acorn/osdep.h, macos/osdep.h, tops20/osdep.h, vms/osdep.h (SMS) + 3. Minor note changes. Add section on Symbolic Links. vms/notes.txt (SMS) + 4. Update copyright. globals.c (Ed) + 5. Update License with official copy. LICENSE (Greg, Ed) + 6. Update Readme. README (Ed) + 7. Add support for NO_BZIP2_SUPPORT. tailor.h (Ed) + 8. Add common compiler flags to Install. INSTALL (Ed) + 9. Remove SPLIT_FILE define. zip.c (Ed) +10. Minor updates to extended help. zip.c (Ed) +11. Modify Makefile to also build bzip2 library if found. Split $MAKE + ("make -f unix/Makefile") into $MAKE and $MAKEF, leaving $MAKE as defined by + Make and defining $MAKEF to "-f unix/Makefile". Add clean_bzip2 target. + unix/Makefile (SMS) +12. Modify configure to handle compiling bzip2. unix/configure (SMS) +13. Remove linking bzip2 with utilities. Other changes. unix/Makefile (Ed) +14. Change bzip2 wrong library errors to warnings. Put back OS bzip2 library + check. Only compile bzip2 if in bzip2 directory. unix/configure (Ed) +15. More modifications to Makefile and configure to only allow compiling in + the bzip2 directory. unix/Makefile, unix/configure (Ed) +------------------------ March 27th 2007 version 3.0f32 ------------------------ + 1. Modify configure and Makefile to only allow compiling bzip2 in the Zip bzip2 + source directory. unix/Makefile, unix/configure (SMS, Ed) + 2. Update bzip2 installation instructions. bzip2/install.txt (SMS, Ed) + 3. Remove need for BZIP2_USEBZIP2DIR define by using an appropiate include dir + specification (-I ../../bzip2) when needed. zip.c, win32/vc6bz2/zip.dsp, + unix/configure (SMS, Ed, Christian) + 4. Update VC6 readme. win32/readmeVC.txt (Christian, Ed) + 5. Add crc32.h to VC projects. Add assembler group to zipcloak, zipnote, and + zipsplit projects. Add BZ_NO_STDIO to all configurations with bzip2 so + reduced bzip2 code is used. win32/vc6/zip.dsp, win32/vc6/zipcloak.dsp, + win32/vc6/zipnote.dsp, win32/vc6/zipsplit.dsp (Christian) + 6. Update VC6bz2 readme. win32/readVCBZ.txt (Christian, Ed) + 7. Modify bzip2 VC6 workspace to use standard zipcloak, zipnote, and zipsplit + projects as they don't need bzip2. win32/vc6bz2/zip.dsw (Christian) + 8. Fix zlib flag problem by properly setting and clearing deflInit flag to + initialize and release resources. zipup.c (Bill Brinzer, Christian) + 9. Update copyright. crypt.h, api.c, tailor.h, fileio.c, ziperr.h, + zipsplit.c, zipnote.c, zipcloak.c, util.c (Ed) +------------------------ April 25th 2007 version 3.0f33 ------------------------ + 1. Fix -dd display_dots option for VMS. Fix adding value for -ds to command + line. Fix /NAMES = AS_IS for older header files. cmdline.c (SMS) + 2. Add Win32 wide scan support. In fileio.c add Win32 wide functions lastw(), + msnamew(), newnamew(), wchar_to_wide_string(), is_ascii_stringw(), + wchar_to_local_string(), and wchar_to_utf8_string(). In globals.c + add no_win32_wide that is true if the wide versions of calls like + GetFileAttributesW() do not work as on Win9x without the Unicode kit. + In tailor.h define zwstat for stats that use wchar_t strings and + defines SSTATW and LSSTATW. In util.c add isshexpw() and recmatchw() + and dosmatchw() for matching using wchar_t strings. In win32.c add + FSusesLocalTimeW(), IsFileSystemOldFATW(), GetFileModeW(), GetLongPathEAW(), + and zstat_zipwin32w(). In win32zip.c add zdirscanw structure, + GetDirAttribsW(), zDIRSCANW, readdw(), wild_recursew(), procname_win32w(), + OpenDirScanW(), GetNextDirEntryW(), CloseDirScanW(), procnamew(), + local_to_wchar_string(), wchar_to_utf8_string(), in wild() code to + check if W versions are supported and send zip down byte or wide path, + ex2inw(), in2exw(), and filetimew(). In zipup.h define zwopen to use + wide paths. In zipup.c if supported use filetimew() and zwopen(). + In zip.h add namew, inamew, and znamew to zlist and flist. In zip.c + remove duplicate initialization of use_wide_to_mb_default, force_zip64, + zip64_entry, and zip64_archive. Use filetimew() if UNICODE_SUPPORT and + using wide paths for directory scan. Remove old 8.3 path Unicode fix as + now use wide paths and get all where the 8.3 kluge missed paths where + characters in path needed multiple code pages. Changes to bit 11 Unicode + but still not ready. fileio.c, globals.c, tailor.h, util.c, zipup.h, + win32/win32.c, win32/win32zip.c, win32/win32.h, zipup.c, zip.c (Ed) + 3. Update copyright. Don't define UNICODE_SUPPORT if already defined. + Define MATCHW and zstat_zipwin32w(). win32/osdep.h (Ed) +------------------------ April 29th 2007 version 3.0f34 ------------------------ + 1. Add temporary option -sC to test Unicode file creation enabled with + UNICODE_TEST define. zip.c, fileio.c (Ed) + 2. On Unix display control characters as ^X as UnZip. (SMS) fileio.c + 3. Update extended help. zip.c (Ed) + 4. Fix bugs in Unicode changes. zip.c, fileio.c (SMS, Ed) + 5. Add NAMES AS_IS support. Handle root dir [000000]. zip.h, + vms/install_vms.txt, vms/vmszip.c, vms/vmsmunch.c (SMS) + 6. Add global zipfile_exists to handle missing zipfile errors better. zip.h, + globals.c, zip.c (Ed) + 7. Add functions utf8_to_escape_string(), wide_to_escape_string(), + local_to_escape_string(), utf8_to_wchar_string(), and + rename wide_to_escape_string() to wide_char_to_escape_string(). fileio.c, + win32/win32zip.c, zip.h (Ed) + 9. Free f->inamew in fexpel(). Use zuname for matching. fileio.c (Ed) +10. Fix memory bug by setting z->namew, z->inamew, and z->znamew to NULL. + Set f->namew, f->inamew, and f->znamew to NULL for new file in newname(). + Free wide_string in local_to_utf8(). Other Unicode fixes. Add namew, + inamew, and znamew to freeup(). fileio.c, win32/win32zip.c, zip.h (Ed) +11. Move wchar functions only used by Windows to win32zip.c. fileio.c, + zip.h (Ed) +12. Fix spelling in manual. zip.1 (SMS, Ed) +13. Add zuebcmp() for Unicode. zipfile.c +14. Open files to read using wide name as input path. zipup.c (Ed) +15. Update help. zip.c (Ed) +16. Change -TT long option from --unzip-path to --unzip-command. zip.c (Ed) +17. Update Manual to include section on Unicode, add -TT option, make some + changes to Unicode in other sections, update copyright at bottom, and + some small changes to wording and examples. man/zip.1, zip.txt (Ed) +18. Put #ifdef WIN32 around WIN32 blocks. zipfile.c (Ed) +------------------------- May 14th 2007 version 3.0f35 ------------------------- + 1. Update VMS to include new options. vms/cmdline.c, vms/zip_cli.cld (SMS) + 2. Update VMS help. vms/vms_zip.rnh (SMS) + 3. Minor updates to VMS help. vms/vms_zip.rnh (Ed) + 4. Create global filter_match_case that defaults to 1 (case-sensitive). zip.c + zip.h, globals.c (Ed) + 5. Add option -fc to fold case for case-insensitive matching in filter(). + Currently enabled only for WIN32. zip.c, win32/osdep.h (Ed) + 6. Change (action == DELETE || action == FRESHEN) to filter_match_case in + PROCNAME() define. I just couldn't figure out what was going on here and + why the case flag was controlled by this. zip.c (Ed) + 7. Update WhatsNew. WHATSNEW (Ed) +------------------------- May 17th 2007 version 3.0f36 ------------------------- + 1. Touch date on generated file. vms/ZIP_MSG.MSG (SMS, Ed) + 2. Update Betas readme to include Release Candidates. Betas_Readme.txt (Ed) + 3. Update Zip 3.0f announcement. zip30f.ann (Ed) + 4. Minor updates to VMS help. vms/cvthelp.tpu, vms/vms_zip.rnh (SMS) + 5. Major changes to VMS CLI help. vms/zip_cli.help (SMS, Ed) + 6. Update license. revision.h (Ed) +------------------------- May 21st 2007 version 3.0f37 ------------------------- + 1. Rename -fc (fold case) to -ic (ignore case) which may be more intuitive. + zip.c (Ed) + 2. VMS CLI updates for new options. vms/cmdline.c, vms/vms_zip.rnh, + vms/zip_cli.cld, vms/zip_cli.help (SMS) + 3. Updates to support Watcom C, mingw, djgppv2 and msc-16-bit, including + supporting wide stat and compare calls and work-around for problem with + "no symlink support" detection. tailor.h, util.c, zip.c, win32/osdep.h, + win32/win32.c, win32/win32/zipup.h (Christian) +------------------------- May 29th 2007 version 3.0f38 ------------------------- + 1. Update description. file_id.diz (Ed) + 2. Handle better when not splitting and run out of disk space. Also, for split + method 1 (automatically write all splits to same place) exit if run out of + space instead of filling available space with near empty splits. For split + method 2 require splits to be at least 64K bytes (the minimum split size). + fileio.c (Ed) + 3. Add line break in ziperr() if message line has been started. zip.c (Ed) + 4. In ziperr() don't close output handle y if same as current_local_file handle + and just closed that. zip.c (Ed) + 5. Change default definition of PROCNAME() to handle new filter_match_case flag + and restore backward compatibility. zip.c (Christian, Ed) + 6. Add note detailing definition of PROCNAME(). zip.c (Ed) + 7. Remove nonlocalpath parameter from procname_win32() and procname_win32w() + and variables nonlocal_path and nonlocal_name as this is not used now that + unicode is implemented in WIN32 using the wide calls. + 8. Enable ignore case option for VMS. zip.c (SMS) + 9. Update -v and other updates in manual. man/zip.1 (Christian, Ed) +10. Updates for Watcom C and Win32 symlinks. win32/osdep.h (Christian) +11. Fix historic problem with VAX seeking. zipfile.c (SMS) +12. Add NAM_M_EXP_DEV. Add determination if device is in file specification. + If device name in file specification do ODS2 and ODS5 down-casing. + Define explicite_dev(). vms/vms.h, vms/vmszip.c (SMS) +------------------------- June 4th 2007 version 3.0f39 ------------------------- + 1. Update osdep.h to use new filter_match_case flag. vms/osdep.h (SMS) + 2. Fix unterminated string bug and trim extra allocated space in + local_to_display_string(). fileio.c (Ed) + 3. Updated extended help for -u and -ic options. zip.c (Ed) + 4. Update Manual. man/zip.1, zip.txt (Ed) +------------------------- June 15th 2007 version 3.0f40 ------------------------- + 1. Update Unicode Path and Unicode Comment descriptions based on suggestions + from WinZip. proginfo/extrafld.txt (Steve Gross, Ed) + 2. Update descriptions for Add, Update, and Freshen in the manual. man/zip.1 + (Christian) + 3. Update default definition of PROCNAME() to use filter_case_match flag to + turn off case matching in filter(). zip.c (Christian) + 4. Update WhatsNew. WHATSNEW (Ed) + 5. Update announcement. zip30f.ann (Ed) + 6. Update manual. man/zip.1, zip.txt (Ed) +------------------------- July 7th 2007 version 3.0f41 ------------------------- + 1. Use File Name as Unicode path if UTF-8 flag is set in header. zip.c, + globals.c, zipfile.c, zip.h (Ed) + 2. Update ToDo. TODO (Ed) + 3. Update WhatsNew. WHATSNEW (Ed) + 4. Update ReadMe. README (Ed) + 5. Fix problems with incompatible stat types on Win32. fileio.c, tailor.h, + zip.h, win32/win32.c, win32/win32zip.c, win32/osdep.h (Ed) + 6. Define NO_STREAMING_STORE to turn off storing while streaming. + INSTALL, zipup.c (Ed) + 7. Define UNICODE_ALLOW_FORCE to enable -UN=force option which is now + disabled and would need work. globals.c, zip.h (Ed) + 8. Add global using_utf8 to flag when OS current character set is UTF-8. + If an existing entry has the UTF-8 flag set the flag is kept. If a new + entry needs Unicode and on a UTF-8 system assume the strings are UTF-8 + and set the UTF-8 flag. globals.c, zip.h (Ed) + 9. Update Unicode extra field descriptions. proginfo/extrafld.txt (Ed) +10. Add include directory so can find bzip2 header file when using bzip2 + directory. unix/configure (Ed) +11. Fix wide character wild(), wild_recursew() and OpenDirScanW() for Win32 so + work like the regular versions. win32/win32zip.c (Ed) +12. Update Unicode in manual. Update -W description in manual zip.1 +13. Flush logfile writing. zip.c (Ed) +14. Update extended help for -UN option. Update help for Update to note it + updates files where the OS has a later date. Chance -UN=Exit to -UN=Quit + so can abbreviate to first letter. zip.c (Ed) +15. Fix a bug in readzipfile() when zip used in pipe. Other pipe fixes. zip.c, + zipfile.c (Ed) +------------------------ August 10th 2007 version 3.0f42 ----------------------- + 1. Update error message for -DF. zip.c (Ed) + 2. Add bzipped message to write to log file. zipup.c (Ed) + 3. Update bzip2 install instructions. bzip2/install.txt (Ed) + 4. Move local.h include to tailor.h to fix compiler multiple define. tailor.h, + zip.c (SMS) + 5. Add additional C compiler checks for GNU and HP. unix/configure (SMS) + 6. Fix to build libbz2.a. unix/Makefile (SMS) + 7. Update copyright. acorn/osdep.h, macos/osdep.h, tops20/osdep.h, + vms/vmszip.c, vms/vmsmunch.c, vms/vms_pk.c, vms/vms_im.c, vms/vms.h, + vms/vms.c, vms/osdep.h, win32/rsxntwin.h, win32/osdep.h, win32/nt.c (Ed) + 8. Change zfeeko(file, 0, SEEK_SET) to rewind(file) in ffile_size() so + EOF is always reset. This was creating problems in WIN32 when + NO_ZIP64_SUPPORT was set but LARGE_FILE_SUPPORT was set. zipfile.c (Ed) + 9. Update compile -v descriptions for LARGE_FILE_SUPPORT and ZIP64_SUPPORT to + be more specific as to what each does. zip.c (Ed) +10. Fix bug that added the local header size to the next entry compressed size + giving a wrong compressed size error if splitting and the split occurs when + writing a local header. fileio.c (Ed) +11. Remove UNICODE_TEST define from VC 6 projects. win32/vc6/zip.dsp, + win32/vc6/zipcloak.dsp, win32/vc6/zipnote.dsp, win32/vc6/zipsplit.dsp (Ed) +12. Update extended help. zip.c (Ed) +13. Only output -FF central directory messages in verbose mode. zipfile.c (Ed) +14. Add note about possible bug when copying entries from a split archive. + WHATSNEW (Ed) +------------------------ August 11th 2007 version 3.0f43 ----------------------- + 1. Display locale inside check to avoid NULL locale. zip.c (SMS, Ed) + 2. Add include wchar.h to tailor.h. tailor.h (SMS) +------------------------ August 21st 2007 version 3.0f44 ----------------------- + 1. Remove verbose messages when setting locale as verbose flag is not set yet. + zip.c (SMS, Ed) + 2. Change reading splits message "abort archive" to "abort archive - quit" and + change selection letter from a to q so q quits consistently. For quit, + don't confirm as more annoying than helpful. fileio.c (Ed) + 3. In bfwrite() handle case where a split ends at the end of one entry and + trying to write the next local header forces opening next split. This + caused copying entries from one archive to another to fail if this came up. + Also handle case where a new split is needed while writing central directory + entries. Now close last split and update pointers to point to the new + split. fileio.c (Ed) + 4. Update use of mesg_line_started and add new logfile_line_started to account + for line ends in logfile. fflush() output. zip.c, zip.h, globals.c (Ed) + 5. Move setting split size if input archive is split and split_size not set + to after archive is read. zipfile.c, zip.c (Ed) + 6. Update Manual to describe Unicode as implemented and note that old splits + are not automatically excluded. man/zip.1, zip.txt (Ed) + 7. Update WhatsNew to remove note that creating and copying split archives + is broke as it seems fully working now. WHATSNEW (Ed) + 8. Update announcement. zip30f.ann (Ed) +------------------------ August 31st 2007 version 3.0f45 ----------------------- + 1. Unicode fix for VMS. tailor.h (SMS) + 2. Add member current to zlist structure to flag when an archive entry is + current with the matching OS file using file time and size. This is used by + File Sync to copy current entries from archive. zip.h, zip.c (Ed) + 3. Comment out zip info verbose extra data message as this message does not + seem to add much. zipfile.c (Ed) + 4. Add local and central directory Version Needed To Extract to mismatch + warning. Update warning text. zipfile.c (Ed) + 5. Add function BlankRunningStats() to output blanks for the running stats + part of the line to use when displaying stats for entries not on the mark + list so all output lines up. zip.c + 6. Add -FS to extended help as new mode. zip.c (Ed) + 7. Update description of -FF to remove Assume Worst. zip.c (Ed) + 8. Add all_current flag that is set if all entries in archive are current and + skip updating archive if -FS and all entries are current. zip.c (Ed) + 9. Change argv[] to args[] for "try: zip" error message as message depends on + new argument order in args where options are now at beginning. zip.c (Ed) +10. For File Sync, copy entries to new archive if file time and size are the + same. If verbose, output ok when copying current entries, otherwise no + message when current_entry. Set all_current to 0 if an entry not marked or + a file not on OS as need to avoid the All Current message in these cases to + catch only deletions. zip.c (Ed) +11. Initialize variables excluding zipstate and setjmp() if USE_ZIPMAIN defined + to fix bug when recall zipmain(). zip.c (Ed) +12. Update Manual. zip.1, zip.txt (Ed) +13. Update WhatsNew. WHATSNEW (Ed) +14. Update announcement. zip30f.ann (Ed) +----------------------- September 5th 2007 version 3.0f46 ---------------------- + 1. Move write of local header after when GPB11 UTF-8 bit set in putlocal(). + zipfile.c (Ed) + 2. Change to uppercase for compatibility. vms/install_vms.txt (SMS) + 3. Set cenbeg and bytes_this_split to fix grow. Check if grow split archive. + zipfile.c, zip.c (Ed) +----------------------- September 14th 2007 version 3.0f47 -------------------- + 1. Include address for new Info-ZIP forum. Add note on 16-bit OS support. + Add note about text file line ends. README (Ed) + 2. Update WhatsNew to include latest on Unicode. Add section on plans for + Zip 3.1. WHATSNEW (Ed) + 3. Minor change in note for Unicode in extended help. zip.c (Ed) + 4. Modify definitions of Unicode extra fields based on discussions with PKWare + and WinZip. proginfo/extrafld.txt (Ed) + 5. Add note on UTF-8 flag. INSTALL (Ed) + 6. Minor updates to ToDo list. Needs more work. TODO (Ed) + 7. Update announcement. zip30f.ann (Ed) + 8. Change definition of IZ_OUR_BZIP2_DIR to be compatible with Configure and + to work with HP-UX. unix/Makefile (SMS) +------------------------ September 24th 2007 version 3.0f --------------------- + 1. Update extended help Unicode description. zip.c (Ed) + 2. Update Readme. README (Ed) + 3. Fix case of define identifying IA64. vms/vms.c (SMS) + 4. Update announcement date. zip30f.ann (Ed) + 5. Update Unicode extra field definitions based on changes proposed for + AppNote. extrafld.txt (Ed) +------------------------ October 17th 2007 version 3.0g01 --------------------- + 1. Can get stuck on open Unix FIFO so default to skip and add option -FI to + enable reading FIFO. Add global allow_fifo. zip.c, zip.h, globals.c + (Willus 0, Ed) + 2. As problems with MinGW with wide-character paths, disable wide-character + Unicode support. zip.c, unix/unix.c (Willus 0, Ed) + 3. Update manual installs to include zipcloak.1, zipnote.1, and zipsplit.1 + pages. unix/Makefile (Ed) + 4. Update Solaris packages. unix/Packaging/pkginfo.in, + unix/Packaging/postinstall, unix/Packaging/preinstall.in, + unix/Packaging/prototype (SMS) +------------------------ October 30th 2007 version 3.0g02 --------------------- + 1. Fix bug in get_in_split_path() where look for .zip split when attempting + to open archives without a .zip extension, even when a single file archive + like jar file. fileio.c (Gabriele (balducci@units.it), Ed) + 2. Fix bug where temp file got created in current working directory on Unix + by giving entire archive path to mkstemp() as template. fileio.c, zip.c + (Willus, Ed) + 3. Use 64-bit output functions for bits_sent. trees.c (SMS) + 4. Add -FF to fixfix -sd messages to make different from identical main + messages. zip.c (SMS, Ed) + 5. If quiet do not ask for splits and all splits must be in same location. + zipfile.c (Ed) + 6. Clean up making zip manuals. unix/Makefile (Ed, SMS) + 7. Add clean_exe to make. unix/Makefile (SMS) + 8. Update to VMS Notes, including adding details on symlinks, -V, and UTC + dates times. vms/notes.txt (SMS) + 9. Fix bug in wild() when calling wile_recursew() where qw should be + pointing inside pw. win32/win32zip.c (Willus, Ed) +10. Fix bug where is_ascii_string() fails when passed a NULL string. This + may fix problem where the CentOS mbstowcs() function is returning -1 when + trying to convert a file name with a bad character (0xe6), causing + local_to_wide_string() and then local_to_utf8_string() to return NULL, so + f->uname gets NULL and so is_ascii_string() fails with SIGSEGV. fileio.c + (Willus, Ed) +------------------------ October 31st 2007 version 3.0g03 --------------------- + 1. Add handling of -b temp directory when opening splits in bfwrite() using + mkstemp(). fileio.c (SMS, Ed) +------------------------ November 3rd 2007 version 3.0g04 --------------------- + 1. Move show_files to global so can avoid split warning for -sf. zip.c, + globals.c, zip.h, zipfile.c (Ed) + 2. Account for -b tempath when opening temp file. zip.c, zipnote.c, + zipcloak.c (SMS, Ed) +------------------------ November 4th 2007 version 3.0g05 --------------------- + 1. Minor fixes to fdopen calls. zipcloak.c, zipnote.c (SMS, Ed) +------------------------ November 4th 2007 version 3.0g06 --------------------- + 1. Add negation to -db, -dc, -dd, -dg, -du, -dv display options. zip.c (Ed) + 2. Put back UNICODE_SUPPORT no_win32_wide code left out in previous fix. + win32/win32zip.c (Willus, Ed) +------------------------ November 21st 2007 version 3.0g07 --------------------- + 1. Fix bug preventing newline in some cases in zipmessage(). zip.c (Ed) + 2. Update Unicode help. zip.c (Ed) + 3. Update -sd messages. zip.c (Ed) + 4. Add filetimew() for Unicode case. zip.c (Ed) + 5. Add ClearArchiveBitW() for Win32 wide. zip.c, zip.h, win32/win32.c (Ed) + 6. Only ask for .zip split if path ends in .znn or .znnn where n 0 to 9. This + allows -FF to work on .exe sfx files without adding .zip. zipfile.c (Ed) + 7. Fix bug where only backed up 20 bytes to find Z64 EOCD Locator. Now back + up 24 bytes to include size of Z64 EOCD Locator signature. This prevented + reading and updating archives greater than 4 GB. zipfile.c (Ed) + 8. If -FF on Win32 initialize wide strings namew, inamew, and znamew to NULL. + zipfile.c (Ed) + 9. Add #include <wctype.h> to support towupper(). tailor.h (SMS) +------------------------ December 4th 2007 version 3.0g08 --------------------- + 1. Update dot_size comment. globals.c (Ed) + 2. Update Compression in extended help. zip.c (Ed) + 3. Add extended help on self extractor -A and -J. zip.c (Ed) + 4. Update VMS SYMLINK version information. zip.c (SMS) + 5. Remove not final from Unicode version information as final now. zip.c (Ed) + 6. Remove apparently not needed WINDLL variable retcode. zip.c (Ed) + 7. Fix -A to calculate sfx offset and adjust offsets as it should. zip.c (Ed) + 8. Split -F and -FF used with -A warning to separate warnings. zip.c (Ed) + 9. Add adjusting to can't to that to split archive error. zip.c (Ed) +10. Fix bug for -A that tries to open split by asking for disk 0 instead of + disk 1. Add adjust_offset and cd_total_size variables. Calculate + sfx offset by determining offset of start of central directory. Archives + larger than 4 GB are not supported as sfx archives but these don't seem + to work anyway. Add adjust_offset to Zip64 EOCDR offset and central + directory offsets. zip.c, zipfile.c (Ed) +11. Comment out here debug variable in find_next_signature(). zipfile.c (Ed) +12. Change %2x to %02x as format for parts of a signature in error messages. + zipfile.c (SMS) +13. Add warning adjusting split archives not yet supported. zipfile.c (Ed) +14. Add period to central directory comment. zipfile.c (Ed) +15. Update readme for vb Zip64 project. windll/vbz64/readvb64.txt (Ed) +16. Update comments of VB for Zip64 example. Add SplitSize to VB Zip64 + example. windll/vbz64/vbzipbas.bas, windll/vbz64/vbzipfrm.frm (Ed) +17. Add SourceForge to comment noting where can get the source code. + windll/vbz64/vbzipfrm.frm (Ed) +18. Update WhatsNew. WHATSNEW (Ed) +------------------------ December 12th 2007 version 3.0g09 -------------------- + 1. A few minor changes to extended help. zip.c (Ed) + 2. Uppercase beginning of most -sd messages. zip.c (Ed) + 3. Add spaces between options in some error messages. zip.c (Ed) + 4. Update comments in scanzipf_regnew(). zipfile.c (Ed) + 5. Update scanzipf_regnew() to figure out sfx offset. (Ed) + 6. Uppercase VMS RUNOFF file as apparently needed. VMS_ZIP.RNH (SMS) + 7. Add comments to zipmessage(). zip.c (Ed) + 8. Update extended help and option descriptions. zip.c (Ed) +------------------------ December 20th 2007 version 3.0g10 -------------------- + 1. Fix -F to include -A adjustment check. zipfile.c (Ed) + 2. Change -FF message when find EOCDR. zipfile.c (Ed) + 3. For -FF, reset first CD entry flag in_central_directory when a local entry + is found after CD entries so that another CD entry forces sorting of all + local entries to that point. This allows files with multiple archives in + them to be processed. zipfile.c (Ed) + 4. Add message when a local entry is found after a central directory. + zipfile.c (Ed) + 5. Remove word offset from disk offset location messages. zipfile.c (Ed) + 6. Make Adjust offset message more descriptive. zipfile.c (SMS, Ed) + 7. In scanzipf_regnew(), if adjustment to offsets, add it to + in_cd_start_offset. zipfile.c (Ed) + 8. Allocate cextra only if localz->ext not 0 in zipcopy(). zipfile.c (Ed) +------------------------ December 28th 2007 version 3.0g11 -------------------- + 1. Include definitions of zip64_eocdr_start and z64eocdl_offset in + ZIP64_SUPPORT ifdef block. Add comments for End Of CD Record (EOCDR). + Update comments for adjust offset detection. zipfile.c (Ed) + 2. Change ((uzoff_t)1 << 32) to 0xFFFFFFFF. zipfile.c (SMS, Ed) + 3. Leave off local header detection as not useful when searching for start + of central directory to get adjust offset. Looks like all expected cases + are now covered as long as archive is intact. zipfile.c (Ed) + 4. Update some warning messages. Simplify adjust offset information message. + zipfile.c (Ed) + 5. Add braces to unicode_mismatch if block. zipfile.c (Christian) + 6. Add (void *) cast in InterlockedExchangePointer() mutex calls to fix + compile warnings in MinGW (GCC 3.4.4). win32/nt.c (Christian) + 7. Remove unused nonlocalpath variable. win32/win32zip.c (Christian) + 8. Update betas readme file. betas_readme.txt (Ed) + 9. Partial update to Who list of contributors. proginfo/infozip.who (Ed) +10. Update ReadMe. Create Announcement. README, zip30g.ann (Ed) +11. Update WhatsNew. WHATSNEW (Ed) +------------------------ January 7th 2008 version 3.0g12 -------------------- + 1. Convert Scanning files message to use standard zipmessage_nl() so line + ends are generated when needed. fileio.c (Ed) + 2. Add line ends in DisplayRunningStats() if a display line has been + started. zip.c (Ed) + 3. For the command line listed at the top of the log file, add double + quotes around any arguments that have spaces in them. + zip.c (Ed) + 4. Instead of stdout use standard mesg output stream for show files. + Output new line for show files for display and log file if there was + output on the current line. zip.c (Ed) + 5. Comment out new line output code after zipup() and replace with + call to zipmessage_nl("", 1) to output new line if needed. + zip.c (Ed) + 6. In GetFileMode() and GetFileModeW() when get attributes fails + instead of fprintf(mesg, ...) use zipwarn() so error goes in + log file and new lines are displayed when needed. win32/win32.c (Ed) + 7. In GetSD(), change cbytes from long to ulg. Check cbytes (the + compressed size of the security descriptor) and issue warning if + the compressed security descriptor is greater than 0x7FFF (32k) + as the entire header this extra field is in needs to fit in the + 64k header. Should be a check on the running size of the header + so the actual space remaining is tracked. Maybe in Zip 3.1. If + cbytes OK cast to ush and store. win32/win32zip.c (Ed) + 8. Use zipmessage_nl() for bytes security message so new lines are + handled and message goes in log file. win32/win32zip.c (Ed) + 9. Add new option -RE to enable [list] (regex) matching in DOS and + WIN32 but disable [list] matching otherwise. Default behavior + is restored if ALLOW_REGEX is defined. globals.c, util.c, + zip.h, zip.c (Ed) +------------------------ January 20th 2008 version 3.0g13 -------------------- + 1. Update copyrights to 2008. zip.c, zipcloak.c, zipfile.c, zipnote.c, + zipsplit.c, zipup.c, README (Ed) + 2. Update Who. proginfo/infozip.who (Ed) +------------------------ January 30th 2008 version 3.0g14 -------------------- + 1. Update copyrights. fileio.c, globals.c, revision.h, util.c, zip.h, + win32/win32.c, win32/win32zip.c (Ed) + 2. Updates. README, proginfo/infozip.who (Ed) + 3. Update announcement and WhatsNew. zip30g.ann, WHATSNEW (Ed) + 4. Add ALLOW_REGEX to INSTALL define list. INSTALL (Ed) + 5. Change -sd message. zip.c (Ed) + 6. For bzip2 check for binary and set binary/text flag. Handle -l and -ll + line end conversions for bzip2. zipup.c (Ed) +------------------------ February 3rd 2008 version 3.0g -------------------- + 1. Change && to || to fix logic bug in show files. zip.c (Johnny) + 2. Add CLEAN and CLEAN_ALL VMS targets. vms/descrip_mkdeps.mms (SMS) +----------------------- February 22nd 2008 version 3.0h01 -------------------- + 1. Update some echo statements to use CFLAGS_OPT. Add GNUC check. + unix/configure (SMS) + 2. Only store UID and GID if 16 bit. unix/unix.c (Ed) +----------------------- March 21st 2008 version 3.0h02 -------------------- + 1. Change long Unicode escapes from 8 characters to 6 characters based on + change in UnZip 6.0. fileio.c (Ed) + 2. Put zuebcmp() declaration in #if 0 block as definition already is. This + function would be used to allow Unicode escapes on the command line + without using the -UN=escape option, but the utility of this is still + being determined. zipfile.c (SMS, Ed) + 3. Remove declaration for unused bz_deflate_init(). zipup.c (SMS, Ed) + 4. Add release announcement file, anticipating the long-awaited release. + zip30.ann (Ed) + 5. Update WhatsNew. WHATSNEW (Ed) +----------------------- March 24th 2008 version 3.0h03 -------------------- + 1. Update Unix configure script to better test for modern HP-UX compiler. + unix/configure (SMS) + 2. Updated Beta Readme. betas_readme.txt (Ed) + 3. Update Install. INSTALL (Ed) + 4. Update ReadMe. README (Ed) + 5. Small change to main help screen. zip.c (Ed) + 6. Small update to top of ToDo list. Actual updating of items still + needs to be done. TODO (Ed) +----------------------- April 2nd 2008 version 3.0h04 -------------------- + 1. Update copyright. crc32.h (Christian) + 2. Remove zip.h include. crc32.h (Christian) + 3. Add local prototypes for Unicode functions. Add cast for split size + check. Make many Unicode functions local. #if 0 out currently unused + utf8_chars(). Fix memory leak in wide_to_local_string() by adding + free() for buffer on error return. Fix memory leak in copy_args() on + error return by adding free-args(). Add ZCONST to arg in + insert_arg(). Shorten some lines to less than 80 characters. Add + free() to get_longopt() to fix memory leak. fileio.c (Christian) + 4. Create Win32 versions of wide_to_local_string() and + local_to_wide_string() so can use Win32 conversion functions. + fileio.c, win32/win32.c (Christian) + 5. Update comments for get_option(). fileio.c (Ed) + 6. Update encryption code readme. README.cr (Ed) + 7. Add prototype for recmatchw(). util.c (Christian) + 8. Change count_args() from static to local. util.c (Christian) + 9. Change ifdefs for includes for prototypes for version_info(), + zipstdout(), and check_zipfile() for WINDLL and MACOS and add + check_unzip_version(). zip.c (Christian) +10. Change ifndef NO_SYMLINKS to ifdef S_IFLNK for determining compiler + information. zip.c (Christian) +11. Change UTF-8 locale from en_GB.UTF-8 to .UTF-8. zip.c (Christian) +12. Change cast of -1 for dot_size from uzoff_t to zoff_t. + zip.c (Christian) +13. Change prototype for set_filetype to include parameter char *. + Change prototype of has_win32_wide to include parameter void. + zip.h (Christian) +14. Add prototypes for find_next_signature(), find_signature(), + and is_signature(). Change duplicate prototype scanzipf_regnew() + to missing prototype scanzipf_fixnew(). Change comment for Adler-16 + checksum to CRC-32 checksum as that is being used at that point in + the code. Move multiple uname assignments to common assignment. + Add inameLocal for WIN32_OEM and use define for inameLocal if not + to save memory allocation when not not using WIN32_OEM. Also + change _INTERN_OEM(str1) to INTERN_TO_OEM(src, dst) for OEM + conversion. Format comment for vem to fit in 80 character lines. + zipfile.c (Christian) +15. Change variable a from buffer to a pointer and add abf as the + buffer for zgetline() to handle NULL case. zipnote.c (Christian) +16. Change comments to zipentry comments and zipfile comment in + messages. zipnote.c (Ed) +17. Use uidgid_16bit as flag variable instead of uid_size. Modify + size check that prevents saving Unix UIDs and GIDs in the old + Unix extra field if they are not 16 bits. Change memory + allocation based on uidgid_16bit. Delete unused code for memory + copy for extra field. unix/unix.c (Christian, Ed) +18. Change compiler flag from -zp8 to -Zp8 for LCC Win32. + win32/makefile.lcc (Christian) +19. Add ifndef debug. Add bzip2 support. Add additional compiler + flags. win32/makenoas.w32 (Christian) +----------------------- April 10th 2008 version 3.0h05 -------------------- + 1. Fix bug found by forum poster where Zip stops recursing down a tree + when option -AS is set and a directory without the Windows archive + bit is reached. Now Zip continues down the tree to include files with + the bit set. win32/win32zip.c (forum poster, Ed) + 2. Update comments. win32/osdep.h (Ed) + 3. Update VMS notes to better organize and add information about file + name case. Additional small updates. vms/notes.txt (SMS) + 4. Fix bugs from previous changes to unix. unix/unix.c (SMS, Christian, + Ed) + 5. Add unix IBM support. unix/unix.c (SMS) + 6. Update INSTALL to account for new distribution structure and other + changes. INSTALL (SMS, Ed) + 7. Update bzip2 install readme. bzip2/install.txt (SMS, Ed) + 8. Fix bug noted in forum where -@ and -x generated a "nothing to + select from error" by also checking filelist variable populated by + -@ for entries. zip.c (forum poster, Ed) +----------------------- April 20th 2008 version 3.0h06 -------------------- + 1. Start announcement for Zip 3.0h public beta. zip30h.ann (Ed) + 2. Update beta readme. betas_readme.txt (Ed) + 3. Update case of README.CR. INSTALL (Ed) + 4. Change -W to -ws for option to stop wildcards from scanning directory + boundaries in path. This frees up -W for later use, maybe as extendted + option introducer. zip.c, man/zip.1 (Ed) + 5. Updated date in announcement to May 4th. zip30.ann (Ed) + 6. Added announcement for public beta Zip 3.0h. zip30h.ann (Ed) + 7. Fix large file support for MinGW by checking for compiler environments + before the check for (generic) gcc. zipup.c, win32/osdep.h + (Will, Christian) + 8. Fix large file support for bzip2. Additionally, the "dot printout" + code has also been adapted for LARGE_FILE support. zipup.c + (Will, Christian) + 9. Add comments to top of configure. unix/configure (Ed) +10. Move comment and comment out value size check for UID/GID extra field. + unix/unix.c (Ed) +11. Change case of file ToDo to TODO for consistency and to work with Unix + package. TODO (SMS, Ed) +----------------------- April 26th 2008 version 3.0h07 -------------------- + 1. For -AS, which for Windows only includes files with the archive bit + set, exclude directory entries (by setting -D) as some directories may + not have any files with the archive bit set and so the directory would + be empty. zip.c (Ed) + 2. Fix UID/GID size detection to use byte sizes and remove data fit test. + unix/unix.c (Ed) + 3. Update announcement. zip30h.ann (Ed) + 4. Add new unix extra field with tag 'ux' that stores UIDs/GIDs of 1 to 4 + bytes (8 to 32 bits). unix/unix.c (Ed) + 5. Update VB readme. windll/vbz64/readVB64.txt (Ed) + 6. For Unicode escaped output also show escape for ASCII 7-bit if + isprintable() is false. fileio.c (Ed) + 7. Use locale "en_US.UTF-8" for Unix. zip.c (Ed) + 8. Also show escaped Unicode for new files in found list. zip.c (Ed) + 9. Update manual. man/zip.1, zip.txt (Ed) +------------------------ May 4th 2008 version 3.0h08 ----------------------- + 1. Handle when a bad Unicode string in archive forces + utf8_to_wide_string() to return a NULL string. Give warning if UTF-8 + in existing archive is bad. Put WIN32 wide local header initializations + in UNICODE_SUPPORT block. fileio.c, zipfile.c (Ed) + 2. Leave out Unicode escape code if not Unicode enabled. zip.c (Ed) + 3. Enable oem_to_local_string() and local_to_oem_string() for WIN32 + even if no Unicode. zip.h, win32/win32.c (Christian, Ed) + 4. Update comment about encryption code. zipcloak.c (Ed) + 4. Update zipmessage_nl() and zipmessage() from zip.c. zipcloak.c, + zipnote.c, zipsplit.c (Ed) + 5. Add Mac OS X library check. unix/configure (SMS) + 6. Add 16-bit UID/GID check. unix/configure (Christian, Ed) + 7. Format echo and comment statements a bit. unix/configure (Ed) + 8. Only compile in old 16-bit UID/GID code if new define UIDGID_NOT_16BIT + from unix configure script is not defined. unix/unix.c (Christian) + 9. A couple changes to updated 16-bit UID/GID code. Add 64-bit + UID/GID support to new Unix extra field. unix/unix.c (Ed) +10. Remove redundant "license" from options table. zipcloak.c (Ed) +11. Remove old unix build files. unix/configure-orig, unix/Makefile-orig + (Christian) +12. Add -O (--output-file) option to ZipCloak. Fix bug by setting + out_path. zipcloak.c (Ed) +------------------------ May 8th 2008 version 3.0h09 ----------------------- + 1. Update copyright. Add check for NO_UNICODE_SUPPORT. tailor.h (Ed) + 2. Fix bug where Unicode General Purpose Bit Flag 11 should force keeping + the old name field but it was being overwritten by the escaped name + in the central directory header. Fixed some ZIPERR() calls in + putcentral() that referred to putlocal(). zipfile.c (Ed) + 3. Add comment about OCRCU8 and OCRCTB. unix/configure (Ed) + 4. Change line in instructions to note that manuals should be made after + Zip is made. Change OCRTB to OCRCTB. Add $(OCRCTB) to rule for + zipcloak$E so crc32_.o is linked in. Add comment for NO_UNICODE_SUPPORT + flag. unix/makefile (Ed) + 5. Update WhatsNew. Add additional items to the Zip 3.1 list. Add note + about Zip 2.4. WHATSNEW (Ed) + 6. Update Zip 3.0h announcement. zip30h.ann (Ed) + 7. Update manual pages. man/zip.1, man/zipsplit.1, man/zipnote.1, + man/zipcloak.1 (Ed) + 8. Add noted for UTF-8 locale. zip.c (Ed) + 9. Set UTF-8 locale for Unix in utilities if UNICODE_SUPPORT enabled + so can display and process paths in archives correctly. zipsplit.c, + zipcloak.c, zipnote.c (Ed) +------------------------ May 12th 2008 version 3.0h10 ---------------------- + 1. Add use of new Unix UID/GID extra field and of old Unix 16-bit UID/GID + extra field when system uses 16-bit UIDs/GIDs to version information. + zip.c (SMS, Ed) + 2. Add Unicode Path and Unicode Comment extra fields to extra fields list. + Update new Unix extra field revision date. proginfo/extrafld.txt (Ed) + 3. Add Mac hardware platform to version information. unix/unix.c (SMS) +------------------------ May 19th 2008 version 3.0h11 ---------------------- + 1. Initialize f->namew when streaming stdin to fix bug. fileio.c (Ed) + 2. Change force_zip64 to start as -1 as unset, then use 1 for forcing use + of Zip64 and 0 for disabling use of Zip64. Add negation of -fz to + prevent use of Zip64 during streaming from stdin to a non-seekable + output where data descriptors will be used, which allows creating + archives with the old stream format but will fail if a large file is + streamed. Default is still to force Zip64 data descriptors when + streaming, which covers all cases but requires a Zip64 compatible + unzip. zip.c, globals.c, zipfile.c (Ed) + 3. Handle case of bad Unicode in archive. zipfile.c (Ed) +------------------------ May 22nd 2008 version 3.0h12 ---------------------- + 1. Fix bug introduced last beta that prevented streaming large files. Use + separate error message depending on if -fz- was used. zipfile.c (Ed) + 2. Change non existent to nonexistent. unix/configure (SMS) + 3. Don't output blank line when zipmessage_nl() gets passed an empty + string. This removes blank lines for skipped entries when -FS used. + zip.c (Ed) +------------------------ May 27th 2008 version 3.0h13 ---------------------- + 1. Change UNICODE_ALLOW_FORCE to UNICODE_SUPPORT, -UN=force to -UN=UTF8, + and unicode_force to utf8_force. This option now standard with Unicode + support and forces Zip to save UTF-8 paths and comments, when not ASCII, + as if UTF-8 were the native character set. globals.c, zip.c, zip.h (Ed) + 2. Add note to Todo that it's out of date. TODO (Ed) + 3. Update WhatsNew. WHATSNEW (Ed) + 4. Update Unicode help in extended help. zip.c (Ed) + 5. Update announcements. zip30h.ann, zip30.ann (Ed) + 6. Fix bug with -UN=UTF8. zip.c, zipfile.c (Ed) + 7. Update Zip manual. man/zip.1, zip.txt (Ed) + 8. Attempt an update to zip limits document. proginfo/ziplimit.txt (Ed) + 9. Update README regarding forum postings. README (Ed) +10. Remove duplicate initialization lines for found and fnxt. zip.c (SMS) +------------------------ May 28th 2008 version 3.0h14 ---------------------- + 1. Remove >= 0 check from wide character check as value is unsigned. + fileio.c (SMS) + 2. In putlocal(), move nam and use_uname to UNICODE_SUPPORT block. If + no UNICODE_SUPPORT use z->nam instead of nam. zipfile.c (SMS, Ed) + 3. Update announcement date for beta. zip30h.ann (Ed) +------------------------ May 31st 2008 version 3.0h ------------------------ + 1. In putlocal() if using UTF-8 bit then also set UTF-8 bit in z->lflg so + is set in local header for streaming. zipfile.c (Ed) + 2. Update announcement date for beta. zip30h.ann (Ed) + 3. Rename lib and dll projects to zip32z64 and update project files so + project name is same as lib and dll libraries. Export make files. + windll/visualc/dll/zip32z64.dsp, windll/visualc/dll/zip32z64.dsw, + windll/visualc/dll/zip32z64.mak, windll/visualc/libzip32z64.dsp, + windll/visualc/libzip32z64.dsw, windll/visualc/libzip32z64.mak (Ed) +------------------------ June 7th 2008 version 3.0i01 ---------------------- + 1. Update Mac ReadMe to note Mac OS X uses Unix port. macos/readme.1st (Ed) + 2. Change UNIX to Unix in manual. Update dates in manual and add note + about Mac OS X. Change switch to switches. zip.1 (SMS, Ed) + 3. Add version information under Windows by adding a version resource. + win32/vc6/zip.dsp, win32/vc6bz2/zip.dsp, win32/zip.rc (Ed) +------------------------ June 15th 2008 version 3.0i02 ---------------------- + 1. Update Install instructions. INSTALL (Ed) + 2. Update ReadMe. README (Ed) + 3. Update ToDo list. TODO (Ed) + 4. Update WhatsNew. WHATSNEW (Ed) + 5. Add note to WHERE. WHERE (Ed) + 6. Update announcement. zip30.ann (Ed) + 7. Review man pages and update Zip man page. Compile text files from man + pages. man/zip.1, zip.txt, zipnote.txt, zipsplit.txt, zipcloak.txt (Ed) + 8. Update extended help. zip.c (Ed) +------------------------ June 17th 2008 version 3.0i03 ---------------------- + 1. Fix bug where UTF-8 flag was not being set when using_utf8 was set as + result of UTF-8 being current character set. zipfile.c (Ed) + 2. Update man page globbing description. man/zip.1, zip.txt (SMS, Ed) + 3. Update web address to bzip2 package for VMS. vms/install_vms.txt (SMS) +------------------------ June 21st 2008 version 3.0i04 ---------------------- + 1. Update comments. zbz2err.c (Christian) + 2. Put use_uname in UNICODE_SUPPORT block. zipfile.c (Christian) + 3. Increase st to 0x1400. msdos/makefile.msc (Christian) + 4. Update copyright and put @CodeSize and @DataSize into ifndef blocks for + Huge, Large, Compact, Medium, and Small. msdos/match.asm (Christian) + 5. Add check to disable symbolic links. msdos/osdep.h (Christian) + 6. Put Mac OS X compiler check into if Mac OS X block to avoid problems on + some other Unix ports with the check. unix/configure (SMS) + 7. Move set_extra_field() to fix compile problem. unix/unix.c (SMS) + 8. Update USEBZIP2 to USEBZ2 and -DUSE_BZIP2 to -DBZIP2_SUPPORT. Drop + -DMSDOS compile flag. win32/makefile.w32 (Christian) + 9. Change BZIP2_SUPPORT to USEBZ2. win32/makenoas.w32 (Christian) +------------------------ June 23rd 2008 version 3.0i05 ---------------------- + 1. Update and unify resources. Remove any MFC dependencies from the resource + files zip.rc and windll.rc. win32/zip.rc and windll/windll.rc now read + the version info from revision.h. windll.rc internal flags modified to + "32-bit dll". zip.rc internal flags liberated from "winnt 32-bit" + to "generic 32-bit windows". Win32 zip.exe also supported on Win9x + (32-bit). Update makefiles for Borland, MSC, GCC(mingw32), Watcom + to support inclusion of zip.rc version resources into zip.exe binary. + revision.h, msdos/osdep.h, win32/makefile.bor, win32/makefile.gcc, + win32/makefile.w10, win32/makefile.w32, win32/makefile.wat, + win32/makenoas.w32, win32/zip.rc, windll/windll.rc (Christian) + 2. Remove unused files. win32/resource.h, windll/resource.h, + windll/windll.aps, windll/zipver.h, windll/visualc/dll/zip32z64.mak, + windll/visualc/lib/zip32z64.mak (Christian) + 3. Update VMS. vms/descrip_deps.mms (SMS) +------------------------ June 26th 2008 version 3.0i06 ---------------------- + 1. Update Install and Readme in preparation for release. Update WhatsNew. + INSTALL, README, WHATSNEW (Ed) + 2. Update announcement. zip30.ann (Ed) + 3. Update original Visual Basic project comments and documentation. + windll/vb/readmevb.txt, windll/vb/vbzip.vbp, windll/vb/vbzip.vbw, + windll/vb/vbzipbas.bas, windll/vb/vbzipfrm.frm (Ed) + 4. Add bzip2 version of djgpp 2.x makefile thanks to Robert. Assumes a + standard djgpp installation. msdos/makebz2.dj2 (Robert Riebisch, Ed) +------------------------ June 27th 2008 version 3.0i07 ---------------------- + 1. Add DJGPP to bzip2 install instructions. bzip2/install.txt, + msdos/makebz2.dj2 (Robert, Ed) +------------------------- July 5th 2008 version 3.0 ------------------------- + 1. Add -sd to extended help. zip.c (Will, Ed) + 2. Fix memory bug when rebuilding Zip64 central directory extra field which + can crash MinGW and other ports when processing large files. zipfile.c + (Will) + 3. Fix -v bug preventing display of version information when options in + environment variables. zip.c (Ed) + 4. Update WhatsNew. WHATSNEW (Ed) + 5. Update announcement. zip30.ann (Ed) |