UnZip, version 6.00c BETA, 19 November 2005

Features added (or removed):

6.00a ():
 - Many changes by Myles

6.00b (12 Nov 04):
 - Added dll changes from Mike White.  [Mike White (MW), Ed Gordon (EG)]
 - Added Unix Large File Support but must be enabled manually.  [EG]
 - Humble beginnings of adding configure script to Unix port to
    autoconfigure large file support.  [EG]
 - VMS changes, including large file support, better handling of
   -V and new -VV options, revised build procedures, and
   documentation updates.  [Steven Schweda (SMS)]
 - file_size added to process.c to handle files sizes larger
   than 2 GB more cleanly when no large file support.  [SMS]
 - Large file debugging on Unix and VMS.  [SMS, EG]
 - Split w32i64.h with large file includes for dll [EG]

6.00c (1 Feb 05):
 - Various Amiga and Win32 changes (see files).  [Paul Kienitz (PK)]
 - Add NOSHARE compile option for VMS.  [SMS]
 - Updates to windll (list.c, structs.h, uzexampl.c, uzexampl.h, windll.aps,
   windll.c, windll.h, windll.rc, windll.txt, sfxwiz.c) to add VB support
   for Zip64 to dll [MW]

6.00c (14 Feb 05):
 - Added ODS5 extended file name support for VMS.  (Eight-bit-only, no
   Unicode.)  Zip name character "?" is mapped to VMS name character
   "/".  ODS2 file names are now explicitly upper-case. [SMC]
 - New VMS option, -2 (/ODS2), forces ODS2-compatible file names even
   when the destination file system is ODS5. [SMC]
 - New VMS option, -Y (/DOT_VERSION), causes archived file name endings
   of ".nnn" (where "nnn" is a decimal number) to be treated as if they
   were VMS version numbers (";nnn").  Example: "a.b.3" -> "a.b;3". [SMC]

6.00c8 (08 May 05):
 - Added optional BZIP2 support, using the free BZIP2 library. Enabled
    by defining the compile time option USE_BZIP2. [Johnny Lee]
 - Revised optional ZLIB support to use the new zlib 1.2.x callback interface
    when available (significant performance gain, now faster than UnZip's
    built-in decompression code) [Christian Spieler]
 - Added interface into zlib's unsupported "inflate9" callback code (a contri-
    buted extension in zlib 1.2.x), for extracting Deflate64 entries. Enabled
    by defining the compile time option HAVE_ZL_INFLAT64. [Christian Spieler]
 - windll: added separate entry point Wiz_SingleEntryUnzipList for VB support,
    changed Wiz_SingleEntryUnzip back to 5.x version [Christian Spieler]

6.00c9 (15 May 05):
 - NO feature changes.

6.00c10 (21 May 05):
 - WinCE port: Adapted PocketUnzip to UnZip6 code and enabled Zip64 support
    for the WIN32 (non-WinCE) targets. [Chr. Spieler]

6.00c11 (23 May 05):
 - NO feature changes.

6.00c12 (15 Aug 05):
 - windll/csharp: new example project for .NET framework 1.1, written in C#.
    (currently unsupported by the Info-ZIP group) [Adrian Maull]
 - MSDOS port: added warning message when used in an (32/64-bit) Windows
    virtual MSDOS process; currently only shown when an error or warning
    occured.  [Johnny Lee, Chr. Spieler]

6.00c13 (02 Oct 05), 6.00c14 (15 Nov 05), 6.00c15(17 Nov 05):
 - NO feature changes.

6.00c (19 Nov 05):
 - NO feature changes.

Bugs fixed:

6.00b (12 Nov 04):
 - Output bug fixes to account for sizes > 2 Gb and < 4 GB.  [EG]
 - Bug fixes in ZipInfo.  [EG]
 - Reverted unix.c to an older version to make
    calls to defer_dir_attribs compatible.  Also needed to rework
    win32.c to make compatible.  Probably broke NT but haven't tested.
    Need to trace out and fix.  [EG]

6.00c (1 Feb 05):
 - Various bug fixes (see files gbloffs.c, process.c, unzpriv.h, amiga/amiga.h,
    amiga/filedate.c, amiga/flate.a, amiga/makefile.azt, and win32/w32cfg.h).
    [PK]
 - Some type changes in globals.h.  [SMS]

6.00c (14 Feb 05):
 - Disambiguated some identical VMS error messages. [SMC]

