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.

6.10c01 (15 May 2011):
 - Clarify VMS usage line.  (unzip.c) [SMS]
 - Add compiler test.  (unix/configure) [SMS]
 - Make -s spaces to underscores option generic (unzip.c) [Stan Sieler]
 - Add optional AES encryption compatible with WinZip version (compression
   method 99).  Use Gladman AES implementation.  Note that when the optional
   AES_WG support is not enabled, this still changes the old message:
    skipping: <name>  unsupported compression method 99
   to:
    skipping: <name>  AES_WG encr method not supported
   when trying to extract an AES_WG-encrypted file.
   (crypt.c, crypt.h, extract.c, fileio.c, globals.h, list.c, process.c,
   unzip.c, unzpriv.h, zipinfo.c) [SMS]

6.10c02 (28 May 2011):
 - Add ef_scan_for_aes() and ef_strip_aes() for processing AES extra fields.
   (crypt.c) [SMS]
 - Update zipcloak() and zipbare() to support AES encryption and decryption
   (though technically a Zip update).  (crypt.c) [SMS]
 - Add WIN32 entropy_fun().  Add VCC 6 project for compiling in AES
   encryption.  (crypt.c) [EG]
 - Add AES support to ZipInfo.  Add recognition of flag bit 0x0040.  (Not
   sure if this is correct.)  (zipinfo.c) [SMS]
 - Add support for named parameters to configure.  Add support for AES
   encryption.  (unix/configure, unix/makefile) [SMS]
 - Add AES encryption.  (vms/build_unzip.com, vms/descrip.mms,
   vms/descrip_deps.mms, vms/descrip_mkdeps.mms, vms/descrip_src.mms) [SMS]
 - Add initial VCC6 project for compiling AES on Win32.
   (win32/vc6/unzip.dsp) [EG]
 - Update UnZip to more current Zip version of crypt.c, making modifications
   as needed.  (crypt.c) [SMS]
 - Update testp() and testkey() to support AES.  (crypt.c) [SMS]

6.10c03 (24 Jul 2011):
 - Add AES_WG version to CRYPT_AES_WG line in -v.  (unzip.c, unzpriv.h) [SMS]
 - Add P6 (search vector) and P7 (macro vector) parameters.
   (vms/collect_deps.com) [SMS]

