UnZip, version 6.10, -- ----- 2010

Features added (or removed):

6.10a00 (5 Jul 2010):
 - Copy over UnZip 6.00 and rename as UnZip 6.10a00.  [EG]

6.10a01 (5 Jul 2010):
 - No feature changes.

6.10a02 (10 Jul 2010):
 - Add new command parser code from new-cmdparser/unz6-newcmdparser-diffs.txt,
    which is a modified version of the new Zip parser.  Some modifications to
    account for changes in UnZip since code was written.  UnZip now supports
    use of get_option() to parse the command line, adding support for a
    command table and long options.  Command parsing now mostly similar to
    that used in Zip, but most of UnZip syntax preserved.  One big difference
    is inverting an option (making negative) is now done by a trailing "-"
    instead of a leading one.  See the long help and the manual for the
    current syntax of these and all commands.  (unzip.c, unzpriv.h, zipinfo.c,
    vms/cmdline.c) [EG]
 - Changed zipgrep to cope with the new command parser.  Added environment
    variable ZIPGREP_UNZIP to let the user specify a particular UnZip program
    to use.  (unix/zipgrep) [SMS]
 - Add new option --license to show the license and note added to short help
    displayed when no command arguments that this new option exists.  Allows
    distribution of UnZip under the current Info-ZIP license without additional
    documentation.  Calls show_license().  (unzip.c) [EG]
 - Add preliminary support for AppleDouble storage of resource information on
    Mac platforms.  (extract.c, fileio.c, globals.h, unzip.c, unzip.h,
    unzpriv.h, unix/unix.c) [SMS]
 - Add VMS symlink works check.  (extract.c) [SMS]
 - Add new option --options to show all available options.  (unzip.c) [EG]
 - Add strerror() if port does not have one.  Add check for mbstr.h.
    (unzpriv.h, unix/configure, unix/unix.c) [SMS]
 - Add uname calls to get system identification.  (unix/configure, unix/unix.c)
    [SMS]
 - Add control of UID/GID and SGID using X_flag and K_flag.  (unix/unix.c,
    vms/vms.c) [SMS]
 - Add verbose report.  (vms/cmdline.c, vms/unz_cli.cld) [SMS]
 - Update VMS notes.  (vms/notes.txt) [SMS]
 - VMS return code updates and allow restoring old status codes.  (vms/vms.c)
    [SMS]

6.10a03 (30 Jul 2010):
 - fnfilter() now converts to a wide character string and does the isprint()
    check on that, avoiding the issue of doing the check on multi-byte
    characters.  (extract.c, win32/win32.c, unzpriv.h, process.c) [EG]
 - Update TODO list.  (ToDo) [EG]

6.10a04 (5 Aug 2010):
 - Updated INSTALL with latest information. [SMS]
 - Remove 8-bit ASCII characters from ToDo. Add items. [SMS]
 - Add ZipInfo "C" option to command table.  (unzip.c) [SMS]
 - Add new option --commandline to show the processed command line and exit.
    Add new function show_commandline(). Update extended help.  (unzip.c,
    fileio.c, unzip.h, zipinfo.c) [EG]

6.10a05 (8 Aug 2010):
 - No feature changes.

6.10a06 (9 Aug 2010):
 - Update version information in description file.  (file_id.diz) [EG]

6.10a07 (10 Aug 2010):
 - Add announcement file.  (unzip610a.ann) [EG]
 - Replace /[NO]CASE_INSENSITIVE with /CASE_MATCH.  (vms/unzip_cli.help,
    vms/unz_cli.cld) [SMS]

6.10a (23 Aug 2010):
 - Add note to README.  Update announcement.  (README, unzip610a.ann) [EG]

6.10b01 (12 Sep 2010):
 - Restore full Windows Unicode support based on diff in win32-experimental
    directory.  Mainly involved adding wide character OS calls to Windows
    port code.  WIN32_WIDE must be defined for the new code to be used, but
    this should be the default on Windows platforms from NT on.  Currently
    Windows 9x Unicode is partially supported, but this support may be pulled
    to clean up the code.  Some of the new functions include check_for_newerw()
    has_win32_wide(), wchar_to_wide_string(), wchar_to_local_string(),
    iswildw(), zstat_win32w(), getNTfiletimeW(), defer_dir_attribsw(),
    set_direc_attribsw(), FStampIsLocTimeW(), mapnamew(), checkdirw(),
    NTQueryVolInfoW(), maskDOSdevicew(), extract_or_test_entrylistw(), and
    map2fatw().  (extract.c, fileio.c, process.c, match.c, globals.h, unzip.c,
    unzpriv.h, win32/nt.c, win32/nt.h, win32/w32cfg.h, win32/win32.c,
    win32/vc6/funzip.dsp, win32/vc6/unzip.dsp, win32/vc6/unzipbz2.dsp,
    win32/vc6/unzipsfx.dsp, windll/vc6/dll/unz32dll.dsp) [EG]