6.00c8 (08 May 05):
 - extract.c, unzip.c, unzpriv.h: Some tweaks and corrections to the optional
    BZIP2 support [Christian Spieler]
 - VMS, cmdline.c unz_cli.cld: fixed the completely broken addition of
    the /ODS2 and /DOT_VERSION options [Christian Spieler]
 - Merged in all additions and fixes of the UnZip 5.5x code tree from
    UnZip 5.50i up to UnZip 5.52 release.  Removed History.5?? files.
    Removed all History.600 entries that have been covered by fixes from
    the UnZip 5.5x code.
    For detailed ChangeLog see History.550, History.551, and History.552,
    as found in unzip552.zip source distribution and the UnZipHist.zip
    ChangeLog archive.  [Christian Spieler]
 - crypt.[ch]: updated to 2.10 (synchronized with zip 2.31) [Christian Spieler]
 - envargs.c: do not declare getenv() for "modern" compilers [Cosmin Truta]
 - extract.c: better echo message for CR or LF at overwrite prompt [Cosmin?]
 - fileio.c: added specific message for SIGILL in handler()  [Chr. Spieler]
 - process.c: fixed code of optional USE_STRM_INPUT variant [Chr. Spieler]
 - VMS, vms.c: requires "-vv" instead of only "-v" to enable VMS diagnostic
    output (enable DIAG_FLAG for vflag >= 3, only; DIAG output is not available
    for the unzip modi "extract to disk" and "zipinfo") [Christian Spieler]
 - VMS cli interface: added (undocumented) option modified /FULL=DIAGNOSTICS to
    control "-vv" diagnostic messages [Steven M Schweda, Christian Spieler]
 - WIN32/MSDOS (maybe others): fixed abort exception handling for CTRL-BREAK
    [Christian Spieler]
 - revised ecrec64 search logic: ecrec64 need not be present when one of
    the ecrec fields is filled with all 1's.  [Christian Spieler]
 - added user-defined types for 8-byte and 4-byte Zip archive (unsigned)
    quantities [Christian Spieler]
 - MSDOS 32-bit port revitalized [Christian Spieler]
 - windll: changed interface definition to be independent of compile/feature
    configuration [Christian Spieler]
 - man/unzip.1: Typo corrections [anonymous DEBIAN contribution, Santiago Vila]
 - man/unzip.1: removed duplicated quotes from VMS example in environment
    variable section [Steven M. Schweda]

6.00c9 (15 May 05):
 - zipinfo.c, list.c: fix the structure check for correct end-of-central dir
    to be aware of Zip64 extensions [Christian Spieler]
 - windll, sfxgui: synchronize function definitions with changed windll
    interface [Mike White]
 - extract.c, fileio.c, process.c: fixed USE_STRM_INPUT variant of file
    position seeking [Christian Spieler]
 - process.c - file_size(): changed scope into static; added non-USE_STRM_INPUT
    variant that uses zlseek instead of zfseeko and zftello; do not include in
    SFX stub; do not compile function definition when not used [Chr. Spieler]
 - unzpriv.h: revised and cleaned up setup definitions for zstat, zfstat and
    other 64-bit configuration macros [Christian Spieler]
 - win32/w32cfg.h: revised automatic ZIP64 support enabling logic and compiler-
    specific configuration; turned off ZIP64 support for lcc and BorlandC
    because of missing LARGE_FILE support; verified LARGE_FILE support for
    Watcom C and MinGW [Chr. Spieler]
 - win32/win32.c: fixed type specification in zstat_win32() [Chr. Spieler]
 - win32/win32i64.c: do not include seek replacement functions when not needed
    [Christian Spieler]
 - zipinfo.c: adapted verbose printouts to longer number printings of Zip64-
    enabled UnZip; fixed extra-space detection in zi_long() by moving the
    extra-field read in front of the offset comparison [Christian Spieler]

6.00c10 (21 May 05):
 - zipinfo.c - zi_long(): fixed expression for detecting 64-bit local entry
    offset [Chr. Spieler]
 - process.c - find_ecrec64(): added type-casts to shut up conversion warnings,
    removed code that clobbered the ecrec signature "pseudo-constant" by
    overwriting it with the ecrec64 signature (this bug broke the reentrancy
    of the dll code) [Chr. Spieler]
 - win32/win32.c, unzpriv.h: adapted SetFileSize for 64-bit offsets[C. Spieler]
 - extract.c, fileio.c, process.c: removed unneeded (FILE *) type-casts in
    calls to zfseeko() and zftello() [Chr. Spieler]
 - extract.c, list.c, zipinfo.c, unzpriv.h: use symbolic constants for the
    16-bit and 64-bit masks in the checks for zip entry count consistency
    [Steven M. Schweda, Chr. Spieler]
 - process.c: reorganized the extended Zip filesize-checking code (for > 2GB
    detection) by moving it behind the open_infile () call and using the
    already opened global zipfile handle [Steven M. Schweda, Chr. Spieler]
 - fileio.c: allow output redirection to memory when ZIP64_SUPPORT is enabled
    [Chr. Spieler]
 - windll: synchronized uzexampl.c and uzexampl.h with current windll interface
    declarations [Chr. Spieler]