6.10c04 (5 Aug 2011):
 - First attempt at support for LZMA compression (method 14).  (extract.c,
   fileio.c, unzip.c, unzpriv.h, lzma/* (from LZMA SDK), unix/configure,
   unix/Makefile, vms/descrip.mms, vms/descrip_deps.mms, vms/descrip_src.mms)
   [SMS]
 - Create start of zos port.  (zos/zcc, zos/zld) [AD]
 - Modify handling of non-ASCI file names (-I/-O options) to automatically
   guess OEM code page when not already set.  Only some common mappings have
   been added currently.  Only used if USE_ICONV_MAPPING is defined.
   (unix/unix.c) [EG, based on patch by Dmitry Butskoy on Red Hat Bugzilla -
   Bug 225576]

6.10c05 (13 Aug 2011):
 - Add LZMA files needed by UnZip from LZMA SDK version 9.20.  (lzma/7zfile.c,
   lzma/7zfile.h, lzma/7zversion.h, lzma/alloc.c, lzma/alloc.h, lzma/lzfind.c,
   lzma/lzhash.h, lzma/lzmadec.c, lzma/lzmadec.h, lzma/README_LZMA.txt,
   lzma/types.h, lzma/orig/lzfind.h) [SMS]
 - Split cmsmvs port into two ports zos and zvm.  (cmsmvs/* (removed),
   zos/ccunzip.exec, zos/mvs.mki, zos/readme.mvs, zos/unzmvsc.job, zos/vmmvs.c,
   zos/vmmvs.h, zvm/install.cms, zvm/mc.exec, zvm/readme.cms, zvm/unzip.exec,
   zvm/unzip.makefile, zvm/unzvmc.exec, zvm/vmstat.h, zvm/whatsnew.cms,
   zvm/zipinfo.exec) [AD]
 - Drop VMS CASE_INSENSITIVE option as conflicts with CASE_MATCH.  Add NAMES
   option that includes NAMES.LOWERCASE, NAMES.ODS2 (convert names to ODS2),
   and NAMES.SPACES (convert spaces to underscores).  Add CASE_MATCH = BLIND
   (ignore case) or SENSITIVE (don't ignore differences in case).
   (vms/cmdline.c, vms/unz_cli.cld, vms/unzip_cli.help) [SMS]
 - Add note about self-extracting archives.  (vms/install.vms) [SMS]
 - Update VMS help for self-extracting archives.  (vms/unzipsfx.hlp) [SMS]

6.10c06 (24 Aug 2011):
 - Create new Win32 projects for AES_WG and LZMA.  Additional cleanup of
   the Win32 projects is expected before release.  (win32/vc6/unzip.dsp,
   win32/vc6/unzip.dsw, win32/vc6/unzipaes.dsp) [EG]

6.10c07 (12 Sep 2011):
 - Rename vms/INSTALL.VMS to vms/INSTALL_VMS.txt.  Remove much of the
   VMS material already in INSTALL_VMS.txt.  Minor update to Mac OS X
   to note adding of AppleDouble Finder info and resource fork storage.
   (vms/INSTALL_VMS.txt, INSTALL) [SMS]
 - Change default to -D everywhere, not only on VMS.  Update extended
   help.  Update man page.  (globals.c, unzip.c, man/unzip.1) [SMS]

 - Restructure unix build:  Restructure, document, reorganize; recognize IBM
   compilers (z/OS, z/VM, AIX, Linux. iSeries); recognize z/OS system (uname
   -I variant); add $PROD/flags_bz; support build with system zlib, zlib in
   tree; support man and doc generation.  (unix/configure, unix/Makefile) [AD]
 - Correct z/OS build script options parsing.  (zos/zcc, zos/zld) [AD]
 - Add z/OS wrapper script for C preprocessor tests.  (zos/zccp) [AD]
 - For unzip -v, emit IBM compiler OS-specific version.  (unix/unix.c) [AD] 
 - Customize unix build for z/OS UNIX (HAVE_SYS_TIME_H, sys/time.h,
   sys/timeb.h, utime.h, et al).  (unix/unxcfg.h) [AD]
 - Add PORT unix/configure parm, allows reuse by z/OS MVS build (under z/OS
   UNIX) (unix/configure) [AD]

 - Following changes made to unix/configure, mainly to support z/OS port.
   (unix/configure) [AD]
   1.  A new file $PROD/flags_bz is generated containing just the bzip2
       compilation-related flags.  
   2.  UNAME-related flags now in more legible order.
   3.  For z/OS, use "uname -I" to generate current z/OS information.
   4.  Now generates installation flags (BINDIR, BINPERMS).
   5.  Now generates man page flags (MANEXT, MANDIR, MANPERMS);
       unix/Makefile supports generic_man and generic_doc.
   6.  Now generates man page nroff option, currently "-Tascii" or "". 
   7.  Flags renamed for consistency between zip and unzip:
       - CFLAGS    -> CF
       - CFLAGS_BZ -> CF_BZ
       - LFLAGS1   -> LF1  
       - LFLAGS2   -> LF2
   8.  Flags generated are a superset of zip and unzip and include
       additional header checks.
   9.  OSDEP_xxxx flags contain OS-dependent values:
       - OSDEP_C   C source files
       - OSDEP_H   C header files
       - OSDEP_S   Assembler source files
       - OSDEP_OC  Object files (C)
       - OSDEP_OS  Object files (assembler)
       These allows multiple OS-dependent C or assembler source files.
   10. Use consistent configuration, naming and recipes for assembler
       files.
   11. Add $PROD/flags values for program extensions:
       - PMGEXT    Executables
       - DLLEXT    DLLs (Shared objects)
   12. Add $PROD/flags values for RANLIB, RM and LN.
   13. Add $PROD/flags values for AR, required by IBM XLC for AIX 64-bit
       compiles.
   14. Object archive dependencies.  Non-blank if library is required:
       LIB_AES_WG, LIB_LZMA, LIB_BZ, LIB_Z.
   15. ZLIB and BZIP2 support now consistent:
       - Supports build within tree via bzip2/Makefile or zlib/Makefile
         (if present)
       - Supports build with OS-owned libbz2.a (IZ_BZIP2=bzip2, ./bzip2 is
         empty)
       - Supports build with OS-owned libz.a (IZ_ZLIB=zlib, ./zlib is empty)
       - Returns MK_BZ to allow configure to return system-specific BZIP2
         makefile name
   16. Now supports AF for assembler flags.
   17. Support compiler listing options (+ CC on z/OS) for LIST=1.
   18. Cleanup targets now same on zip and unzip (clean, clean_bzip2,
       clean_exe)
   19. All make targets are now explicit for portability; SysV make pattern
       matching is not as powerful as gmane or z/OS make (MKS).
   20. .SUFFIX reset to prevent builds from using default .c -> .o rules.
   21. On z/OS, use CC=c89 (xlc ends with sigkill for failing compiles).
   22. On AIX (with IBM XL C) use CC=c89.
   23. Use unzip nl_langinfo() test instead of following zip test (which
       fails because codeset is not an int).
   24. Add test for sys/param.h (for -DNO_PARAM_H).
   25. Add test for sys/time.h (separate from entry timing).
   26. Add tests for sys/timeb.h and utime.h.
   27. Set z/OS linker flag.s
   28. Add PORT unix/configure parm, allows reuse by z/OS MVS build (under
       z/OS UNIX) [AD]

 - Minor updates to -D option help and option descriptions.  Add warning
   regarding change in option negation (trailing "-" instead of leading).
   Add note that split support should be coming by release of UnZip 6.10.
   Add mention of automatic code page selection in some cases, but can be
   overridden by use of -I and -O.  (unzip.c) [EG]
 - Additional updates to UnZip man page.  (man/unzip.1) [EG]

6.10c08 (22 Nov 2011):
 - Add initial implementation of a user progress on demand feature.
   Uses ENABLE_USER_PROGRESS and USER_PROGRESS_CLASS.  On VMS uses
   control-T as the user request key sequence and uses signal
   SIGUSR1 as the monitored signal that results in signal handler
   user_progress() being called.  Add option -si to enable progress
   feature that shows PID.  Uses getpid() to get PID.  (unzip.c) [SMS]
 - Include signal.h to support on-demand progress indicator.  Define
   establish_ctrl_t().  (unzpriv.h, vms/vms.c) [SMS]




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.

6.10c01 (15 May 2011):
 - VMS-specific problem could cause "unzip -a" to truncate the last line
   in a text file which had a one-character line ending (like LF) which
   fell at the end of an internal buffer.  (vms/vms.c) [SMS]

6.10c02 (28 May 2011):
 - Changed the exit handler to use echorig() to restore the original
   terminal echo setting, instead of echon() to enable echo
   unconditionally.  (Actually implemented only on VMS.)   (fileio.c,
   ttyio.c, ttyio.h) [SMS]
 - Changed the carriage-control scheme used when an unfinished output line
   to stdout is interrupted by an error message to stderr.  On VMS, the old
   method produced spurious blank lines, and error messages could be
   overwritten by succeeding output lines.  Please report any new problems
   with error message format/placement.  (extract.c, fileio.c, globals.h,
   process.c) [SMS]
 - Updates to decrypt() to fix some minor AES header length issues.
   (crypt.c) [SMS]
 - Update testkey() for AES.  (crypt.c) [SMS]
 - Minor bug fixes for AES and for making crypt similar in Zip and UnZip.
   (crypt.h) [SMS]
 - Add extra field processing for AES.  Account for extra AES data in file
   data.  Replace fprintf() use with Info().  (extract.c, unzpriv.h) [SMS]
 - Additional AES fixes.  (fileio.c, globals.h) [SMS]
 - Spelling fixes.  (history.600, readme, unzip.h, unzpriv.h,
   cmsmvs/vmmvs.h, macos/history.txt, windll/contents) [SMS]
 - Minor wording updates.  Add descriptions for CRYPT_AES_WG and
   AES_WG_SFX.  Describe support for new CC=gcc format for parameters.
   (INSTALL) [SMS]
 - Update method list to include AESencr.  (list.c) [SMS]
 - Update VMS example in help message.  Add -v line for CRYPT_AES_WG.
   Change compiler option error from PK_BADERR to PK_COMPERR.  Add
   byte endian runtime check.  Remove CryptDate from Crypt -v line.
   (unzip.c, unzip.h) [SMS]
 - Add AES support to SFX.  Define AESENCRED as 99.  Define EF_AES_WG
   as 0x9901.  (unzpriv.h) [SMS]
 - Update comments to match latest makefile changes.  Remove support for
   gcc target as the CC=gcc parameter covers that now.  (unix/configure)
   [SMS]
 - Message wording changes.  (vms/collect_deps.com) [SMS]
 - Add new COMPERR error.  (vms/unzip_msg.msg) [SMS]
 - VMS-specific problem could cause "unzip -a" to truncate the last line
   in a text file which had a one-character line ending (like LF) which
   fell at the end of an internal buffer.  (vms/vms.c) [SMS]
 - Change NAM to NAMX.  Add some SYS defines.  (vms/vms.c, vms/vms.h,
   vms/vmscfg.h) [SMS]
 - Reset file pointer even on failure to fix problem.  (win32/win32.c) [????]
 - Add (int) cast to n assignment in testkey() for type mismatch.  (May
   limit the range of test cases.)  (crypt.c) [EG]
 - Miscellaneous code tidying (white space, mostly).  (crypt.c, extract.c,
   fileio.c, match.c, unzip.c, acorn/acorn.c, unix/unix.c, unix/unxcfg.h,
   vms/cmdline.c, win32/win32.c) [SMS]

6.10c03 (02 Aug 2011):
 - Replace crypt.c with version from Zip 3.1d14.  In brief, changes for
   AES_WG, updates in AES_WG and ZCRYPT documentation, fix eb_eas == NULL
   issue, zipcloak() updates, change STANDARD_ENCRYPTION to
   TRADITIONAL_ENCRYPTION, fix AES_WG password and MAC issue, remove
   Win32 entropy_fun(), and add some type casts.  (crypt.c) [SMS]
 - Change AES to AES_WG.  (crypt.h, extract.c, globals.h, unzip.c,
   zipinfo.c) [SMS]
 - Add BadEasMacMsg message.  Change #if defined(CRYPT) to #if CRYPT.
   Pass in cmpr_vers_aes to ef_scan_for_aes().  Change bytes_put_out from
   zoff_t to zusz_t.  Add aes_wg_mac storage.  Clear aes_mac_mismatch
   if entry not AES encrypted.  Update bytes_put_out loop.  Add
   aes_mac_mismatch error message.  Fix MAC issue.  (extract.c) [SMS]
 - Add size check before calling fcrypt_decrypt().  (fileio.c) [SMS]
 - Add ucsize_aes global for AES uncompressed bytes left do decrypt.
   (globals.h) [SMS]
 - Change AESencr to AES_WG as compression method name. (list.c) [SMS]
 - Formatting updates.  Remove tabs.  (match.c, acorn/acorn.c,
   unix/unix.c, unix/unxcfg.h, vms/cmdline.c) [SMS]
 - Include aes_wg/iz_aes_wg.h.  Change elif to else if.  (unzip.c) [SMS]
 - Remove unused constant UNZIP_AESVERS as there is no specific PKZIP
   version associated with WinZip AES encryption.  (unzpriv.h) [SMS]
 - Add IZ_MIN() for doing min of two values.  (unzpriv.h) [SMS]
 - Change AES-ed to AES_WG-ed.  Update AES extra field output.
   Interpret AES extra field.  (zipinfo.c) [SMS]
 - Update aes_wg directory to use latest IZ_AES_WG files.  Remove
   original files, just keep current files.  (aes_wg/aes.h,
   aes_wg/aescrypt.c, aes_wg/aeskey.c, aes_wg/aesopt.h, aes_wg/aestab.c,
   aes_wg/brg_endian.h, aes_wg/fileenc.c, aes_wg/fileenc.h,
   aes_wg/hmac.c, aes_wg/hmac.h, aes_wg/iz_aes_wg.h, aes_wg/license.txt,
   aes_wg/main.c, aes_wg/prng.c, aes_wg/prng.h, aes_wg/pwd2key.c,
   aes_wg/pwd2key.h, aes_wg/sha1.c, aes_wg/sha1.h) [EG]
 - Change AES to AES_WG.  Other minor updates for AES_WG encryption.
   (unix/configure) [SMS]
 - Change aes to aes_wg.  Update command line help.  Move instructions
   for manuals to end of help.  Change LIB_AES to LIB_AES_WG.  Change
   some single quotes to double quotes.  Add -DNO_LCHMOD to unzips
   rule for rs6000 (IBM RS/6000 under AIX 3.2).  (unix/makefile) [SMS]
 - Change AES to AES_WG.  Change ZIP.OLB to UNZIP.OLB.  Add UNZIPSFX
   library replace.  (vms/build_unzip.com) [SMS]
 - Documentation updates.  (vms/descrip.mms) [SMS]
 - Changes to convert from AES to AES_WG.  (vms/descrip_deps.mms,
   vms/descrip_mkdeps.mms) [SMS]
 - Remove VAXC, GNUC dependencies.  Change AES to AES_WG.  Add SFX
   object library.  (vms/descrip_src.mms) [SMS]
 - Update multi-line string formatting.  (win32/win32.c) [SMS]
 - Update options list for UnZip for -C, changing ZIO to UZO in
   UZO (UnZip) list so option is available to UnZip.  Option had
   been put twice in ZipInfo (ZIO) list.  (unzip.c) [EG]
 - Add comment about disk number == 1.  (process.c) [EG]

6.10c04 (05 Aug 2011):
 - Replace some Mac-specific AppleDouble-related code which got omitted
   between 6.10a and 6.10b(?)  (extract.c) [SMS]
 - Replace lost code for enhanced "apparent file type" message in
   ZipInfo.  A hex value is now included, to show useful info for
   unexpected values (not "binary", "ebcdic", or "text").  zipinfo.c [SMS]
 - Replace lost change enabling "-s" everywhere.  Replace lost change to
   VMS usage text.  (unzip.c, unzip.h) [SMS]
 - Remove an unused variable (aes_strngth).  (zipinfo.c) [EG, SMS]
 - Reform a defective ZCRYPT version test, now handling version 3.0 case.
   (ttyio.c) [SMS]
 - Replace obsolete test Zip archive, to give "make test" a chance to
   succeed.  (testmake.zip) [SMS]
 - Add "testmake_zip" target to UNIX "make" file, to help in creating
   testmake.zip.  (Formerly not done on UNIX.)  (unix/Makefile) [SMS]
 - New command-line processing in ZipInfo miscounted non-option
   arguments, causing loss of the heading and total sections in default
   reports.  (zipinfo.c) [SMS]
 - New command-line processing in UnZipSFX lost the first non-option
   argument (member to extract, not archive name).  (unzip.c) [SMS]
 - Various VMS CLI bad behavior involving /HELP and /VERBOSE.
   (vms/cmdline.c) [SMS]
 - Remove _orig files.  (crypt.c_orig, crypt.h_orig, extract.c_orig,
   fileio.c_orig, globals.h_orig, INSTALL._orig, list.c_orig,
   process.c_orig, README._orig, ttyio.c_orig, ttyio.h_orig,
   unshrink.c_orig, unzip.c_orig, unzip.h_orig, unzpriv.h_orig,
   zipinfo.c_orig, unix/configure._orig, unix/Makefile._orig,
   unix/unix.c_orig, vms/build_unzip.com_orig, vms/collect_deps.com_orig,
   vms/descrip.mms_orig, vms/descrip_deps.mms_orig,
   vms/descrip_mkdeps.mms_orig, vms/descrip_src.mms_orig, vms/vms.c_orig,
   vms/vms.h_orig, vmscfg.h_orig) [EG]
 - Rename bzip2 readme from 00README.IZ to README_bz2.txt.
   (README_bz2.txt) [EG]
 - Update Contents.  Add lzma.  (Contents) [SMS]
 - Minor changes to Contents.  (Contents) [EG]
 - Update crypt to version 3.0.  (crypt.h) [SMS]
 - Update VCC6 project to look for AES WG files in aes_wg.
   (win32/vc6/unzip.dsp) [EG]
 - Allow Total Disks (ecloc64_total_disks) to be 0, as some archive creator
   out there sets this to 0 incorrectly instead of 1.  However, probably
   no reason we can't just go with it.  This only is relevant for Zip64
   archives.  (process.c) [EG]
 - Change i and b to unsigned in AES_WG endian test.  (unzip.c) [SMS]
 - Add possible fix for MINIX needing <unistd.h>.  (unzpriv.h) [SMS, adapted
   from user suggestion]
 - New UNIX(-like) shell script for basic UnZip testing.  Builder
   changed to use it, instead of in-line actions.  (unix/Makefile,
   unix/test_unzip.sh) [SMS]
 - VMS builders now generate module-ID options files.  vms/unzip.opt and
   vms/unzipsfx.opt have been removed from the kit.  Add new NOCOMPILE, NOEXE,
   LZMA, and TEST commands.  Command-line options for the VMS DCL builder
   should now agree better with those for Zip.  (vms/build_unzip.com,
   vms/descrip.mms, vms/unzip.opt (removed), vms/unzipsfx.opt (removed),
   vms/optgen.com (new)) [SMS]
 - Added VMS CLI option, /LICENSE, equivalent to --license.  Change
   VERBOSE to VERBOSE.COMMAND for verbose_command.  Update to use -h and
   -hh help options supported by new command line parser.  (vms/cmdline.c,
   vms/unz_cli.cld, vms/unzip_cli.help) [SMS]
 - Significant updates to VMS Contents.  (vms/contents) [SMS]
 - New VMS DCL procedure for basic UnZip testing.  New MMS/MMK builder
   target, TEST, to run it, and CLEAN_TEST to clean up after it.
   (vms/descrip.mms, vms/test_unzip.com (new), vms/install.vms) [SMS]
 - Add definition of C macro _SZ_NO_INT_64 for LZMA on VAX.
   (vms/descrip_mkdeps.mms, vms/descrip_src.mms) [SMS]
 - Initial update to README.  (README) [SMS]

6.10c05 (13 Aug 2011):
 - Bug fix for array overflow and slight enhancement of "Available
   options" listing.  (unzip.c) [EG]
 - Fix for improper argument count for -Z bug.  (zipinfo.c) [EG, SMS]

6.10c06 (24 Aug 2011):
 - Change UNZIP_BZ2VERS to UNZIP_BZIP2_VERS to be consistent with other
   version defines.  Set UnZip (compatible with) version based on inclusion
   of BZIP2 or LZMA support.  (extract.c, unzpriv.h) [SMS]
 - Change %ld in a Trace() to %lld.  (This would be incompatible with
   Win32, which uses %I64d, but not an issue unless Trace() is used.)
   Remove G.incnt < LZMA_PROPS_SIZE + 4 check from LZMA properties
   length check.  (extract.c) [SMS]
 - Add (unsigned int) cast to ucsize assignment to fix 64-bit to 32-bit
   assignment.  (extract.c) [EG]
 - Add (long) cast to G.ucsize_aes in IZ_MIN() to fix 64-bit to 32-bit
   assignment.  (fileio.c) [EG]
 - Rename 7z* files to Sz*.  (unzip.c, SzVersion.h, lzma/7zFile.c (remove),
   lzma/7zFile.h (remove), lzma/7zVersion.h (remove), lzma/SzFile.c,
   lzma/SzFile.h, lzma/SzVersion.h) [SMS, EG]
 - Add encryption notices.  (unzip.c) [SMS]
 - Update LZMA Readme.  (README_LZMA.txt) [SMS]
 - Change 7z* to Sz*.  Explicitly use sh to run test_unzip.sh.
   (unix/makefile) [SMS]
 - For VMS, update comments for SFX regarding AES_WG and LZMA.  Note that
   SFX does not include AES_WG by default.  Change 7z* to Sz*.
   (vms/build_unzip.mms, vms/descrip.mms, vms/descrip_deps.mms,
   vms/descrip_src.mms) [SMS]
 - Update VMS Install documentation.  (vms/install.vms) [SMS]
 - Minor updates to VMS test script.  (vms/test_unzip.com) [SMS]
 - Repackage Win32 VC 6 projects, creating new project unzipaes for AES_WG
   and moving configurations dependent on AES files in the aes_wg
   directory to that project.  Remove AES_WG dependencies from unzip
   project.  Add LZMA configurations to the unzip and unzipaes projects.
   Currently the VC 6 configurations depend on the LZMA files being present
   (they are part of the source distribution so they should be).  The user
   ignores those files when they select a configuration that does not use
   them.  Added missing Release configurations.  The ASM (assembly)
   configurations are not updated yet to support AES_WG or LZMA.
   (win32/vc6/unzip.dsp, win32/vc6/unzip.dsw, win32/vc6/unzipaes.dsp) [EG]

6.10c07 (12 Sep 2011):
 - Change type of ucsize_lzma to SizeT.  (extract.c) [SMS]
 - Change default to -D everywhere, not only on VMS.
 - CF_BZ now has "-DBZ_NO_STDIO" to build correct bzip2 variation.
   (unix/configure, unix/Makefile) [AD]
 - CF_BZ now contains "-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" if large files
   supported.  (unix/configure) [AD]
 - Customize unzip unix/unxcfg.h for time.h et al.  (unix/configure) [AD]
 - Add fix for symlink bug (see
   http://comments.gmane.org/gmane.comp.version-control.git/181165).  From
   Andreas Schwab:  "This only happens if you have more then 16k entries
   and when one of the 16k entry infos is reused it happend to be previously
   used for a symlink entry."  Patch provided.  (process.c) [AS]

6.10c08 (22 Nov 2011):
 - Add (wchar_t *) casts to wstring malloc().  (extract.c) [SMS]
 - Remove wchar.h include.  Add parentheses around wide_string[] assignment
   in for loop to quiet complaint by a particular compiler.  [SMS, AD]
 - Add note regarding possible morphing of unzpriv.h to something more like
   tailor.h.  (Could happen.)  Copy over UNICODE_SUPPORT comment from Zip
   detailing the current plan for unifying Unicode code to just three
   possibiities:  UNICODE_WIDE, UNICODE_ICONV, and UNICODE_NATIVE.  Change
   "#define BSD" to "#define BSD 1".  Copy over DBCS Japanese support comment.
   Always include stdlib.h if UNICODE_SUPPORT defined.  Copy over wchar and
   langinfo support headers from Zip.  Add MBCS comment noting possible use of
   replacement functions when available.  Copy over in comments some Zip MBCS
   code.  (unzpriv.h, unix/unxcfg.h) [AD]
 - Include unistd.h where available, mainly for SunOS.  (lzma/szfile.h) [SMS]
 - Comment updates in top section.  Attempts at making the Zip and UnZip
   configure scripts similar.  Formatting updates.  Add "Generating system-
   dependent flags..." message.  Split up parameter list in valid_vars.  Remove
   -DUNIX from CFLAGS.  Define AR_BZ for BZip2.  Change manuals output dir to
   manout.  Default PORT to empty instead of unix.  Default AES_WG, LZMA,
   IZ_BZIP2, and IZ_ZLIB to empty if not already defined.  Define PORT_SPEC
   for port specification method.  Remove OSDEP_C and OSDEP_S.  Remove MANTAB.
   Minor changes to output build messages.  Assign default PORT setting.  Set
   PORT_SPEC to I (implicit) if PORT is unix, else E (explicit).  Output
   UNAME_S as OS name.  Add quotes around some variables.  Add tests for MinGW
   64, MinGW 32, LLVM, LLVM Clang, LLVM GCC.  Add Darwin check for obsolate -s
   option.  Add tests for Portable C (PCC), EKOPath, Intel, GNU C, CNU C for
   MAC OS X, AIX.  Update defines for CC_TST, CFLAGS_OPT, CFLAGS_TST, and AR_BZ
   for each port.  Add test for DJGPP, CYGWIN.  Set build configuration for
   various targets:  msdos, os2, qdos, zos,  zvm.  Add "fix me" note for
   assembler CRC code.  Change some output error messages to use ^^ prefix as
   in Zip.  Add "No AES WG encryption", "No LZMA compression", "No BZIP2
   compression", and "ZLIB not used" messages as in Zip.  Error message updates
   similar to Zip.  Add comment describing HAVE_HEADER_H, HAVE_DIR_HEADER_H,
   NO_HEADER_H, NO_DIR_HEADER_H, FUNCTION=function, and NO_FUNCTION.  Remove
   HPUX ANSI test.  Add off_t and UID/GID messages from Zip.  (The UID/GID
   code, in particular, may not be appropriate for UnZip, but this should be
   corrected in a later beta.)  Update sys/time.h messages.  (Not sure if
   these are appropriate to UnZip.  It's possible that UnZip would work, but
   that checking for unneeded features could prevent it from building.)  Add
   wchar.h checks.  Update wide character support checks to match those in Zip.
   Update check for missing functions.  Add "FIX ME" note for langinfo.h.
   Change ${CFLAGS} to ${CFLAGS_TST} in assignment.  Update MBCS functions
   check.  Output end blank line.  (unix/configure) [SMS, AD]
 - Update Makefile instructions at top to be similar to Zip.  Update list of
   targets.  Add additional instructions and guidance from Zip.  Update AR to
   change -cq to cq.  Add note about OSDEP_H, OS_DEPOC, and OSDEP_OS.  Update
   note on Assembler to mention msdos/crc_i86.S.  Remove PGM_ZINFO from
   UNZIP_PGMS.  User manout for output directory of manuals.  Put plain text
   versions of manuals in root directory as have traditionally done.  Use
   PGM_* variables to set BIN_* variables.  Add note about C files when cross
   compiling and PORT parm.  Change note on api.o rule from "object files" to
   "C Compile rule" for unzip DLL.  Add comment separator lines around AES
   code and LZMA code.  Update BZIP2 test to use "@if [ flags_bz ];" instead
   of "@if test -f flags_bz;".  Change "-> zips' to "-> unzips".  Change manl
   rule to manout.  Update text output rules for manuals based on Zip updates
   including using man instead of nroff.  Add "Running:  unix/configure"
   message.  Add PROD parameter to unix/configure.  Add note on BZIP2 flags.
   Add PGM_ZINFO to clean rule.  Add clean_docs rule for cleaning the plain
   text docs as was done in Zip.  Update install rule.  Remove duplicate
   "Originally tested under Sun" comment.  Add generic build warning message.
   Rephrase some comments for generic rules.  Update rules list for specific
   ports.  Remove OSDEP_C and OSDEP_S from linux_dos rule.  Remove some space
   from comments and messages.  (unix/Makefile) [SMS, AD]
 - Add compiler identification for NeXT DevKit, MinGW 64, MinGW 32, LLVM
   Clang, LLVM Apple GCC, LLVM GCC, Portable C, EKOPath C, Intel C, GCC, and
   SunPro C.  Ignore case of "CRAY" define.  Reformat IBM version.  Reformat
   sprintf() lines for specific compiler versions.  Fix " (Mac OS X").
   (unix/unix.c) [AD}




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

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.
