mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 23:13:34 +00:00
333 lines
15 KiB
Text
333 lines
15 KiB
Text
What's New
|
|
|
|
Last updated 1 July 2008
|
|
|
|
This file is the full list of new features and major changes for Zip 3.0
|
|
by beta release. See the announcement file zip30.ann for a quick summary
|
|
of all features and changes in Zip 3.0. Also see the file README for
|
|
release information, INSTALL for installation procedures, and the manual
|
|
pages zip.txt, zipsplit.txt, zipcloak.txt, and zipnote.txt for how to use
|
|
the new features. The file CHANGES has all the day-to-day changes made
|
|
during development.
|
|
|
|
|
|
Below are some of the more significant items on the list for Zip 3.1
|
|
(see ToDo for a more complete list):
|
|
|
|
- AES encryption.
|
|
- Extended attributes for Windows, Linux, and Mac OS X.
|
|
- Support -d@ for deleting list of files.
|
|
- Decide if -R, -i and -x should use external rather than internal patterns.
|
|
- Though Unicode paths have been implemented and tested, Unicode comments
|
|
are not yet supported (except for comments on UTF-8 native systems which
|
|
are supported).
|
|
- Verbose mode -v may still need work.
|
|
- When pattern is directory add end / automatically.
|
|
- Add C# example for Zip 3.0 (need to be converted to new DLLs) - original
|
|
C# example added with note.
|
|
- Path Prefix maybe, so entries added to an archive can have a directory
|
|
path string prepended to each path.
|
|
- UNC path support maybe.
|
|
- Support for other languages maybe.
|
|
- Send in your suggestions.
|
|
- ...
|
|
|
|
|
|
MAJOR CHANGES BY BETA VERSION
|
|
-----------------------------
|
|
|
|
New things in Zip 3.0 since Zip 3.0h:
|
|
|
|
- Unicode fixes.
|
|
- Test and fix various ports as needed.
|
|
- Update Win32 resource to support more Windows ports.
|
|
- Add djgpp 2.x makefile that includes bzip2.
|
|
- Add Win32 version resource to Win32 executable.
|
|
- Bug fixes.
|
|
- Documentation updates.
|
|
- Package for release.
|
|
|
|
|
|
New things in Zip 3.0h
|
|
|
|
- Allow -@ and -x to work together.
|
|
- Unicode code cleanup.
|
|
- Allow forcing use of UTF-8 storage in standard path and comment.
|
|
- Update symbolic link checks.
|
|
- Add support for storing 32-bit UIDs/GIDs using new extra field.
|
|
Backward compatible support for the old 16-bit UID/GID extra field
|
|
remains if Zip is compiled on an OS that has 16-bit UID/GID
|
|
storage.
|
|
- Update VMS notes.
|
|
- Directory scan using -AS (include only files with Windows archive
|
|
bit set) now ignores archive bit on directories to include all files
|
|
with archive bit set in all directories. Also, to avoid empty
|
|
directories being created, -AS now does not store directory
|
|
entries.
|
|
- Add Unix IBM support.
|
|
- Change -W to -ws to free -W for later use.
|
|
- Fix large file support for MinGW.
|
|
- Fix large file support for bzip2.
|
|
- Fix compile error in ZipCloak when UNICODE_SUPPORT is not enabled.
|
|
- Fix Unicode bug in ZipCloak involving Unicode paths.
|
|
- Long Unicode escapes changed from #Lxxxxxxxx to #Lxxxxxx to shorten
|
|
paths with escaped Unicode.
|
|
- Bug fixes.
|
|
|
|
|
|
New things in Zip 3.0g
|
|
|
|
- Add split support to VB project for Zip64.
|
|
- Disable reading of Unix FIFOs unless new -FI option used to avoid an
|
|
archiving operation stopping when it hits an active unfed FIFO.
|
|
- The "[list]" wildcard expression (regular expression matching of any
|
|
character or range of characters in list) is now disabled on DOS and
|
|
Windows as it has caused confusion when filenames have [ and ] in
|
|
them. The new -RE option reenables it.
|
|
- Add negation to many display options such as -dc and -db.
|
|
- Allow -FF to read and fix archives having local entries that appear
|
|
after central directory entries.
|
|
- Bug fixes.
|
|
|
|
|
|
New things in Zip 3.0f
|
|
|
|
- bzip2 - The bzip2 compression method looks supported for at least
|
|
Windows, Unix, and VMS using the bzip2 library. A new option, -Z cm,
|
|
selects the compression method.
|
|
|
|
- Split archives - Can now use -s to create a split archive. The
|
|
default is to update split files as the archive is being written,
|
|
which requires all splits to remain open until the archive is done.
|
|
This should be no problem when writing the archive to a hard drive,
|
|
for example, and this approach creates archives that should be
|
|
supported by all unzips that support splits. Adding the -sp option
|
|
enables split pause mode that instead writes splits that do not
|
|
need updating and pauses Zip after each split. This allows splits
|
|
to be written directly to removable media, however -sp archives
|
|
may not be as universally compatible.
|
|
|
|
- Unicode support - Zip now stores Unicode paths that should be more
|
|
portable across character sets and languages. The unzip must have
|
|
Unicode support enabled or the Unicode paths are ignored. If
|
|
reading an archive with Unicode paths, unsupported characters are
|
|
replaced by #Uxxxx and #Lxxxxxxxx escapes in the file name. Option
|
|
-UN controls how Unicode is handled. Also, on systems where the
|
|
current character set is UTF-8, preliminary support for the new
|
|
General Purpose Bit Flag, bit 11, UTF-8 flag, that indicates UTF-8
|
|
is stored in the path and comment fields is implemented for paths.
|
|
- Unicode on Win32 - On WIN32 systems that support the wide character
|
|
calls (mainly NT and later systems using NTFS), when UNICODE SUPPORT
|
|
is enabled Zip will now do directory scans using Unicode and convert
|
|
the Unicode paths to the local character set for storage in the standard
|
|
path field and store UTF-8 in the Unicode extra field. This allows
|
|
directory scans to complete successfully regardless of the character
|
|
set the path is in. On Win9x systems wide character scans are not
|
|
generally supported and Zip automatically uses a local character scan
|
|
instead.
|
|
|
|
- Keep extra fields option - The default operation has been, and continues
|
|
to be, to read then strip old extra fields when reading entries from an
|
|
existing archive and then recreate the extra fields that Zip knows about.
|
|
Extra fields specific to each operating system get added by default also.
|
|
The new option -X- (negated -X) keeps any old extra fields, copying
|
|
them to the updated archive unchanged (unless Zip has updated them).
|
|
The unnegated -X still strips most all extra fields except Zip64,
|
|
Unicode, and UT time.
|
|
|
|
- License - minor updates to the license.
|
|
|
|
- Windows OEM - When compiled with WIN32_OEM (the default for WIN32),
|
|
Zip on WIN32 now stores OEM paths, which should be more compatible
|
|
with other zips and should fix some character set problems.
|
|
- Windows Archive Bit support - On Windows can now use new -AS
|
|
(include if archive bit set) option to select files with the DOS
|
|
archive bit set and use new -AC (clear archive bits) option to clear
|
|
the archive bits on files after the archive has been created.
|
|
But -DF is probably better.
|
|
|
|
- Difference mode - A new option -DF (--dif) creates an output archive
|
|
that includes only files changed or new since the input archive was
|
|
created. Can use to create incremental backups.
|
|
- File Sync - The new option -FS enables File Sync, a new mode that
|
|
synchronizes the entries in an archive with the files on the file
|
|
system, adding updating, and deleting entries as needed. This
|
|
should create the same results as creating a new archive, but
|
|
since existing entries are copied, may be much faster.
|
|
|
|
- Copy Mode - A new --out option allows creating a new archive with a
|
|
different name than the input archive, leaving the input archive
|
|
unchanged. This allows updating split archives. It also allows
|
|
for a new copy mode to select entries in one archive and copy them
|
|
directly to a new archive.
|
|
- Empty archives - Now an empty archive is created when -i or -i@ is used
|
|
and the file patterns given do not match anything. This has been
|
|
requested to support scripts.
|
|
|
|
- Global dots - A new -dg option now displays progress dots as -dd does,
|
|
but instead of displaying them for each file, the dots track the total
|
|
bytes read for the archive. The -dg option also works when -q is used
|
|
to disable most output, which allows for something like zip -qdgds 100m
|
|
to be used to not display specific files but display a dot every 100 MB
|
|
as a global status.
|
|
- Date range - Can now use -t and -tt to set a date range
|
|
- Fix options - Option -F redone and can recover files from an archive
|
|
with a mostly complete central directory more reliably, but no longer
|
|
can handle truncated archives. Option -FF redone and now can salvage
|
|
files from slightly more damaged archives, including truncated archives.
|
|
In some ways -F is less powerful but more stable than it was and -FF will
|
|
be needed where -F in Zip 2.32 was enough. One big change is -F and -FF
|
|
both now support split archives.
|
|
- Console writing - Updates to how messages are written to the console have
|
|
been made including more consistent handling of line breaks.
|
|
- Show Files options - Option -sf lists the files that would be operated
|
|
on. This option can be used alone to list the files in an archive.
|
|
Also see options -su and -sU for showing Unicode paths.
|
|
- UnZip Check - Now check that UnZip 6.00 or later is being used for
|
|
unzip if testing a Zip64 archive. A new option -TT can be used to set
|
|
the unzip to use with the -T check. Currently UnZip does not support
|
|
split archives so split archives can't be tested by UnZip.
|
|
- Streaming - Directories are now handled better when streaming.
|
|
- Case matching - Normally all matching against archive entries is case
|
|
sensitive, so *.BAR will not match or find foo.bar in an archive
|
|
when deleting, copying, or freshening entries (deleting and copying
|
|
only on VMS). New option -ic (--ignore-case) enables case insensitive
|
|
matching. Currently -ic is only implemented on WIN32 and VMS.
|
|
|
|
- Delete date bug fixed - Bug when using -d to delete files while
|
|
using -t or -tt to select the files based on date is fixed
|
|
- Large file encryption bug fixed - Fix for bug that very rarely
|
|
results in bad data being stored when deflating and encrypting
|
|
uncompressable data and resulting in CRC errors when extracting,
|
|
but the chance of error increases with file size (thanks to
|
|
WinZip for finding this bug). See CHANGES for details.
|
|
|
|
|
|
New things in Zip 3.0e
|
|
|
|
- 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
|
|
|
|
- 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
|
|
|
|
- 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
|
|
|
|
- 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
|
|
|
|
- Initial Zip64 support allowing large files and large numbers of files
|
|
- New command line processor
|
|
- Other changes, see file Changes
|
|
|
|
|
|
Note: Zip 2.4 was never released. That code was the start of the Zip 3.0
|
|
effort above.
|
|
|
|
|
|
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
|