6.10b02 (16 Sep 2010):
 - Implement -I (--iso-char-set) and -O (--oem-char-set) options to allow user
    to set a specific ISO or OEM character set that UnZip should translate
    from to create the internal file name strings.  Based on the
    unzip60-alt-iconv-utf8.patch suggested in a forum thread.  This patch is
    rather simple, just providing the new options to manually set the input
    character set (generally OEM if archive from Windows and ISO otherwise).
    These options are currently only available on Unix.  This is separate from
    the Unicode implementation that allows direct conversion between character
    sets and bypasses these new options if an entry has Unicode.  These options
    are only for converting names from older archives without stored UTF-8 to
    names that are readable on a Unix platform.  This implementation includes
    a short table to automatically guess the code page for a few common
    locales.  More locales can be added later, and a more complete solution
    might be implemented later based on something like the libnatspec or
    librcc libraries.  However, the goal is for everyone to move to zippers
    that support UTF-8 so these options are no longer needed.  Enabled by
    setting the USE_ICONV_MAPPING macro.  Uses the iconv library which must be
    available.  (unzip.c, zipinfo.c, unix/unix.c, unix/unxcfg.h) [EG]

6.10b03 (6 Nov 2010):
 - No feature changes.

6.10b04 (25 Nov 2010):
 - Resurrected Acorn port by rewriting/updating the makefiles, replacing
    srcrename utility with 32bit compatible BASIC equivalent, replacing APCS-R
    swiven.s file with more portable C version, and updating contents & readme
    files with compilation instructions for the latest compilers.  Fixed a few
    compiler warnings/errors and swapped the os_error struct for the standard
    _kernel_os_error.  (acorn/makefile, acorn/GMakefile, acorn/srcrename,
    acorn/acorn.c, acorn/riscos.c, acorn/riscos.h, acorn/swiven.c,
    acorn/swiven.h, acorn/Contents, acorn/ReadMe, acorn/RunMe1st updated.
    acorn/swiven.s deleted.) [Jeffrey Lee]
 - Acorn port: Increased max file name/path length to 1024.  (acorn/riscos.h)
    [Jeffrey Lee]
 - Acorn port: Increased max file name/path length to 1024.  (acorn/riscos.h)
    [Jeffrey Lee]
 - Acorn port: Added SET_DIR_ATTRIB support, so that directories are created
    with the right timestamps/attributes.  (acorn/riscos.h, acorn/acorn.c)
    [Jeffrey Lee]
 - Minor edits to Contents.  (acorn/Contents) [EG]
 - Update VB6 example project to add more comments, change some form object
    sizes, and update GUI handling of listing and extracting.  Update readme.
    (windll/vb/vbreadme.txt, windll/vb/vbunzip.bas, windll/vb/vbunzip.frm,
    windll/vb/vbunzip.vbp) [EG]
 - Add announcement file for UnZip 6.10b.  (unzip610b.ann) [EG]

6.10b05 (29 Nov 2010):
 - No feature changes.

6.10b06 (3 Dec 2010):
 - Updated INSTALL and README.  (INSTALL, README) [EG]

6.10b07 (5 Dec 2010):
 - No feature changes.

6.10b (10 Dec 2010):
 - No feature changes.


Bugs fixed:

6.10a00 (5 Jul 2010):
 - No bug fixes.

6.10a01 (5 Jul 2010):
 - No bug fixes.

6.10a02 (10 Jul 2010):
 - No bug fixes.

6.10a03 (30 Jul 2010):
 - Fixed compile problems involving funzip and use of zlib.  (inflate.c) [SMS]
 - Changed SFX to allow --license, but not --options.  Removed some redundant
    "BETA" messages, and an unreachable "return".  (unzip.c) [SMS]
 - Fixed various builder problems involving the use of zlib, or when defining
    BZIP2_SFX to get bzip2 compression support in UnZipSFX.  (unix/configure,
    unix/Makefile) [SMS]
 - Changed some UNIX system ID info to agree with the more precise names used
    by Zip.  For example, "(HP-UX)" -> "(HP-UX B.11.31 ia64)".  (unix/unix.c)
    [SMS]
 - Changed VMS version (";nnn") deletion code to leave ";" (no digits)
    unchanged.  (acorn/acorn.c, amiga/amiga.c, aosvs/aosvs.c, atari/atari.c,
    atheos/atheos.c, beos/beos.c, flexos/flexos.c, human68k/human68k.c,
    macos/source/macos.c, msdos/msdos.c, netware/netware.c, os2/os2.c,
    qdos/qdos.c, tandem/tanunz.c, unix/unix.c, vms/vms.c, win32/win32.c) [SMS]
 - Changed argc+1 to argc to work with new parser.  Removed CMS_MVS 'U' option.
    Changed u0.L_flag-negative to u0.L_flag-1 as negative is now always 0 or 1.
    (unzip.c) [EG]

