What's New

Last updated 20 July 2005 (EG)

See Changes for details.

At release these sections will get combined and updated.  What's
here may get put somewhere else.

Still remaining and planned for Zip 3.0
- Add C# examples (need to be converted to new DLLs)
- Test and fix (if needed) -W option (wildcard matching stops at / in
  paths)
- Create empty archive when -i or -i@ does not match anything
- Detect if version of UnZip is sufficient if Zip is Zip64
- Create optional way to view total status when -q, like dots every 100 MB
- When pattern is directory add end /
- -X should strip non-critical extra fields, -XX all but Zip64
- Fix possible -t and -tt bug when deleting
- -F and -FF being worked on
- Add split support
- Update manual pages
- Unicode filename support

New things in Zip 3.0e (temporary section for developers)
- Bugs described in Debian patches 004 (unix configure script update) and
  005 (large path bug) fixed
- Various fixes
- Add optional running stats and also end stats if not all files could
  be read
- Options -l and -ll now do quick binary check on first buffer and skip
  formatting if first buffer has binary - still check at end to note
  if formatting was done on file that was later determined to be binary,
  but now potential file corruption is generally avoided
- Main binary check now uses new algorithm that should also treat UTF-8 and
  other similar encodings as text, allowing proper line end translation
  for UTF-8 files
- When output is not updatable by seeking back and Zip64 is enabled, output
  is forced to Zip64 to avoid possible later need for Zip64 when not enabled
- More work on splits, but still not usable
- Fixes for djgpp
- Add log file capability to save all errors and optionally messages
- Add code to test for a Zip64 archive when compiled without Zip64 support
- New VC6 projects for Win32 and WinDLL
- Updates to extended help
- Changes to force-zip64 option
- ZE_BIG error now given also for files too big to read or write
- Fix file delete bug
- Update license
- Update export documentation
- Add VMS extended filename support
- Add directory traversal improvements, some for Win32 ports and some for
  all ports, that can result in a 10 times increase in speed in some cases


New things in Zip 3.0d (temporary section for developers)

- Some large file crypt fixes
- Some updates to support WiZ
- On VMS, changed -V (/VMS) processing to truncate file at EOF, allowing
  greater compatability with non-VMS systems.  New -VV (/VMS=ALL) option
  saves all allocated blocks in a file.  (Previously, -V did neither.)
- On VMS, pushed 2GB file size limit with -V out to 4GB
- On VMS (recent, non-VAX), with SET PROCESS /PARSE = EXTEND,
  command-line case is preserved.  This obviates quoting upper-case
  options, like -V, when enabled
- On VMS, fixed problems with mixed-case directory names.  Also changed
  to keep ODS5 extended file name escape characters ("^") out of the
  archived names in simple cases
- Changes to the display dots
- Option -W should now force wildcard matching to not cross directory
  separators.  For example, a/b*r/d will match a/bar/d but not a/ba/r/d
- Option -nw should turn off all wildcard matching so foo[bar] is matched
  literally and [bar] is not considered a regular expression
- Atheos port
- Debugging of Unix and VMS large file ports.  Most features may work now
  on these ports for large files.  Still need to fix 2 GB to 4 GB when not
  compiled with large file support
- On VMS, added an open callback function which (where supported) senses
  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 blocks, was none), and the default mbc is now 127
  (up from 64), speeding creation of a large archive file.  The "-v"
  option shows some of the activity.  On old VMS versions, RMS_DEFAULT
  sensing (GETJPI) fails (silently, without "-v"), and no changes will
  be made.  Even there, (DCL) SET RMS /EXTEND = <big> can help
  performance.  RMS_DEFAULT values override built-in default values.

New things in Zip 3.0c (temporary section for developers)

- Converted to using 64-bit file environment instead of transitional functions
  like fseeko64 for ports that support it
- Added "--" argument to read all following arguments as paths
- Second help page added
- Binary detection adjusted from 20% binary is binary to 2%
- When -R and -i used together now -i has precedence over -R
- Archive names with spaces can now be tested on MSDOS and Win32

New things in Zip 3.0b (temporary section for developers)

- Fixed ifdefs so can test base code by compiling with NO_LARGE_FILE_SUPPORT, then
  compiling with NO_ZIP64_SUPPORT to test 64-bit file calls (if port enables) but
  otherwise use base code, and compiling normally to enable Zip64 code
- Unix Zip64 fixes - should now be able to create and read large files
- WinDLL changes to support Zip64.  Zip 3.0 dll named Zip32z64.dll
- New VB example to show use of Zip32z64.dll
- New options -sc (show final command line and exit) and -sd (show each
  step zip is doing, a little different than verbose which is still there) added
  to help debug but both or at least -sd might go away in the release
- Some minor posted bugs fixed (see Changes)

New things in Zip 3.0a (temporary section for developers)

- Initial Zip64 support allowing large files and large numbers of files
- New command line processor
- Other changes, see file Changes

New things in Zip 2.3

- IBM OS/390 port (Unix like, but EBCDIC) by Paul von Behren
- Apple Macintosh (MACOS) port by Dirk Haase
- Theos port by Jean-Michel Dubois
- Multibyte characterset support by Yoshioka Tsuneo
- Support for ISO 8601 date format with -t and -tt options
- Info-ZIP license

New things in Zip 2.2

- BEOS port by Chris Herborth
- QDOS port by Jonathan Hudson
- TANDEM port by Dave Smith
- WINDLL port (16-bit Win 3.x and 32-bit WinNT/Win95) by Mike White
- SYSV packages support by John Bush
- zip -P SeCrEt encrypts entries in the zip file with password SeCrEt
  (WARNING: THIS IS INSECURE, use at your own risk)
- zip -R recurses into subdirectories of current dir like "PKZIP -rP"
- zip -x@exclude.lst excludes files specified in the file exclude.lst
- zip -i@include.lst includes files specified in the file include.lst
- zip -@ only handles one filename per line, but supports whitespace in names
- zip -t mmddyyyy, 4 digit year number for uniqueness of years beyond 2000
- zip -tt mmddyyyy only includes files before a specified date