6.00c11 (23 May 05):
 - process.c: fixed bugs in last filesize-checking revision (added missing
    semi-colon, synchronized file_size() call with its prototype declaration
    [Steven M. Schweda, Chr. Spieler]

6.00c12 (15 Aug 05):
 - VMS port: updated the dependancy build routines (*.mms, *.com) and the VMS
    install documentation (INSTALL) [Steven M. Schweda]
 - api.c - redirect_outfile(): initialize check_conversion variable in the
    non-textmode case [Chr. Spieler]
 - process.c, extract.c: moved the crctab initialization and check of the
    extraction root dir from do_seekable() further down the call tree into
    extract_or_test_files() [Chr. Spieler]
 - extract.c - extract_or_test_entrylist(): moved central-vs-local consistency
    checks behind the local Zip64-e.f. code [Chr. Spieler]
 - fileio.c - do_string() bugfix: do not call getZip64Data() when previous
    allocation of extra field buffer has failed [Chr. Spieler]
 - inflate.c - inflate_dynamic(): free table-decoding huft-tree when exiting
    prematurely from the literal/distance tree data reading because of invalid
    compressed data [Rudolf Lechleitner, Chr. Spieler]
 - unzip.c - uz_opts(): local variable "error" should only take boolean values,
    no PK error codes (cosmetic correction) [Chr. Spieler]
 - vms/vms.c, process.c: modified handling of VMS do_wild() lookup errors to
    give more helpful messages to the end user [Steven M. Schweda]
 - unix/zipgrep: fixed security hole by handling shell metacharacters like '|'
    and '&' properly when they occurred in input file names [Greg Roelofs]
 - match.c: copied and adapted optimization for "*fixedstring" patterns from
    the Zip code into recmatch(); provided two local helper functions isshexp()
    and namecmp() for this optimization [Johnny Lee, Chr. Spieler]
 - Where: used the newer version from UnZip 5.52 [Chr. Spieler]

6.00c13 (02 Oct 05):
 - AOS/VS, Atari, AtheOS, BeOS, UNIX: fixed symlink code by avoiding fclose()
    on NULL handle in extract.c [Dan Yefimov]
 - AOS/VS, Atari, AtheOS, BeOS, UNIX (and unzpriv.h, fileio.c): modified the
    symlink code to use the opened outfile handle for re-reading the symlink
    target data; modified open_outfile to allow read access on outfile handle
    (security fix against "ToCToU" vulnerability) [Chr. Spieler]
 - UNIX (unix.c, Makefile, configure): fixed "ToCToU" security vulnerability
    in close_outfile by using fchown() & fchmod() instead of chown() & chmod()
    (only when available); added check for function existence to configure
    [Dan Yefimov, Matthias Scheler, Chr. Spieler]
 - fileio.c - open_outfile(): deny access for group&world to currently open
    outfile on all systems that support umask() (AOS/VS, Atari, AtheOS, BeOS,
    QDOS, Tandem, UNIX) [Chr. Spieler]
 - fileio.c: added WriteTxtErr() macro to allow differenciating between
    text-mode write function calls (in UzpMessagePrnt()) and binary write calls
    (everywhere else)  [Chr. Spieler]
 - fileio.c, VMS only: use fprintf() instead of (f)write in WriteTxtErr(), to
    work around RMS record handling problem (e.g. when using PIPE to redirect
    messages) [Steven M. Schweda]
 - UNIX port: revised unix/configure and unix/Makefile for better integration
    of automatic configuration in the build procedure [Chr. Spieler]

6.00c14 (15 Nov 05):
 - VMS, descrip.mms: repaired CLEAN_ALL target which did not always delete
    all expected files  [Steven M. Schweda]
 - unzip.c, fixes for online help screen: corrected "-v" description and moved
    it from modifier section into options section, added description of "-T"
    option, removed the "DLL && API_DOC"-only description of the "-A extended
    API help" option [Chr. Spieler, Steven M. Schweda]
 - man/unzip.1: minor corrections in wording of "-v" option description
    [Chr. Spieler, Steven M. Schweda]

6.00c15 (17 Nov 05):
 - vms/vms.c: fixed do_wild() logic error introduced in August 2005,
    sys$search fails (at least on VAX) when not preceeded by a sys$parse
    call with "syntax-check-only" flag cleared [Steven M. Schweda]
 - process.c: cosmetic change in process_zipfiles() to shut-up gcc warning
    on non-UNIX (non-QDOS) systems [Chr. Spieler]

6.00c (19 Nov 05):
 - extract.c, bzip2 support: fixed missing ";" error (was only a problem
    when enabling BZIP2 support without LARGE_FILE support); added some
    (cosmetic) typecasts to shut up compiler warnings [Steven M. Schweda]
 - VMS support for BZIP2 decompression: updated make procedures and scripts,
    added "find_bzip2_dir" helper script and bzlib.h include file wrapper
    [Steven M. Schweda]

==================

These changes occurred in beta versions 6.00a to 6.00c.  This list may have
left out some bugfixes and even some features...void where prohibited, your
mileage may vary, etc., etc.