6.10a04 (5 Aug 2010):
 - Set minimum value of u0.X_flag to -1 instead of 0, allowing flag to take on
    values -1, 0, and 1.  Update -S flag comment.  (unzip.c) [SMS]
 - Change vms_unzip_cmdline() from ulg to unsigned.  (unzpriv.h) [SMS]
 - Add newlines to command parser error messages.  (unzip.c) [EG]

6.10a05 (8 Aug 2010):
 - Change fnfilter() from using code used for Unicode for wide char conversions
    to using standard ANSI wide calls, avoiding dependencies on zwstring and so
    the need to restructure that code so it works in all contexts.  (extract.c)
    [EG]

6.10a06 (9 Aug 2010):
 - Add (char *) casts in fnfilter().  Add (ulg) cast in utf8_to_ucs4_string().
    (extract.c, process.c) [SMS]

6.10a07 (10 Aug 2010):
 - Add more -q- to cancel possible previous -q.  (vms/cmdline.c) [SMS]

6.10a (23 Aug 2010):
 - Worked around a limitation in VAX C V3.1-051 involving "\"-continuation of
    "#if" directives.  Restored lost "-J" to option table on Mac OS X.  Created
    J_FLAG macro to enable -J option.  (unzip.c, unzip.h) [SMS]

6.10b01 (12 Sep 2010):
 - Some fixes to Unicode processing in association with Win32 implementation.
    (See above file list). [EG]

6.10b02 (16 Sep 2010):
 - Avoid ISO/OEM translation if main path has UTF-8 bit set.  Changed == to
    >= in version check.  (unzip.h, fileio.c) [from forum "Info-ZIP Bugs
    > UnZip Bugs > unzip UTF8 on linux" thread.  [(dennislkj), EG]

6.10b03 (6 Nov 2010):
 - Add __G__ to multiple places to fix compile problems if REENTRANT is
    defined.  (process.c, unzip.c, unzip.h, unzpriv.h, zipinfo.c, vms/vms.c)
 - Move local variable uxattr definition higher up.  Set DOS subdir bit if
    entry path ends in "/". Get process RMS_DEFAULT values only if not
    REENTRANT.  (vms/vms.c) [SMS]
 - Change dw->fn to wide version dw->fnw in Trace statement.  Free structure
    values G.unipath_filename and G.unipath_widefilename to help debugging.
    Set G.unipath_widefilename to either translated G.unipath_filename if set
    or translation of standard G.filename, to fix bug where this was not set
    when using Unicode in Win32 and no Unicode for this entry.  (extract.c)
    [EG]
 - Change (1 << 11) to UTF8_BIT macro.  (extract.c, process.c) [EG]
 - Bit 2 of internal attributes for an entry is the PKWare verification bit.
    When this bit is set, a verification checksum is in the first 3 bytes of
    the external attributes.  In this case, only use last byte of external
    attributes by clearing other bytes in G.crec.external_file_attributes.
    (process.c)  [EG]
 - Add check for NO_UNICODE_SUPPORT.  Automatically set WIN32_WIDE on Windows
    if UNICODE_SUPPORT set.  Remove UNICODE_SUPPORT and WIN32_WIDE macros
    from project.  (win32/w32cfg.h, win32/vc6/unzip.dsp) [EG]
 - Some #if #endif formatting.  Long option help updates.  Minor updates for
    -I and -O options.  (unzip.c) [EG]
 - Added missing __G__ to WinDLL function call.  Added missing buffer size
    parameter to DLL *G.lpUserFunctions->replace() callback function.  DLL
    compiles, but needs testing.  (extract.c) [EG]

6.10b04 (25 Nov 2010):
 - See features above for some related bug fixes.

6.10b05 (29 Nov 2010):
 - Fix bug from previous fix where uxattr was not being set reliably.
   (vms/vms.c) [SMS]

6.10b06 (3 Dec 2010):
 - No bug fixes.

6.10b07 (5 Dec 2010):
 - Fix bug by adding missing line end.  (vms/hlp_lib_next.com) [SMS]

6.10b (10 Dec 2010):
 - No bug fixes.


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

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