Sophie

Sophie

distrib > Mageia > 6 > x86_64 > by-pkgid > 5666af12c81722be4cae7e8925fad2c6 > files > 12

unzip-6.1c-1.1.mga6.x86_64.rpm

UnZip, version 6.1c, ?? ??? 2016

These changes occurred in beta versions 6.10a through 6.1c.

Features added (or removed):

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

6.10a01 (05 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 (05 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 (08 Aug 2010):
 - No feature changes.

6.10a06 (09 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 (06 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 (03 Dec 2010):
 - Updated INSTALL and README.  (INSTALL, README) [EG]

6.10b07 (05 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 support for 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.  (Technically a Zip update, but to common code).
   (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 (05 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.  Move much of the VMS
   material from INSTALL to vms/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 macro, 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-triggered progress message.
   Enabled by default, disabled by defining the C macro NO_USER_PROGRESS.
   Adds a SIGUSR1 signal handler (non-VMS) or a control-T AST (VMS),
   user_progress().  On non-VMS systems, add option -si to display the
   UnZip process ID, for convenience in forming a "kill -USR1 <pid>"
   command.  (unzip.c, unzpriv.h, vms/vms.c) [SMS]

6.10c09 (7 March 2014):
 - Added optional support for PPMd compression (method 98).  (extract.c,
   lzma/Ppmd.h, lzma/Ppmd8.c, lzma/Ppmd8.h, lzma/Ppmd8Dec.c,
   lzma/README_LZMA.txt, unix/configure, unix/Makefile,
   vms/build_unzip.com, vms/descrip.mms, vms/descrip_deps.mms,
   vms/descrip_mkdeps.mms, vms/descrip_src.mms) [SMS]
 - Added a PPMd test archive to the kit, "testmake_ppmd.zip", and a new
   "make" target, "test_ppmd" to use it.  (testmake_ppmd.zip,
   unix/Makefile, unix/test_unzip.sh, vms/descrip.mms,
   vms/test_unzip.com) [SMS]
 - Added recognition (only) of JPEG compression (method 96).  (list.c,
   unzpriv.h, zipinfo.c) [SMS]
 - Added archive name to user-triggered progress message.  (unzip.c) [SMS]
 - Added data-dependent supplementary info to verbose test (-tv) report
   for LZMA- and PPMd-compressed data.  (extract.c, man/unzip.1) [SMS]
 - Initial attempt to provide a callable-UnZip interface on UNIX and VMS
   systems.  Specify LIBUNZIP at build time to create libizunzip.a
   (Unix) or LIBIZUNZIP.OLB and LIBIZUNZIP.OPT (VMS), which may be
   linked with a user-supplied program.  Comments in an example main
   program source module, libiz/izunzip_example.c, explain some usage
   details.  (libiz/izunzip_example.c, unix/configure, unix/Makefile,
   vms/build_unzip.com, vms/descrip.mms, vms/descrip_deps.mms,
   vms/descrip_mkdeps.mms, vms/descrip_src.mms) [SMS]
 - Initial attempt to support Windows MinGW environment with UNIX
   builders ("generic" target).  No DLL.  (unix/configure, unix/Makefile)
   [SMS]
 - Added support for BAE Systems STOP OS, which lacks chown().  The
   "configure" script now checks for chmod() and chown(), and unix.c now
   honors the resulting NO_CHMOD and NO_CHOWN macros.  (unix/configure,
   unix/unix.c) [SMS]
 - Extended the -j/--junk-dirs option to accept an optional value, the
   number of directory levels to discard.  Moved code to handle
   directory junking out of the system-specific mapname[w]() functions
   into the common extract.c:extract_or_test_entrylist[w]().  Not
   implemented on Tandem.  Windows DLL sets uO.jflag from lpDCL->ndflag
   as well as it can, but needs more than one bit to use the extended
   capability.  (extract.c, globals.h, unzip.c, unzpriv.h, 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, theos/theos.c, unix/unix.c, vms/cmdline.c,
   vms/unz_cli.cld, vms/vms.c, win32/win32.c, windll/windll.c) [SMS]
 - Added C macro DIAG_SFX for developers to enable the "-v" diagnostic
   report in UnZipSFX.  Discouraged for normal use.  (unzip.c) [SMS]
 - On VMS, added HELP_TEXT as a builder option/target.  Specifying
   HELP_TEXT creates the text files UNZIP.HTX and UNZIP_CLI.HTX, which
   are the output from "help unzip..." commands using the corresponding
   .HLP help library source files.  (vms/build_unzip.com,
   vms/descrip.mms) [SMS]
 - VMS CLI changes: Restore but deprecate /[NO]CASE_INSENSITIVE, replace
   /CASE_MATCH (6.10a07) with more general /MATCH = CASE (-C).  When C
   macro WILD_STOP_AT_DIR is defined, add /MATCH = [NO]WILD_MATCH_SLASH
   (-W).  (vms/cmdline.c, vms/unzip_cli.help, vms/unz_cli.cld) [SMS]
 - Changed C macro USE_ICONV_MAPPING to ICONV_MAPPING, and added "make"
   macro ICONV to the Unix builder options to enable the feature.  Added
   ICONV_MAPPING to the "special compilation options" section of the
   "-v" report.  (unzip.c, zipinfo.c, beos/beocfg.h,  beos/beos.c,
   unix/configure, unix/unix.c, unix/unxcfg.h) [SMS]
 - Format changes to ZipInfo header and totals report sections.  The
   totals section now includes separate member counts for directories
   and files, and, where SYMLINKS is defined, links.  A new option, -mc
   (--member_counts, /[NO]MEMBER_COUNTS) allows the user to suppress the
   new directories/files/links counts.  Test archives have new-format
   ZipInfo reports (without the new member counts, to accommodate
   systems without symlinks).  (testmake.zip, testmake_ppmd.zip,
   unix/Makefile, unix/test_unzip.sh, unzip.c, unzip.h,
   vms/test_unzip.com, zipinfo.c) [SMS]
 - Volume labels can now be set on VMS (options: -$, --volume-label,
   /VOLUME_LABEL).  The destination device must be allocated, not
   shared.  (unzip.c, unzip.h, vms/vms.c) [SMS]
 - Added option -k/--keep-permissions on AtheOS, BeOS, Unix, and VMS, to
   control how archived permissions or protections are determined on
   extracted files and directories.  The default behavior has changed
   from previous UnZip versions.  Now, by default, on AtheOS, BeOS, and
   Unix, the current umask value is applied (to the normal
   user/group/other permissions).  On VMS, the current default
   protection is applied to the UIC-based (SOGW) protections.  With -k,
   the archived permissions are restored without regard to the Unix umask
   or VMS default protection.  (This was the default behavior in previous
   UnZip versions.)  With -k-, the archived permissions are ignored, so
   only the Unix umask or VMS default protection is effective.  (As
   before, on VMS, directories are always created without any Delete
   access.)  Added new VMS CLI options /RESTORE = PROTECTION =
   [LIMITED|ORIGINAL] for -k.  Define the C macro NO_KFLAG to disable
   the -k option, and restore the old behavior (or something like it).
   Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=100
   (atheos/athcfg.h, atheos/atheos.c, beos/beocfg.h, beos/beos.c,
   man/unzip.1, unix/unix.c, unix/unxcfg.h, unzip.c, unzip.h, unzpriv.h,
   vms/cmdline.c, vms/unz_cli.cld, vms/unzip_cli.help, vms/UNZIP_DEF.RNH,
   vms/vms.c, vms/vms.h) [SMS]
 - Added options -ka/--keep-acl (/RESTORE = ACL) on VMS, to control
   restoration of ACL.  Added VMS CLI option /RESTORE = OWNER (-X) to
   control restoration of owner/UIC.  With -k/--keep-permission
   (/RESTORE = PROTECTION), these options allow independent control over
   the restoration of ACL, protection, and owner/UIC.  (man/unzip.1,
   unzip.c, unzip.h, vms/cmdline.c, vms/unz_cli.cld, vms/unzip_cli.help,
   vms/vms.c) [SMS]
 - Added options on Mac OS X to provide better control over which
   Mac-specific file attributes are _not_ restored on extracted files:
   All extended attributes, -Je/--junk-extattr; Finder info,
   -Jf/--junk-finder; Quarantine ("com.apple.quarantine"),
   -Jq/--junk-qtn; Resource fork, -Jr/--junk-rsrc.  (By default, all
   are restored.)  Note that the Quarantine attribute is one of the
   extended attributes, so specifying -Je inhibits restoring the
   Quarantine attribute, along with all other extended attributes.  The
   extended attribute features are available on Mac OS X 10.4 and later.
   (The "xattr" command can be used to remove selected attributes after
   extraction.)  (fileio.c, unzip.c, unzip.h, unzpriv.h) [SMS]
 - Experimental new builders for Microsoft Visual Studio (Visual C++)
   2010.  Optional feature selection for each program (project) is done
   entirely using <project> Properties > Configuration Properties >
   C/C++ > Preprocessor > Preprocessor Definitions > <Edit...>.  Some
   popular options (macros) are included, but are disabled by an easy to
   remove "x_" prefix.  The "unzip" project is used whether or not bzip2
   compression support is desired.  There is now no separate "unzipbz2"
   project for UnZip with bzip2 support.  The "unzip" and "unzipsfx"
   projects have been marked as dependent on the "libbz2" project.  If a
   bzip2 source kit has not been installed in the "bzip2/" subdirectory,
   then the "libbz2" project build will fail, but the "unzip" project
   build should still succeed, so long as the C macro BZIP2_SUPPORT is
   not defined.  In the "Debug" configuration, DIAG_SFX is defined,
   which enables the "-v" report in the UnZipSFX executable.
   (ubz2err.c, win32/vc10/unzip.sln, win32/vc10/funzip/funzip.vcxproj,
   win32/vc10/funzip/funzip.vcxproj.filters,
   win32/vc10/libbz2/libbz2.vcxproj,
   win32/vc10/libbz2/libbz2.vcxproj.filters,
   win32/vc10/unzip/unzip.vcxproj,
   win32/vc10/unzip/unzip.vcxproj.filters,
   win32/vc10/unzipsfx/unzipsfx.vcxproj,
   win32/vc10/unzipsfx/unzipsfx.vcxproj.filters, wrap/aescrypt.c,
   wrap/aeskey.c, wrap/aestab.c, wrap/crc_i386.c, wrap/fileenc.c,
   wrap/hmac.c, wrap/LzFind.c, wrap/LzmaDec.c, wrap/Ppmd8.c,
   wrap/Ppmd8Dec.c, wrap/prng.c, wrap/pwd2key.c, wrap/sha1.c) [SMS]
 - Command-line syntax errors should now trigger a Usage explanation,
   like the brief help (-h, /HELP) report.  When triggered by an error,
   this report now includes a listing of any options environment
   variables (UNZIP, UNZIPOPT, UNZIP_OPTS, ...) which are defined (and
   might be causing trouble in non-obvious ways).  The -v (/VERBOSE)
   report still shows all the options environment variables, whether or
   not they're defined.  If enough users object to the (bulky?) Usage
   report, we may be persuaded to provide a way to disable it.
   (unzip.c, unzpriv.h, vms/cmdline.c) [SMS]
 - VMS CLI changes.  Added /[NO]JAR (--jar), /WILD_MATCH (-W).
   Deprecated /[NO]TIMES in favor of new /[NO]DECIMAL_TIME.
   (vms/cmdline.c, vms/unz_cli.cld, vms/unzip_cli.help) [SMS]
 - The Unix and VMS builders now support "PROD=subdir", allowing the
   user to specify a destination subdirectory for product files (object
   files, object libraries, executables, and so on), instead of getting
   everything in the main, top-level directory on Unix, or the
   automatically chosen subdirectory on VMS.  This feature is intended
   to make it easier to use one source tree for multiple build
   configurations (different compilers, options, hardware architectures,
   and so on).  For details, see INSTALL and [.vms]INSTALL_VMS.txt (and
   the builder files themselves).  (INSTALL, unix/configure,
   unix/Makefile, unix/mlz.sh, vms/build_unzip.com, vms/descrip.mms,
   vms/INSTALL_VMS.txt) [SMS]
 - Experimental implementation of symbolic links on Windows (Vista or
   later?).  To activate, define C macro SYMLINKS.  Slightly improved
   symlink error handling/messages on all symlink-capable system types.
   On Windows XP, the build may work with SYMLINKS defined, but the
   resulting UnZip executable may fail immediately with exit status
   (Command Prompt: %ERRORLEVEL%, PowerShell: $LASTEXITCODE) -1073741511
   (0xC0000139), "Entry Point Not Found", possibly with a pop-up message
   which mentions CreateSymbolicLinkA (and KERNEL32.dll).
   (extract.c, fileio.c, unzpriv.h, win32/w32cfg.h, win32/win32.c) [SMS]
 - Added initial support in ZipInfo for a proposed extra field type
   (0x414c = "LA") containing attributes which are missing from the
   local directory header.  (unzpriv.h, zipinfo.c) [SMS]
 - Added --version as a synonym for -v/--verbose.  When used as the only
   option, the program version, build options, and relevant environment
   variables are displayed.  (unzip.c, unzip.txt, unzpriv.h,
   man/unzip.1) [SMS]
 - Added library interface function UzpFeatures() to provide an
   optional-feature string (a program-friendly edition of the "special
   compilation options" section of the "-v/--verbose" report.  (api.c,
   unzip.h, libiz/izunzip_example.c, windll/vc10/windll32.def) [SMS]
 - Added new -da/--auto-extract-dir (/[NO]AUTO_DIRECTORY) option to
   specify a destination directory for extracted files which is derived
   from the base name of the archive.  For example, with -da, extraction
   of "fred.zip" is done into subdirectory "fred" instead of into the
   current directory.  (On VMS, subdirectory "[.fred]".)  Added new exit
   status value, IZ_BADDEST (84), for failure to create automatic
   destination directory.  (fileio.c, process.c, unzip.c, unzip.h,
   man/unzip.1, vms/cmdline.c, vms/unzip_cli.help, vms/UNZIP_CLI.RNH,
   vms/unz_cli.cld, vms/vms.c) [SMS]
 - Added new command-line (argc, argv[]) interface to the Windows DLL,
   which should be more stable than the old binary structure interface.
   A revised example program, unzipstb.c (now in the windll/ directory),
   illustrates usage.  (api.c, unzip.c, unzip.h, unzpriv.h, zipinfo.c,
   win32/win32.c, windll/unzipstb.c, windll/windll.c,
   windll/windll32.def, windll/vc10/unzip32_dll.sln,
   windll/vc10/unzip32_dll/unzip32_dll.vcxproj,
   windll/vc10/unzip32_dll/unzip32_dll.vcxproj.filters,
   windll/vc10/unzipstb/unzipstb.vcxproj,
   windll/vc10/unzipstb/unzipstb.vcxproj.filters) [SMS]

6.10c10 (18 Aug 2014):
 - Added initial support for Windows directory symlinks (using a symlink
   name with a trailing slash) on Unix, VMS, and Windows.  (extract.c,
   process.c, unzpriv.h, zipinfo.c, unix/unix.c, vms/vms.c,
   win32/w32cfg.h, win32/win32.c) [EG, SMS]

6.10c11 (10 Oct 2014):
 - Added option -0/--no-char-set (/NAMES = [NO]CHAR_SET) to suppress
   certain character mapping (CP850) in some extracted file names.
   ("-0" is hyphen+zero.)  Historically a particular character mapping
   was applied (and still is, by default) to the names of archive
   members which originated on a FAT or NTFS file system (typically on
   an MS-DOS or Windows system).  This can cause unexpected characters
   in extracted file names if the corresponding (inverse) mapping was
   not used when the archive was created.  With -0/--no-char-set, the
   extracted file name should agree with the name stored in the archive.
   -0/--no-char-set is supported on all operating systems.  On Unix (or
   BeOS) it effectively overrides any -I/--iso-char-set or
   -O/--oem-char-set option which may also be specified. Forum topic:
   http://www.info-zip.org/phpBB3/viewtopic.php?f=4&t=447
   (fileio.c, unzip.c, unzip.h, man/man1/unzip.1, vms/cmdline.c,
   vms/unzip_cli.help, vms/unz_cli.cld) [SMS, JBCarpen]
 - A Bzip2 source kit (version 1.0.6, modified for better VMS support)
   is now included in the kit.  (Old bzip2/descrbz2.mms removed.
   bzip2/README_bz2.txt, bzip2/) [SMS]
 - Changed Unix and VMS builders:
    - Enable bzip2, LZMA, and PPMd compression support by default.
    - On VMS, enable large-file support by default on Alpha and IA64
      (with a run-time check on Alpha, using a new DCL script).
    - On Unix, enable AES_WG support by default, if AES_WG source kit is
      available.
    - On VMS, notify user if AES_WG source is available but not used.
    - Minor typography changes.
   (INSTALL, unix/configure, unix/Makefile, unix/unsafe_prod.sh,
   vms/build_unzip.com, vms/check_large.com (new), vms/collect_deps.com,
   vms/descrip.mms, vms/descrip_mkdeps.mms, vms/descrip_src.mms,
   vms/INSTALL_VMS.txt) [SMS]

6.10c12 (31 Oct 2014):
 - Changed Windows (win32\vc10) and Windows DLL (windll\vc10) builders:
    - Enabled bzip2 compression support by default.
    - Added x64 platform to projects, disabling 32-bit assembly code
      explicitly (ASM_CRC).
   (win32/vc10/unzip.sln, win32/vc10/funzip/funzip.vcxproj,
   win32/vc10/libbz2/libbz2.vcxproj, win32/vc10/unzip/unzip.vcxproj,
   win32/vc10/unzipsfx/unzipsfx.vcxproj, windll/vc10/unzip32_dll.sln,
   windll/vc10/libbz2/libbz2.vcxproj,
   windll/vc10/unzip32_dll/unzip32_dll.vcxproj,
   windll/vc10/unzipstb/unzipstb.vcxproj,
   windll/vc10/uzexampl/uzexampl.vcxproj) [SMS]
 - Minor code changes to accommodate Windows x64 builds:
    - Changed some types and added some type casts.
    - Changed system identification text in the "-v" report.
    - Disabled 32-bit assembly code (ASM_CRC) when _WIN64 is defined.
   (extract.c, fileio.c, globals.h, process.c, unzpriv.h,
   win32/w32cfg.h, win32/win32.c, windll/windll.c, zipinfo.c) [SMS]

6.10c13 (17 Dec 2014):
 - No news.

6.10c14 (03 Jan 2015):
 - No news.

6.10c15 (12 Jan 2015):
 - Included public-domain code from Peter Backes for the (obsolete)
   Reduce compression method.  (Some minor changes were made to clear
   some diagnostics from modern compilers, and to accommodate inclusion
   by unreduce.c.)  To enable Unreduce support using the public-domain
   code, define the C macro USE_UNREDUCE_PUBLIC.  To enable Unreduce
   support using the copyrighted Unreduce code, define the C macro
   USE_UNREDUCE_SMITH (or, for compatibility with old code and
   documentation, USE_SMITH_CODE), and supply the source file
   unreduce_full.c.  See INSTALL for details.  The C macro
   COPYRIGHT_CLEAN has been removed from the code and from the "UnZip
   special compilation options" ("-v") report.  The new USE_UNREDUCE_xxx
   macros appear instead.
   http://sourceforge.net/p/infozip/patches/18/
   (api.c, COPYING.OLD, expand.c (new), extract.c, INSTALL,
   unix/Makefile, unreduce.c, unzip.c, unzpriv.h, vms/descrip_deps.mms,
   vms/descrip_mkdeps.mms) [Peter Backes, SMS]

6.10c16 (18 Mar 2015):
 - Changed the ZipInfo version numbering to use the same value as the
   the corresponding UnZip version.  So, what would have been ZipInfo
   version 3.10 will instead be designated version 6.10 (like UnZip).
   (unzvers.h) [SMS]
 - Added tentative, experimental-grade support for streaming input
   archives on Unix systems.  The C macro USE_EF_STREAM is now defined
   by default to enable support for the new Zip "xl" (0x6c78) streaming
   extra field.  Define ARCHIVE_STDIN to enable support for streaming
   input archives.  Extensive refactoring of extract.c could have
   introduced new defects.  Some accommodation was attempted for
   Windows, but not tested.  (extract.c, fileio.c, globals.c, globals.h,
   process.c, unix/unix.c, unix/unxcfg.h, unzip.c, unzpriv.h) [SMS]
 - Added tentative, experimental-grade support for segmented
   (multi-part) archives.  Patch contributed by Petr Stodulka.
   Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=4&t=455
   Currently, only multiple segment files on one volume ("split"
   archive), with name extensions ".z01", ".z02", ..., ".zip" are
   supported; multiple volumes ("spanned" archive) are not.
   (extract.c, fileio.c, globals.c, globals.h, process.c, unzip.c,
   unzpriv.h, vms/vms.c, zipinfo.c, zos/vmmvs.c) [Petr Stodulka, SMS]

6.10c17 (18 Mar 2015)
 - No news.

6.10c18 (20 Mar 2015):
 - No news.

6.1c19 (26 Jun 2015)
 - Changed the displayed program version number to omit the PATCH_LEVEL
   digit when it's zero, so, henceforth, UnZip version 6.1 will
   generally be called version "6.1", not "6.10".  Added
   -vq/--quick-version (/VERBOSE=BRIEF) option to provide a brief
   (one-line) program version report.  (BUGS, Contents, INSTALL, README,
   unzip.c, unzip.h, unzip610c.ann, unzpriv.h, unzvers.h, zipinfo.c,
   docs/Contents, docs/unzip.txt, docs/unzipsfx.txt, docs/zipinfo.txt,
   libiz/Contents, man/Contents, man/man1/Contents, man/man1/unzip.1,
   man/man1/unzipsfx.1, man/man1/zipinfo.1, unix/Contents,
   unix/README.zOS, vms/build_unzip.com, vms/cmdline.c, vms/Contents,
   vms/descrip.mms, vms/descrip_mkdeps.mms, vms/descrip_src.mms,
   vms/INSTALL_VMS.txt, vms/unzip_cli.help, vms/UNZIP_DEF.RNH,
   vms/unz_cli.cld, win32/Contents, windll/Contents, wrap/Contents)
   [SMS]

6.1c20 (20 Sep 2015):
 - Defining the C macro NO_BUILD_DATE now suppresses the display of the
   build date in the "-v" (/VERBOSE) report (for example, "Compiled with
   [compiler version] on Jul 26 2015.").  Compiling with this macro
   defined makes the build reproducible.  Forum topic:
   http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=490
   (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, macos/source/sxunzip.c, msdos/msdos.c,
   netware/netware.c, os2/os2.c, qdos/qdos.c, tandem/tanunz.c,
   theos/theos.c, tops20/tops20.c, unix/unix.c, vms/vms.c,
   win32/win32.c, zos/vmmvs.c) [sanvila, SMS]

6.1c21 (30 Oct 2016):
 - Changed the command-line syntax of the Windows test command script to
   allow the user to specify a particular UnZip program name, instead of
   "unzip".  This allows the test script to be used with the UnZip-like
   example programs supplied with DLL (windll/unzipstb.c) or static
   library (winlib/izunzip_example.c).  (win32/test_unzip.cmd) [SMS]
 - Revised Usage text, and, on VMS, the DCL foreign-command symbol
   suggestions.  Other related, minor code tidying.  (unzip.c, unzip.h,
   unzpriv.h, vms/cmdline.c) [SMS]

6.1c22 (08 Jun 2017):
 - No news.

6.1c23 (11 Dec 2017):
 - No news.


Bugs fixed:

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

6.10a01 (05 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 (05 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 (08 Aug 2010):
 - Change fnfilter() from using code used for Unicode for wide character
   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 (09 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 (06 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 (03 Dec 2010):
 - No bug fixes.

6.10b07 (05 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]
 - 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):
 - Restore some Mac-specific AppleDouble-related code which got omitted
   between 6.10a and 6.10b(?)  (extract.c) [SMS]
 - Restore 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]
 - Restore lost change enabling "-s" everywhere.  Restore 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 macros.  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 a problem 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]
 - 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 message:
   "Generating system-dependent flags...".  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.  Change (bad) Mac OS X
   message string '" (Mac OS X")' to '" (Mac OS X)"'.  (unix/unix.c) [AD]

6.10c09 (8 May 2014):
 - Minor code tidying: UZbunzip2() and UZlzma() are now static.
   (extract.c, unzpriv.h) [SMS]
 - A bare "#if" directive embedded in a multi-line comment block
   confused old C preprocessors (SunOS 4.1.4 bundled C, VAX C V3.1-051).
   (unzpriv.h) [SMS]
 - Less lame handling of LZMA and PPMd data structures.  More things are
   allocated and/or initialized once per job, rather than once per
   archive member.  (extract.c, globals.h, process.c) [SMS]
 - Removed definition of unused LZMA- and PPMd-related C macro _7ZIP_ST
   from builders.  (unix/configure, vms/build_unzip.com,
   vms/descrip_src.mms) [SMS]
 - Miscellaneous code tidying for user-triggered progress message on
   VMS: Portability to old VAX versions, coping with batch mode, better
   comments and messages.  (vms/vms.c, vms/vmscfg.h) [SMS]
 - Removed lzma/Alloc.c and lzma/Alloc.h (MyAlloc() and MyFree()
   functions).  (extract.c, unix/Makefile, vms/descrip_src.mms) [SMS]
 - Remove (unused) lzma/SzFile.c and lzma/SzFile.h.  (unix/Makefile,
   vms/descrip_src.mms) [SMS]
 - Bad hard-coded string length in message function could put a spurious
   NUL character into messages.  (Typically invisible on screen, but
   ugly in redirected output.)  (fileio.c) [SMS]
 - On Unix, "make clean" missed some spots.  (unix/Makefile) [SMS]
 - A user-specified CFLAGS value for UNIX(-like) builds no longer needs
   to include "-I.".  (unix/configure) [SMS]
 - Some Clang and GCC versions would emit many "warning: format string
   is not a string literal" or similar diagnostics.  The Unix builders
   now add compiler options, "-Wno-format-security" and/or
   "-Wno-format-nonliteral", to suppress these, where appropriate.
   (unix/configure) [SMS]
 _ Changed C macros USE_BZIP2, USE_DEFLATE64, USE_LZMA, USE_PPMD, and
   USE_UNSHRINK to BZIP2_SUPPORT, DEFLATE64_SUPPORT, LZMA_SUPPORT,
   PPMD_SUPPORT, and UNSHRINK_SUPPORT, respectively, for clarity and
   consistency with Zip.  (INSTALL, explode.c, extract.c. fileio.c.
   funzip.c. gbloffs.c. globals.h. inflate.c, process.c, ubz2err.c,
   unzip.c, unzpriv.h, amiga/flate.a, human68k/flate.s, msdos/doscfg.h,
   msdos/makefile.dj2, msdos/makefile.wat, os2/os2cfg.h, unix/configure,
   vms/build_unzip.com, vms/descrip_src.mms, win32/Makefile,
   win32/Makefile.gcc, win32/Makefile.wat, wince/punzip.h) [SMS]
 - Changed the "special compilation options" section of the "-v" report
   to agree better with that of Zip.  Added explanations for some more
   options.  (unzip.c) [SMS]
 - Changed to use the new C macro, NO_TRADITIONAL_CRYPT, as in Zip, to
   control (disable) compilation of code specific to traditional
   encryption, allowing AES_WG encryption without traditional
   encryption.  (crypt.c, crypt.h, fileio.c, unzip.c, unzpriv.h) [SMS]
 - Adopted a suggestion from Ireneusz Hallmann to use an alternate
   buffer in more situations in the DLL, to solve a problem with data
   corruption when inflating to memory.  Adapted another suggestion for
   a better window size calculation.  The old method gave poor results
   for buffer sizes which were not powers of two.  (inflate,c) [IH, SMS]
 - Fixed many problems when building with REENTRANT defined, mostly in
   the new command-line option code, but also in ppmd_read_byte() and
   the user-triggered progress message.  Reformed globals access in
   VMS-specific stamp_file().  (extract.c, unzip.c, unzpriv.h,
   zipinfo.c, vms/vms.c) [SMS]
 - Added "aesw" to the table of compression method names used in a
   ZipInfo report.  ("u###" was appearing for method 99 in reports.)
   (zipinfo.c) [SMS]
 - Repaired lame punctuation in SFX "Must quote upper-case options"
   message on VMS.  (unzip.c) [SMS]
 - Renamed C macro APL_DBL_SFX to APL_DBL_SUFX to reduce confusion with
   self-extracting "SFX".  (extract.c, fileio.c, unix/macosx.h) [SMS]
 - Added some minimal/lame support in the unix/zipgrep script for (up to
   four) GNU long-form options for egrep, and fixed some lame error
   handling (when the "unzip -Z1" command failed, for example).  Added
   "\" escapes for globbing characters ("*", "?", and "[") in archive
   member names.  Many limitations and problems remain.  (unix/zipgrep)
   [SMS]
 - Renamed "lzma" directory to "szip".  (Contents, INSTALL, extract.c,
   globals.h, unzip.c, unix/configure, unix/Makefile, vms/build_unzip.com,
   vms/descrip_deps.mms, vms/descrip_mkdeps.mms, vms/descrip_src.mms) [SMS]
 - Changed Mac OS X system-specific code to use "/..namedfork/rsrc" as
   the suffix for resource fork access on Intel, staying with "/rsrc" on
   PowerPC.  Define the C Macro APPLE_NFRSRC as 0 (on Intel) or 1 (on
   PowerPC) at build time to override the automatic decision.  (We believe
   that all PowerPC-compatible OS versions accept "/rsrc", and all
   Intel-compatible OS versions accept "/..namedfork/rsrc".)  Using "/rsrc"
   on Mac OS X 10.7 (Lion, Intel-only) caused spurious "Not a directory"
   messages, and resource forks were not properly restored.   (unzip.c,
   unix/macosx.h) [SMS]
 - UnZip failed to extract an archive member with a null name (silently
   on VMS, with a mesage, "mapname:  conversion of  failed", on Unix).
   Spurious error messages like ":  mismatching "local" filename (fred)"
   (where "fred" was some previously processed member name) were also
   possible.  (Info-ZIP Zip uses "-" as the name for an archive member
   created from standard input, but the .ZIP standard allows a null name
   for this case.)  Now, UnZip extracts a null-name archive member as
   "-" (C macro: NULL_NAME_REPL).  On VMS, an error message was added,
   similar to the one on UNIX, and on UNIX, the message was clarified.
   (fileio.c, unzpriv.h, unix/unix.c, vms/vms.c) [SMS]
 - "unzip -t" silently detected an unexpected end-of-file condition when
   reading an archive, leading to an unexplained "At least one error was
   detected" message.  An "Unexpected end-of-file" message has been
   added to reduce the mystery in this case.  (extract.c) [SMS]
 - Java "jar" archives with over-simplified header info were interpreted
   as coming from MS-DOS, causing UTF-8-encoded file names to be damaged.
   A Java "CAFE" extra block is now detected, and inhibits this
   inappropriate name conversion.  A new "--jar" option lets the user
   force this behavior when an archive lacks a "CAFE" extra block.
   http://sourceforge.net/p/infozip/support-requests/10/  (extract.c,
   fileio.c, unzip.c, unzip.h) [SMS]
 - Added Java "CAFE" extra field type to ZipInfo reports.  (zipinfo.c)
   [SMS]
 - Changed some declarations to accommodate a type change in zlib
   version 1.2.7.  (globals.h) [SMS]
 - UnZipSFX could fail (SEGV) on systems with backslash ("\") file path
   separators (MSDOS, Windows, ...), if a list of member names to be
   extracted was specified on the command line.  (unzip.c) [SMS]
 - Added a #ifndef condition to avoid redefining the C macro
   HAVE_TERMIOS_H on Cygwin.  (unix/unxcfg.h) [SMS]
 - Fixed assembler testing in configure script.  Defining NO_ASM or
   NO_ASM_CRC in LOCAL_UNZIP disables use of assembly code for CRC.
   (unix/configure) [SMS]
 - Added Linux Exec Shield .section directive to assembly code, as in
   Zip.  (crc_i386.S) [SMS]
 - Added a check in DLL unzip() for proper NULL termination of argv[].
   (unzip.c) [SMS]
 - Revised VMS builders to make it easier to generate the help files
   (only).  (vms/build_unzip.com, vms/descrip.mms) [SMS]
 - Changed to avoid conflict between a user definition of the C macro
   NO_EXCEPT_SIGNALS and an automatic one.  (unzip.c) [SMS]
 - Disambiguated some option-related error messages.  (unzip.c) [SMS]
 - Changed, on VMS, the way a "-d" (/DIRECTORY) destination directory is
   tested for validity.  Previously, some VMS-invalid directory
   specifications (such as "." or "..") would generate no error, and
   then be (silently) ignored.
 - Reformed the multi-value C macro CRYPT into simpler (binary)
   IZ_CRYPT_ANY and IZ_CRYPT_TRAD.  The actual encryption code should
   now use only IZ_CRYPT_AES_WG and IZ_CRYPT_TRAD (plus IZ_CRYPT_ANY,
   derived from them).  At build time, users specify more controlled
   options: CRYPT_AES_WG, CRYPT_AES_WG_SFX, CRYPT_TRAD_SFX, NO_CRYPT,
   NO_CRYPT_TRAD.  (crypt.c, crypt.h, ebcdic.h, extract.c, fileio.c,
   funzip.c, gbloffs.c, globals.h, INSTALL, ttyio.c, ttyio.h, unzip.c,
   unzpriv.h, amiga/filedate.c, qdos/qdos.c, windll/windll.c) [SMS]
 - Changed C macro USE_UNZIP_LIB$INITIALIZE to USE_UNZIP_LIB_INITIALIZE
   for consistency with Zip, where Sun C objected to the "$" in the
   corresponding code.  (vms/vms.c) [SMS]
 - Changed some assembler-related details, including the test for an
   "_" prefix on global names.  (unix/configure, unix/Makefile) [SMS]
 - Supposedly, the "-s" (--space_to_uscore) option became OS-generic in
   6.10c01, but its implementation relies on OS-specific mapname()
   processing, and there was none on Unix or VMS.  It may still be
   missing on other, more obscure systems.  (unix/unix.c, vms/vms.c) [SMS]
 - Changed the archive file default file spec on VMS from "[]*.ZIP" to
   ".ZIP", to avoid undesired behavior in some unusual cases.
   (vms/vms.c) [SMS]
 - VMS-specific problem could cause "unzip -a" to truncate the last line
   in a text file if it lacked a normal line ending (like LF).  (This
   problem was close to, but different from, the similar one which was
   fixed in version 6.10c01.)  (vms/vms.c) [SMS]
 - The Unix builders detected a UID and/or GID bigger than 16 bits, but
   then defined the wrong C macro, disabling support for the new "ux"
   extra block.  This could prevent UnZip (-X) from restoring UID and
   GID on files extracted from archives created by Zip 3.0 or later,
   where the new "ux" extra block was used.  Never defining the right C
   macro also hid some defective code, which would cause a build failure
   if the right C macro was defined.  Also, the "-v" report did not
   mention this option (IZ_HAVE_UXUIDGID).  Forum topic:
   http://www.info-zip.org/phpBB3/viewtopic.php?f=3&t=402
   (process.c, unzip.c, unix/configure) [SMS]
 - VMS CLI UnZip executables (UNZIP_CLI.EXE) were being built with a
   ZipInfo module (zipinfo.c) which was compiled for the Unix-style
   interface, not the VMS CLI interface.  An obvious symptom was a
   Unix-style usage guide instead of a VMS CLI-style usage guide.
   (vms/build_unzip.com, vms/descrip.mms, vms/descrip_mkdeps.mms,
   vms/descrip_src.mms) [SMS]
 - With -c (--to-stdout, /SCREEN) or -p (--pipe-to-stdout, /PIPE),
   various progress messages ("Archive: xxx", "inflating: yyy", and so
   on) were sent to stdout along with the extracted data, and only
   -q (--quiet, /QUIET) could stop them.  Now, with -c or -p, these
   messages should be sent to stderr, making them visible to the user
   without corrupting the extracted data stream.  (fileio.c, unzpriv.h,
   vms/vms.c) [SMS]
 - Attempt to support Zip64 in fUnZip.  Changed to skip directory
   members at the beginning of an archive, instead of doing nothing when
   the first archive member was a directory.  Changed some messages and
   exit status codes.  Still crude in many places.  (funzip.c) [SMS]
 - With UNICODE_SUPPORT, UnZip could fail (SIGBUS, SIGSEGV,
   %SYSTEM-F-ACCVIO, ...) when processing a non-Unicode name which
   contained character codes above 127.  More thought/work may be needed
   here.  http://sourceforge.net/p/infozip/bugs/40/  (extract.c) [SMS]
 - Changed the DLL and object-library forms of the UnZip main entry
   point function not to look for "zipinfo" in argv[0].  To get ZipInfo
   mode, specify "-Z" in argv[1].  (unzip.c) [SMS]
 - Changed iconv code to use memset() instead of bzero(), for
   consistency and portability.  Added a missing free().  Added
   ICONV_ARG2 macro to facilitate user addition of a "const" type
   qualifier to satisfy Sun C.  Moved loose global storage into the
   general globals structure.  Copied newer Unix code into BeOS.
   (beos/beocfg.h, beos/beos.c, globals.h, unix/unix.c, unix/unxcfg.h,
   unzip.c, unzpriv.h, zipinfo.c) [SMS]
 - -M (/MORE) used bad carriage control on VMS, adding spurious blank
   lines to the output.  Changed the prompt function on VMS to use the
   same output file as the message function (stderr or stdout) to avoid
   this.  (fileio.c, globals.h) [SMS]
 - Revised VMS DCL builder to recreate object libraries when not
   compiling (NOCOMPILE).  (vms/build_unzip.com) [SMS]
 - Fixed some bad behavior (program aborts or loops, or faulty memory
   access) caused by (intentionally) defective/corrupt archives.
   Reported by OUSPG ("https://www.ee.oulu.fi/research/ouspg/"),
   CVE-2015-7696.  Removed some harmless but redundant free() instances
   from extract.c.  (crypt.c, crypt.h, extract.c, fileio.c, funzip.c,
   os2/os2.c, process.c, unzpriv.h, win32/win32.c, zipinfo.c) [Aki
   Helin, SMS]
 - memcpy() was being used in some cases on overlapping buffers, which
   could cause bad extracted data (and "bad CRC" errors) on some
   systems.  Forum topic:
   http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=406
   New code uses memcpy() only on disjoint buffers.  New C macros
   replace old NOMEMCPY: Define C macro NO_SLIDE_MEMCPY to disable use
   of memcpy().  Define SLIDE_MEMMOVE to enable use of memmove() for a
   case where it works.  Limited testing suggests that using memcpy() is
   faster, but using memmove() is not, so that's the default scheme, but
   we're open to evidence reports.  (explode.c, inflate.c) [SMS]
 - Changed LLVM Clang compiler version identification to cope with v1.x,
   where __clang_major__ and friends were not defined.  (unix/unix.c)
   [SMS]
 - Made the configuration test for lchmod() stricter, to detect a "not
   implemented" compiler warning message (Clang and GCC on GNU/Linux).
   (unix/configure) [SMS]
 - Changed the definitions of macros _ISO_INTERN and _OEM_INTERN on Unix
   to use function charset_to_intern() (now not static) directly, instead
   of using inline functions, iso_intern() and oem_intern() (now gone).
   HP-UX bundled C compiler (at least) does not support the keyword
   "inline".  (beos/beocfg.h, beos/beos.c, unix/unix.c, unix/unxcfg.h,
   unzip.c) [SMS]
 - Added macro "Tracing", defined when macro "Trace" is non-empty, for use
   where Trace() was the only thing in the body of an "if" statement,
   and Clang complained, "if statement has empty body".  (extract.c,
   unzpriv.h) [SMS]
 - Stopped some memory leaks, mostly related to the new command-line
   parser.  Removed declarations and use of obsolete global name array,
   fnames[].  Removed the unused global pointer argument from
   free_args().  Removed redundant call to free_G_buffers() from
   process_zipfiles().  Track and free transient-use command-line option
   value storage.  In free_G_buffers(), added calls to free() for the
   archive name and for retained command-line option values: extraction
   directory (-d) and password (-P).  Changed API functions to use
   dynamic storage for the archive name (which may now be free()'d).
   (api.c, globals.c, process.c, unzip.c, unzpriv.h, zipinfo.c) [SMS]
 - In Unix builders, accept user-specified CFLAGS_OPT macro to override
   automatic compiler optimization options setting.  For debugging, for
   example, one might specify "CFLAGS_OPT='-g -O0' LFLAGS2=-L.".   (A
   non-null value is required for each.  "-L." should be harmless for
   LFLAGS2.)  Stopped putting redundant "-L." linker options into
   "flags".  (unix/configure) [SMS]
 - Added some conditionality for SGI IRIX.  (Knowing nothing, we assume
   that large-file support is still missing on SGI IRIX.)
   http://sourceforge.net/p/infozip/bugs/41/  (unzpriv.h) [SMS]
 - Disambiguated some Windows-specific error messages.  (win32/win32.c)
   [SMS]
 - Minor code tidying (#directive rearangement, type casts) to pacify
   Microsoft Visual C++ 2010.  (explode.c, extract.c, funzip.c,
   inflate.c, process.c, zipinfo.c) [SMS]
 - Added definition of HAVE_LOCALE_H to Windows-specific configuration
   file.  (win32/w32cfg.h) [SMS]
 - Changed VMS builders to use explicit (CC) /NOLIST and (LINK) /NOMAP
   qualifiers by default, to reduce unexpected clutter in batch mode.
   (vms/build_unzip.com, vms/descrip_src.mms) [SMS]
 - Changed APIhelp() interface to deal with the new command-line parser.
   Converted tabs to spaces in text.  Removed a BEL code from an error
   message.  Added text for UzpMainI().  Added NULL termination to
   example argv[] arrays.  Added apihelp.c to the Unix and VMS builders,
   primarily for testing.  (It's normally disabled, unless API_DOC is
   defined.)  (apihelp.c, unzip.c, unzpriv.h, unix/Makefile,
   vms/descrip.mms, vms/descrip_deps.mms, vms/descrip_mkdeps.mms,
   vms/descrip_src.mms) [SMS]
 - Fixed a problem where callable UnZip (or any build with the C macro
   REENTRANT defined) could try to free() the main-program argv[],
   instead of our local copy.  (unzip.c, zipinfo.c) [SMS]
 - Removed a Unicode memory leak, and improved some sub-optimal code
   based on suggestions from Dmitry ??????.  (fileio.c, process.c,
   win32/win32.c) [Dmitry, SMS]
 - On non-VMS systems, an I/O error while extracting a file (disk full,
   or similar) caused an interactive query ("write error (disk full?).
   Continue? (y/n/^C)"), even if there was no interactive user, causing
   the program to hang.  Now, by default, such an I/O error is fatal.
   To restore the query, define the C macro I_O_ERROR_QUERY at build
   time, but the query code now checks stdin using isatty(), and skips
   the query if stdin is not a terminal.  (fileio.c, unzpriv.h)
   [Dmitry, SMS]
 - On Windows, some defective bit-mask tests could cause failure to set
   directory attributes.  (win32/win32.c) [Dmitry, SMS]
 - Memory leaks in Unicode name handling.  (extract.c, fileio.c,
   process.c, unzip.c) [Dmitry, SMS]
 - On Windows, Unicode-capable code to set a volume label could fail.
   (win32/win32.c) [Dmitry, SMS]
 - In "-vl" (/LIST /FULL) reports, an unexpectedly large compression
   method value (>999) caused a (mostly harmless) buffer overflow, and
   spoiled the report format.  Now, values less than 1000 are displayed
   as before, using a three-digit decimal format, "Unk:ddd", but larger
   values are displayed using a four-digit hexadecimal format,
   "UnkXXXX".  http://sourceforge.net/p/infozip/bugs/27/  (list.c) [SMS]
 - In ZipInfo reports, an unexpectedly large "version made by" value
   (>99) caused a (mostly harmless) buffer overflow, and could spoil the
   report format.  Now, for system types where space always allows,
   large values should always be displayed properly.  For VMS, a more
   careful calculation is done to determine space requirements, and
   large values should be displayed properly when space allows.  Forum
   topics: http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=267
   http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=437
   CVE-2014-9913.  (zipinfo.c) [quanww, sanvila, SMS]
 - Added some crude, optional, dynamic memory tracing diagnostic
   capability for use by developers.  (api.c, crypt.c, envargs.c,
   extract.c, fileio.c, funzip.c, globals.c, inflate.c, match.c,
   memdiag.c, process.c, timezone.c, unshrink.c, unzip.c, unzpriv.h,
   unix/unix.c, win32/win32.c) [SMS]
 - On Windows, with Unicode support, a buffer overrun in pathname
   storage could cause a variety of problems, including spurious error
   messages and program failure.  That problem should be solved.  Some
   buffers were allocated with a few bytes more than necessary.  Some
   code which was needed only for developer diagnostic tracing was being
   compiled and executed always.  A reform making the global array
   unipath_widefilename fixed instead of dynamic can be reversed by
   defining the C macro DYNAMIC_WIDE_NAME.  (extract.c, fileio.c,
   globals.h, memdiag.c, process.c, unzip.c, win32/w32cfg.h,
   win32/win32.c) [SMS]
 - Changed behavior involving files which appear to have VMS version
   numbers (names ending with ";ddd", where "ddd" is a decimal number),
   and option "-V" (--keep-versions, /[NO]VERSION).  Previously, UnZip
   would, by default, strip these apparent VMS version numbers when
   extracting files, and the "-V" option was required to prevent this,
   even when the file was not archived on a VMS system.  Thus, a Unix
   file named "fred;123" would normally be extracted as "fred", unless
   "-V" was specified to prevent this damage.  Now, on non-VMS systems,
   UnZip should strip apparent VMS version numbers only from files which
   were archived on a VMS system.  Specify "-V" explicitly to keep
   version numbers even on VMS-archived files.  Specify "-V-" explicitly
   to strip apparent VMS version numbers from all files regadless of
   where they were archived (the old default behavior).  Behavior on VMS
   systems is unchanged.  (acorn/acorn.c, amiga/amiga.c, aosvs/aosvs.c,
   atari/atari.c, atheos/atheos.c, beos/beos.c, extract.c,
   flexos/flexos.c, human68k/human68k.c, macos/source/macos.c,
   man/unzip.1, msdos/msdos.c, netware/netware.c, os2/os2.c, qdos/qdos.c,
   tandem/tanunz.c, unix/unix.c, unzip.c, vms/unzip_cli.help,
   vms/UNZIP_DEF.RNH, vms/vms.c, win32/win32.c) [SMS]
 - Bad white space in Unix builder caused problems in UID/GID size
   determination tests with old (K&R) compilers (SunOS 4.1.4 bundled,
   for example).  (unix/configure) [SMS]
 - Bad white space caused build problems with old (K&R) compilers (SunOS
   4.1.4 bundled, for example).  (inflate.c) [SMS]
 - SunOS 4.1.4 bundled C compiler needed help with labs().  (fileio.c,
   funzip.c, unix/configure, unzpriv.h) [SMS]
 - Changed AES_WG endian-determination code not to look for
   <sys/isa_defs.h> on __sun systems with __sparc defined, because it's
   missing on SunOS 4.1.4.  (aes_wg/brg_endian.h) [SMS]
 - Changed the VMS DCL test script to give SFX tests some chance of
   working on VMS versions before V6.0, where SET FILE /ATTRIBUTES is
   not available.  Added an explanation to the VMS-specific installation
   instructions.  (vms/INSTALL_VMS.txt, vms/test_unzip.com) [SMS]
 - Some conditional code conditions were misplaced, causing compiler
   warnings and/or bad behavior when some combinations of optional
   compression and/or encryption options were enabled in UnZip SFX.
   (extract.c) [SMS]
 - Added a Windows cmd test script, but the builders don't (yet?) run it
   automatically.  Added code to set appropriate exit status values in
   the Unix and VMS test scripts.  (unix/test_unzip.sh,
   vms/test_unzip.com, win32/test_unzip.cmd) [SMS]
 - Changed VMS exit status code to SS$_NORMAL for success instead of a
   facility-specific code (%x17A28001).  This agrees with most VMS
   utilities, and with UnZip versions before 6.10a02.  Define C macro
   OK_USE_FAC to use the facility code in all cases.  (vms/vms.c) [SMS]
 - Removed Windows DLL global archive name storage (hwildZipFN) to fix a
   reentrancy problem reported by Alexandr Miloslavskiy.  (This change
   is not well tested.  Additional DLL wisdom is welcome.)
   (windll/windll.c) [SMS]
 - On Windows, conflicts with anti-virus programs could cause avoidable
   errors, "CreateFile() error 32 when trying set file time".  ("32" is
   ERROR_SHARING_VIOLATION.)  A similar problem when setting NT Security
   Descriptor data (-X) has not been reported, but seems similarly
   likely.  Now, when CreateFile[AW]() fails for this reason, it is
   retried according to C macros IZ_CREATEFILE_xxx, defined in
   win32/w32cfg.h.  Currently, a fixed time limit is used, which may be
   inadequate for large files.  Users who still experience the problem
   are encouraged to report the circumstances.
   http://sourceforge.net/p/infozip/bugs/44/  (win32/nt.c,
   win32/w32cfg.h, win32/win32.c) [awaterson, Dmitry, SMS]
 - On Mac OS X, extended attributes (such as "com.apple.quarantine")
   were erroneously treated as more resource-fork data, so the
   extracted file did not get the proper attributes, and its resource
   fork was corrupted.  These attributes should now be set correctly.
   Define the C macro NO_APPLE_XATTR at build time to disable the code
   to set extended attributes.  (fileio.c, globals.h, process.c,
   unix/configure, unix/macosx.h) [SMS]
 - Moved definitions of multi-character option ID codes from individual
   main program modules to a common header file.  (unzip.c, unzpriv.h,
   zipinfo.c) [SMS]
 - On Mac OS X, with "-d exdir", AppleDouble "._" file names were
   mishandled, causing Finder info and resource fork data to be lost.
   Some Mac-specific name handling code has been moved from the general
   extract.c:extract_or_test_entrylist() to a new OS-specific function,
   unix/unix.c:revert_apl_dbl_path().  (extract.c, fileio.c, globals.h,
   unzpriv.h, unix/unix.c) [SMS]
 - On Mac OS X, when archive member patterns were specified explicitly,
   including with a -x/--exclude option, AppleDouble "._" file names
   were mishandled, causing Finder info and resource fork data to be
   lost, or otherwise mishandled.  This happened because a normal name
   and the corresponding "._" name might not match the same patterns, so
   one of the two parts might be processed while the other was not.
   Now, when Mac attributes are being restored (no -J/--junk-attrs
   option, and the destination volume supports attributes), an
   AppleDouble "._" archive member should be processed if the
   corresponding normal archive member is.  (extract.c) [SMS]
 - On Mac OS X, setting non-data-fork attributes/data on a file could
   give it a new modification time, even if the user requested that its
   archived modification time be restored.  (unix/unix.c) [SMS]
 - On Mac OS X, with an Intel CPU, UnZip tried to access a resource fork
   using the old "/rsrc" suffix instead of the newer "/..namedfork/rsrc"
   suffix, and this failed.  After some recent code restructuring,
   unzip.c was not including unix/macosx.h as needed, so the C macro
   APPLE_NFRSRC was not being defined properly.  An undefined
   APPLE_NFRSRC should have been detected, but was not.  (api.c,
   unzip.c) [SMS]
 - Windows DLL builders failed to deal with (optional) bzip2
   compression.  Now, a scheme like that used for UnZip proper is used
   for the DLL.  (windll/vc10/unzip32_dll.sln,
   windll/vc10/libbz2/libbz2.vcxproj,
   windll/vc10/libbz2/libbz2.vcxproj.filters) [SMS]
 - Added or updated copyright and license information in various files.
   (unix/configure, unix/configure_old, unix/Makefile,
   unix/Makefile_old, unix/mlz.sh, unix/test_unzip.sh, unix/zipgrep,
   vms/build_unzip.com, vms/collect_deps.com, vms/cppcld.com,
   vms/cvthelp.tpu, vms/descrip.mms, vms/descrip_mkdeps.mms,
   vms/descrip_src.mms, vms/find_bzip2_lib.com, vms/hlp_lib_next.com,
   vms/makesfx.com, vms/mod_dep.com, vms/optgen.com, vms/test_unzip.com,
   vms/unzip_cli.help, vms/UNZIP_DEF.RNH, vms/UNZIP_MSG.MSG,
   vms/unz_cli.cld, win32/test_unzip.cmd) [SMS]
 - "unzip --zipinfo-mode[...]" should have been equivalent to "unzip -Z
   [...]", but the long option was not handled properly, causing a
   spurious fatal error (message: "error:  -Z must be first option for
   ZipInfo mode (check UNZIP variable?)", followed by two (!) Usage
   guides).  (unzip.c) [SMS]
 - Cleared a compiler complaint (unused variable: p) when building the
   Windows DLL, or an object library without ZipInfo mode.  (unzip.c)
   [SMS]
 - Cleared a Microsoft (VC12) compiler complaint (type mismatch).
   (zipinfo.c) [SMS]
 - Removed a redundant declaration (Zipnfo).  (process.c) [SMS]
 - Updated copyright messages, and corrected a typo ("Built-n").
   (unzip.c) [SMS]
 - Code tidying (comments, #directive indentation, #include path
   simplification).  (windll/structs.h, windll/uzexampl.c,
   windll/windll.c, windll/vc10/unzip32_dll/unzip32_dll.vcxproj,
   windll/vc10/uzexampl/uzexampl.vcxproj) [SMS]
 - Simplified handling of C macros UNIXBACKUP and NO_UNIXBACKUP.
   (unzip.h, unzpriv.h) [SMS]
 - On Unix, "-d exdir" was limited to creating a maximum of one
   directory.  So, for example, "-d fred1/fred2" would fail if the
   directory fred1 did not already exist.  (unix/unix.c) [SMS]
 - On VMS, a long archive path (resulting in a directory specification
   longer than 255 characters) could be truncated, even on an ODS5
   destination file system, where such a path was valid.  (vms/vms.c)
   [SMS]
 - Tidied code based on Cppcheck analysis, GCC _FORTIFY_SOURCE=2, LLVM
   Clang, and some inspection (buffer overflow, syntax error in disused
   code, unused variable/value, memory management, bad error handling,
   bad I/O formats, and so on).  (apihelp.c, crypt.c, extract.c,
   fileio.c, funzip.c, process.c, timezone.c, ttyio.c, unzip.c,
   zipinfo.c, amiga/amiga.c, aosvs/aosvs.c, beos/beos.c,
   macos/source/macbin3.c, macos/source/macdir.c, macos/source/macos.c,
   macos/source/pathname.c, qdos/callstub.c, qdos/makesfx.c,
   tandem/tandem.c, tandem/tanunz.c, theos/_setargv.c, theos/theos.c,
   unix/unix.c, vms/cmdline.c, vms/vms.c, windll/unzipstb.c) [Dmitry,
   SMS].
 - Unrealistic size data in an archive could cause a buffer overflow
   when reporting the resulting unrealistic compression ratio in a
   long listing (-lv) report.  Forum topic:
   http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=432
   (list.c) [SMS]
 - A user response longer than eight characters to an interactive query
   (like, say, "replace XXX? [y]es, [n]o, [A]ll, [N]one, [r]ename: ")
   could be only partially consumed, leaving excess characters to be
   read by a later interactive query, without any additional user
   response.  Now, a whole line should be read, even if only the first
   character is significant.  (extract.c, fileio.c, process.c,
   unzpriv.h, vms/vms.c) [SMS]
 - Changes to accommodate old K&R-style C compilers:  Changed some API
   function declarations/prototypes to remove prototypes where they are
   not supported.  Changed the object-library example program to work
   when prototypes are not supported.  Renamed some members of the
   _version_type structure to avoid conflicts with macros "major" and
   "minor" on SunOS 4.1.4.  Added some type casts to clear some compiler
   complaints.  Indented a "#error" directive.  Added a missing ranlib
   command to the "make" rule for libizunzip.a on Unix.  (api.c,
   apihelp.c, funzip.c, unzip.c, unzip.h, libiz/izunzip_example.c,
   unix/Makefile, windll/unzipstb.c, windll/uzexampl.c) [SMS]
 - Added the method descriptor ("creating", "extracting", "inflating",
   "testing", and so on) to the user progress message.  (extract.c,
   globals.h, unzip.c, unzpriv.h, unix/unix.c, vms/vms.c) [SMS]
 - Restructured "man" documentation directories.  Now, "man" source
   files (*.1) are supplied in a "man/man1/" directory, allowing direct
   use of a "man -M ./man" command in the kit directory.  Formatted
   "man" output files (*.txt) are now supplied in a "docs/" directory.
   (INSTALL, README, unix/configure, unix/Makefile) [SMS]
 - On Unix systems, a temporary object library used during a build for
   some optional feature (for example, liblzma.a) could easily collide
   with an existing system-wide object library or shared object, and
   cause a link failure (undefined symbol, or similar).  Now, these
   temporary object library names include a distinctive prefix,
   "iz_prvt_" which should be enough to avoid the problem.
   (unix/configure, unix/Makefile) [SMS]
 - The Unix builders now support use of the "make" macro PREFIX to
   specify a destination directory tree with the "install" target, and
   MANSUFX replaces MANEXT for modifying the names of the installed
   "man" files.  The "install" target was trying build programs as well
   as just copying them, which was more than it knew how to do.  Some
   obsolete, disfunctional, or experimental targets ("generic_XXX",
   "*shlib*") have been removed.  The rules used to create the formatted
   manual (".txt") files now use "man -M", allowing them to work with
   non-GNU "man" programs.
 - Changed the name of the function zipinfo.c:zipinfo() to zipinform(),
   to clear a compiler complaint on z/OS (CCN3571, "The external name
   zipinfo must not conflict with the name in pragma csect or the csect
   name generated by the compiler.").  (process.c, unzpriv.h, zipinfo.c)
   [SMS]
 - Removed some decisions involving "man" file names and "bin" and "man"
   installation directories from the unix/configure script, allowing
   unix/Makefile to follow explicit user instructions.  ("If you don't
   think too good, don't think too much.")  (unix/configure) [SMS]
 - Added a new variable/macro, COL, to the unix builders to accommodate
   SunOS 4.x, where /bin/col does not support "-x", but /usr/5bin/col
   does.  (unix/configure, unix/Makefile) [SMS]

6.10c09 (13 May 2014):
 - Changed LIBUNZIP macro in the Unix builders to a more versatile
   BINS=[L][M][U] scheme.  (unix/configure, unix/Makefile) [SMS]
 - If memory allocation failed in the unmatched-name detection code for
   file list and -x/--exclude (/EXCLUDE) list names, no notice was
   given, and unmatched names were not reported.  Now, less memory is
   used (char, instead of int arrays), and such (unlikely) failures are
   fatal.  (extract.c) [SMS]

6.10c10 (18 Aug 2014):
 - Reconciled common encryption code with Zip.  (crypt.c, crypt.h) [SMS]
 - Added a dummy/comment C macro, x_SYMLINKS, to the Windows vc10
   builder for UnZipSFX (like the existing one in the UnZip builder).
   (win32/vc10/unzipsfx/unzipsfx.vcxproj) [SMS]
 - Support single-source z/OS MVS builds.  (zos/bbunzip.c,
   zos/build.jcl) [AD]
 - Add z/OS MVS executable and source ship builds.  (zos/xmit.jcl,
   zos/zipsrc.jcl) [AD]
 - Correct ar -X option placement.  (unix/configure) [AD]
 - IBM XL C builds with ICONV=1 to support utf-8 via iconv().
   (unix/configure) [AD]
 - Unix builder script was ignoring some early test results when running
   later tests, causing erroneous configuration related to wide
   characters and Unicode.  (unix/configure) [EG, SMS]

6.10c11 (03 Nov 2014):
 - Windows DLL interface/entry functions Wiz_SingleEntryUnzip() and
   Wiz_UnzipToMemory() were not setting the global flag has_win32_wide,
   causing problems with Unicode/wide file/member names.
   (windll/windll.c) [Andreas Schniertshauer, SMS]
 - Work around MS compiler quirk which caused bad behavior in the
   Windows DLL.  Forum topic:
   http://www.info-zip.org/phpBB3/viewtopic.php?f=4&t=447
   (windll/windll.c) [JBCarpen, SMS]
 - ZipInfo displayed wrong data for MD5 extra block (ID = 0x4b46).
   (zipinfo.c) [Wojtek Michalski]
 - A corrupt (or crafted) archive could cause memory access problems.
   Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=450
   CVE-2014-9636.  (extract.c) [Michal Zalewski, SMS]

6.10c12 (11 Nov 2014):
 - No news.

6.10c13 (26 Dec 2014):
 - Fixed some buffer-overflow problems reported by oCERT (oCERT.org),
   involving corrupt/malicious archives.  CVE-2014-8139, CVE-2014-8140,
   and CVE-2014-8141.  Added some warning messages where corruption was
   detected.  (extract.c, fileio.c, process.c) [SMS]
 - Unix builder was using the wrong linker flags variable names, which
   could cause user-specified values to be ignored.  (unix/Makefile)
   [SMS]
 - VMS MMS/MMK builder used some DCL symbols which could be
   (mis-)interpreted as MMS macros, causing various build problems.
   These now have names ending in "_dcl_sym", which sould avoid such
   collisions.  (vms/descrip_src.mms) [SMS]
 - UnZip could erroneously report "bad AES_WG MAC" for valid data (when
   AES_WG encryption was used).  (extract.c) [SMS]
 - Code tidying.  Moved a VMS-specific variable (terminal echo state)
   from local static storage into the (dynamic) global data structure.
   (globals.c, globals.h, ttyio.c) [SMS]

6.10c14 (03 Jan 2015):
 - Removed the erroneous "fix" made to unix/Makefile in 6.10c13.  Fixed
   an actual error in a comment.  Added '"$(PROD)"/*.dSYM' to the list
   of files removed by the "clean" target (for Mac OS X).
   (unix/Makefile) [SMS]
 - Minor code changes to clear some compiler complaints.  (extract.c)
   [SMS]
 - Limited to VMS a change intended to fix a message format problem on
   VMS.  It was enabled everywhere, but could cause spurious blank lines
   on non-VMS systems.  (fileio.c) [SMS]
 _ Added more details to documentation on build customization.
   (INSTALL) [SMS]
 - Advanced copyright dates in messages to 2015.  (unzip.c) [SMS]

6.10c15 (10 Jan 2015)
 - Spelling changes.  (COPYING.OLD, tandem/README) [SMS]
 - Removed some dead code.  (unzip.c) [SMS]

6.10c16 (18 Mar 2015)
 - VMS MMS/MMK builder problems:
    - Faulty CLEAN_TEST rule could cause failure to remove all test
      files/directories.
    - Missing dependency caused failure to rebuild UNZIP_CLI.EXE when
      UNZIP.OLB changed.
   (vms/descrip.mms) [SMS]
 - Re-fixed a bad "fix" from 6.10c13 for one of the buffer-overflow
   problems reported by oCERT (oCERT.org), CVE-2014-8139.  Symptom was a
   spurious error message like, "bad extra-field entry: EF block length
   (0 bytes) invalid (< 4)".
   Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=454
   (extract.c, unzpriv.h) [SMS]
 - Fixed a buffer-overflow problem reported by William Robinet, in
   ICONV_MAPPING character-set conversion on BeOS and Unix systems.
   CVE-2015-1315.  (beos/beos.c, unix/unix.c) [William Robinet, SMS]
 - Fixed a buffer-overflow problem reported by William Robinet, in
   listings ("unzip -l[l]") with unrealistic compression ratios.  Also,
   the overflow occurred even in short-format (-l) listings although the
   string involved was actually used only in long-format (-ll) listings.
   (list.c, unzpriv.h, zipinfo.c) [William Robinet, SMS]
 - ZipInfo mode (-Z) did not allow diagnostic/info options: --license,
   -so/--show_options, --version, and some program identification
   information was obsolete.  (unzip.c, unzpriv.h, vms/cmdline.c,
   zipinfo.c) [SMS]
 - Changed behavior on non-VMS systems for the "rename" option in
   interactive file-system conflict resolution queries ("replace XXX ?
   [y]es, [n]o, [A]ll, [N]one, [r]ename:").  Previously, the "-d exdir"
   extraction directory could be added to a user-specified file-system
   path which was a relative path (but not to an absolute path).  This
   was confusing, because the path name shown in the query already
   included this directory, so a reasonable copy+paste operation could
   result in the extraction directory being added a second time.  Now,
   the "-d exdir" extraction directory is added to an archive path (when
   it is transformed to a file-system path), and not to a path which is
   already a file-system path (like a "rename" path).  Define the C
   macro EXDIR_RENAME to restore the old behavior.  Not yet changed on
   obsolete systems, pending user requests (and testing on popular
   systems).  Added a space before the "?" in the query message to help
   with copy+paste activity.  (atari/ataricfg.h (new), beos/beocfg.h,
   beos/beos.c, unix/unxcfg.h, unix/unix.c, unzip.c, unzpriv.h,
   win32/win32.c, win32/w32cfg.h) [SMS]
 - Changed behavior on Windows systems with Unicode support enabled
   (NO_UNICODE_SUPPORT not defined).  Previously, action messages
   ("extracting:", "inflating:", and so on) showed the archive member
   path/name, not the destination file-system path/name, as was done
   when Unicode support was disabled (or on non-Windows systems).
   Similarly, the wrong name could be shown in interactive file-system
   conflict resolution queries, as described above.  Some related code
   reorganization changed some variable names in non-Windows-specific
   modules.  (consts.h, extract.c, globals.h, unix/unix.c, unzip.c,
   unzpriv.h, vms/vms.c) [SMS]

6.10c17 (18 Mar 2015)
 - Added a type cast to clear a compiler complaint.  (fileio.c) [SMS]
 - Changed an archive size variable type from z_uint4 to zoff_t for
   better agreement with run-time seek/tell functions.  (globals.h)
   [SMS]

6.10c18 (18 Mar 2015)
 - Repaired damage to REENTRANT-sensitive code (such as the Windows DLL)
   beginning in version 6.10c16.  (extract.c, fileio.c, process.c) [SMS]
 - Missing initialization of some variables related to segmented
   archives could cause spurious error messages: "error:  Unexpected
   end-of-file reading XXX.zip."  (globals.c, unzpriv.h) [Petr Stodulka,
   SMS]

6.1c19 (26 Jun 2015)
 - Repaired damage to AppleDouble extraction in the non-stream case,
   beginning in 6.10c16.  (extract.c) [SMS]
 - The "files tested" count in the error-summary trailer could be wrong
   for a streamed archive, when a list of archive members was specified.
   (extract.c) [SMS]
 - Removed the now-spurious warning, "zipfile claims to be last disk of
   a multi-part archive [...]".  Improved handling of segmented archives
   where the segment size varied.  (fileio.c, globals.h, process.c)
   [Petr Stodulka, SMS]

6.1c20 (16 Mar 2016)
 - One more bug in handling of segmented archives.  (fileio.c) [Petr
   Stodulka, SMS]
 - Incompatible declarations of function and prototype for
   set_zipfn_sgmnt_name().  (fileio.c) [SMS]
 - Since version 6.10b03, if the "external file attributes" for an
   archive member was zero, typically when the archive was created from
   a FAT file system (or similar, so, lacking UNIX-like permissions),
   and then the archive member was extracted on a VMS system, the
   resulting file and directory permissions could be defective.
   (vms/vms.c) [SMS]
 - The zipgrep shell script was erroneously adding backslash escapes to
   pattern strings, making some legitimate egrep patterns behave like
   simple grep patterns.  The zipgrep "usage" text now reminds the user
   (and the developer) that it uses egrep.  (unix/zipgrep) [SMS]
 - UnZip gave unhelpful error messages when trying to process archive
   members with AES_WG encryption and an unsupported compression method
   (for example, JPEG or WavPack).  Now, if AES_WG encryption is not
   supported, then the "skipping" action message should complain about
   "AES_WG_encr".  If AES_WG encryption _is_ supported, then the
   "skipping" action message should complain about the actual
   unsupported compression method.  (AES_WG encryption is denoted by a
   fake "compression method" of 99, and the actual compression method is
   stored in an AES_WG extra block.  In some cases, the AES_WG "99"
   value was being used instead of the actual value from the extra
   block.)  (extract.c) [Elvis Angelaccio, SMS]
 - Revised some "UT"-related comments.  (process.c) [SMS]

6.1c21 (12 May 2017):
 - Changed the Windows DLL UnZip-like example program to send its
   example-specific messages to stderr instead of stdout.  This allows
   the ZipInfo test in the Windows test command script
   (win32/test_unzip.cmd) to pass.  (windll/unzipstb.c) [SMS]
 - Extended the crude, optional, dynamic memory tracing diagnostic
   capability for use by developers to some VMS-specific modules.
   (vms/cmdline.c, vms/vms.c) [SMS]
 - The -da/--auto-extract-dir (/[NO]AUTO_DIRECTORY) option, to create a
   destination directory based on the archive name, was truncating the
   archive name at the leftmost dot, not the rightmost dot, leading to a
   truncated directory name if the archive name included multiple dots.
   (fileio.c) [SMS]
 - Updated the LICENSE notice in source files to "version 2009-Jan-02".
   Updated the copyright date in the LICENSE file itself.  (apihelp.c,
   consts.h, crc32.c, crc32.h, ebcdic.h, envargs.c, explode.c,
   gbloffs.c, globals.c, inflate.h, LICENSE, timezone.c, timezone.h,
   ubz2err.c, unreduce.c, unshrink.c, zip.h, acorn/riscos.c,
   acorn/riscos.h, acorn/swiven.c, acorn/swiven.h, amiga/amiga.h,
   amiga/crc_68.a, amiga/filedate.c, amiga/flate.a, amiga/makesfx.c,
   amiga/stat.c, amiga/z-stat.h, aosvs/aosvs.h, atheos/athcfg.h,
   atheos/atheos.h, beos/beos.h, beos/beosmain.cpp, flexos/flxcfg.h,
   human68k/crc_68.s, human68k/flate.s, macos/README.TXT, macos/UnZp.h,
   macos/UnZpLib.h, macos/UnZpSFX.h, macos/UnZpSx.h,
   macos/source/charmap.h, macos/source/getenv.c,
   macos/source/helpers.c, macos/source/helpers.h,
   macos/source/maccfg.h, macos/source/macdir.c, macos/source/macdir.h,
   macos/source/macscreen.c, macos/source/macstat.c,
   macos/source/macstat.h, macos/source/macstuff.h,
   macos/source/mactime.c, macos/source/mactime.h,
   macos/source/macunzip.c, macos/source/pathname.c,
   macos/source/pathname.h, macos/source/sxunzip.c, msdos/crc_i86.asm,
   msdos/doscfg.h, netware/nlmcfg.h, os2/os2acl.c, os2/os2acl.h,
   os2/os2cfg.h, os2/os2data.h, os2/rexxapi.c, os2/rexxhelp.c,
   qdos/callstub.c, qdos/config.S, qdos/crc68.s, qdos/izqdos.h,
   qdos/makesfx.c, tandem/tandem.c, tandem/tandem.h, tandem/tannsk.h,
   theos/charconv.h, theos/oldstat.h, theos/stat.h, theos/theos.c,
   theos/thscfg.h, theos/_fprintf.c, theos/_isatty.c, theos/_setargv.c,
   theos/_sprintf.c, theos/_stat.c, tops20/tops20.c, unix/macosx.h,
   vms/vmsdefs.h, win32/crc_i386.asm, win32/crc_i386.c,
   win32/crc_lcc.asm, win32/rsxntwin.h, wince/intrface.h,
   wince/punzip.h, wince/punzip.rcv, wince/wince.cpp, wince/winmain.cpp,
   wince/winmain.h, windll/decs.h, windll/windll.h,
   windll/guisfx/dialog.h, zos/vmmvs.c, zos/vmmvs.h, zvm/vmstat.h)
   [EG, SMS]
 - The new command-line parser was not properly handling a double hyphen
   ("--") token, which should stop option interpretation.  When that was
   changed, some loose global variables were moved into the main globals
   structure.
   Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=526
   (globals.c, globals.h, unzip.c, zipinfo.c) [SMS]
 - In the VMS CLI UnZip program (UNZIP_CLI.EXE) in /ZIPINFO mode, the
   /LICENSE qualifier was not recognized.  (vms/cmdline.c,
   vms/unz_cli.cld) [SMS]
 - Simplified handling of the different option lists for UnZip and
   ZipInfo modes.  (unzip.c, unzpriv.h, zipinfo.c) [SMS]
 - Moved some global variables for user-progress messages into the main
   globals structure.  (globals.c, globals.h, unzip.c) [SMS]
 - On Unix, file date-time values in a "UT" (0x5455) extra field block
   could be ignored if a modern "ux" (0x7875) UID/GID block followed it
   (which would be usual for an archive created bu Zip 3.x).  The DOS
   (local) modification date-time (which is always present) would then
   used instead, but it has a two-second resolution and no timezone
   information.  The result was a file modification date-time with an
   even number of seconds, even if the original value was odd, and
   unexpected hours/date caused by the loss of timezone information.
   (process.c) [Andries van Bergen, SMS]
 - In ZipInfo ("-Z", /ZIPINFO) short-format ("-s", /SHORT, default)
   reports, an unexpectedly large compression method value (>999) caused
   a (mostly harmless) buffer overflow, and spoiled the report format.
   Now, values less than 1000 are displayed as before, using a
   three-digit decimal format, "uDDD", but larger values are displayed
   using a four-digit (unlabled) hexadecimal format, "XXXX".
   https://launchpad.net/bugs/1643750  CVE-2016-9844.
   (zipinfo.c) [Alexis Vanden Eijnde, Tyler Hicks, SMS]
 - On VMS, a "%" character in an archive name, or in an archive member
   directory or file name, could cause spurious error/warning messages
   when a caret-escaped percent sign ("^%") was erroneously interpreted
   as a one-character wildcard.  Typical messages included:
      (unzip -T name_with_^%_sign.zip):
   [ Modify file QIO failed. ]
   [ %SYSTEM-W-NOMOREFILES, no more files ]
   warning:  cannot set time for: dev:[dir]name_with_^%_sign.zip;1
      (extracting/creating a directory with a "%"):
   warning:  set-dir-attributes failed ($qiow mod) for dev:[dir]x.DIR;1.
   [ %SYSTEM-W-NOMOREFILES, no more files ]
   warning:  set times/attribs failed for dev:[dir]
     failed setting times/attribs for 1 dir entries
      (extracting a regular file with a "%"):
   [ Cannot create (QIO) output file dev:[dir]name_with^%_sign.txt ]
   [ %SYSTEM-W-BADFILENAME, bad file name syntax ]
   and so on.  In a related problem, on VMS, match.c:iswild() ignored
   caret escapes, causing many non-wildcard names to be considered
   wildcard names.  Also, since VMS V7.2 on non-VAX, "?" is a
   one-character wildcard, equivalent to "%", but was not treated as
   such.  (Correcting this problem makes possible the first of the
   problems shown above.)  For example:
      ($unzip -T name_with_^%_sign.zip)
   unzip:  cannot find any matches for wildcard specification
    "name_with_^%_sign.zip".
   (match.c, vms/vms.c) [Jouk Jansen, SMS]
 - Added "ZCONST" to an argument declaration in action_msg() to clear a
   GCC compiler warning on AIX.  (extract.c) [SMS]
 - Changed some archive data buffer types from "char" to "unsigned
   char".  (extract.c, globals.c, globals.h, fileio.c, process.c,
   unzpriv.h) [SMS]
 - Added code to detect (and, for now, mostly ignore) a Central
   Directory Digital Signature.  Previously, its presence could cause a
   spurious informational message: "note:  didn't find
   end-of-central-dir signature at end of central dir."  Now, it
   triggers an informational message saying that the digital signature
   data were detected but ignored.  (consts.h, extract.c, globals.c,
   globals.h, list.c, process.c, unzpriv.h, zipinfo.c) [Jakub Martisko,
   SMS]
 - When processing a Zip64 (large-file) archive, "unzip -T" could
   generate a spurious informational message, "note:  didn't find
   end-of-central-dir signature at end of central dir."  Otherwise, the
   results seem to have been correct.  (list.c) [SMS]
 - Added a Windows-specific "#pragma comment" directive for the bzip2
   object library in the UnZip object library example program, solving a
   build failure on Windows.  (libiz/izunzip_example.c) [SMS]
 - In the Unix builder, added "LANG=C" to the generation rules ("man",
   nroff) for the ".txt[r]" plain-text formatted "man" files.  This
   prevents a Unicode locale at build time from affecting the results.
   (unix/Makefile) [SMS]
 - Changed a variable type, and added type casts to clear some (VS 2017)
   compiler warnings involving AES_WG encryption on x64 (using
   aes_wg/fileenc.c:fcrypt_init()).  (api.c, crypt.c) [SMS]
 - Tidied Windows vc10 builders, mostly for x64, but some more generally.
   The bzip2 code (bzip2\compress.c) may trigger a harmless warning on
   x64.  Made AES_WG support the default (C macro: CRYPT_AES_WG).
   (win32/vc10/funzip/funzip.vcxproj,
   win32/vc10/unzipsfx/unzipsfx.vcxproj,
   windll/vc10/unzip32_dll/unzip32_dll.vcxproj, winlib/vc10/winlib.sln,
   winlib/vc10/izunzip_example/izunzip_example.vcxproj,
   winlib/vc10/winlib/winlib.vcxproj) [SMS]
 - Build failed with an old C compiler (HP-UX PA-RISC bundled).  In
   process.c:process_zipfiles(), an insufficiently primitve variable
   declaration.  In unzip.c:UzpVersionStr(), a defective array
   declaration/initialization.  (process.c, unzip.c) [SMS]
 - Sloppy code caused various run-time errors when built with an old C
   compiler (HP-UX PA-RISC bundled).  Typical error messages included:
    "zipinfo:  Streaming input archive not supported in ZipInfo mode."
    "End-of-central-directory signature not found."
   (fileio.c, process.c) [SMS]

6.1c22 (08 Jun 2017):
 - Removed the "NOT FOR GENERAL DISTRIBUTION" message from the program
   banner for public beta releases.  New C macro: BETA_MSG.  (unzip.c,
   unzpriv.h, unzvers.h, vms/cmdline.c) [SMS]
 - Removed definition of unused macro RELEASE.  (unzvers.h) [SMS]
 - Invalid archive data could cause the bzip2 expander to loop.
   CVE-2015-7697.  https://sourceforge.net/p/infozip/patches/23/
   Minor code tidying to replace some raw integers with PK_xxx status
   values in the bzip2 expansion code.  (extract.c) [Kamil Dudka, SMS]
 - Made some changes to reduce complaints from Parfait static analysis.
   https://sourceforge.net/p/infozip/patches/21/
    - Added a NULL pointer check in process.c:wide_to_local_string().
    - Extended a static buffer in zipinfo.c:zi_short() to avoid a buffer
      overflow with longer date-time strings.
    - Changed the flow in zipinfo.c:zipinform() to free some storage
      (fn_matched, xn_matched) before returning after an error.  New
      macro: unzpriv.h:SKIP_ZI().
   (process.c, unzpriv.h, zipinfo.c) [Jiri Kukacka, SMS]

6.1c23 (29 Nov 2017):
 - On Windows with Unicode support, for an archive whose paths used
   backslash ("\") directory separators, the backslashes were
   mishandled, resulting in extracted file paths/names like "dir_name"
   instead of "dir\name".  Similar problems could have occurred with
   absolute paths in an archive.  Both backslash directory separators
   and absolute paths violate the standard for zip archives, but they
   can be found in some archives.  UnZip's policy is to treat backslash
   characters as slash characters ("/") for archive members which claim
   to originate on FAT (or similar) file systems, but this was failing
   in some cases on Windows with Unicode support enabled.
   Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=541
   (extract.c) [SMS]
 - On Windows with Unicode support, some name storage could be reused
   inappropriately, resulting in a file with a Unicode name being
   extracted with a (wrong) name left over from some previously
   processed file.
   Forum topic: http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=541
   (fileio.c) [SMS]
 - Some standard memory-allocation function names were still used
   instead of the private ones which support the crude, optional,
   dynamic memory tracing diagnostic capability for use by developers.
   (fileio.c, unzpriv.h, win32/win32.c) [SMS]
 - On Windows with Unicode support, memory leaked when creating a
   directory for extracted files.  (win32/win32.c) [Andreas
   Schniertshauer, SMS]
 - On VMS, in -f/--freshen (/FRESHEN) mode, UnZip did not attempt to
   create nonexistent files, but it would erroneously create a directory
   stack which would lead to a nonexistent file.  For example, in an
   empty directory (where there's nothing to freshen), when freshening
   "a/b/c.txt" UnZip would create "[.a.b]", and then not create "c.txt"
   in it.  Now, as on other systems, when freshening, neither
   directories nor files are created when they do not already exist. 
   (Exception: When overwriting, or creating a new version of, an
   existing file (interactive "[r]ename" option), the user-specified
   directories and file are always created.)  (vms/vms.c) [SMS]
 - Long member names in an archive could cause buffer overflow in
   encryption password processing.  (fileio.c) [R. Freingruber, SMS]
 - Long member names in an archive which require character-set
   conversion could cause buffer overflow in character-set conversion. 
   (fileio.c) [R. Freingruber, SMS]
 - An archive name with no ".zip" suffix caused buffer overflow in
   split-archive segment name ("xxx.z01", ...) formation.  (fileio.c)
   [R. Freingruber, SMS]
 - Invalid extra-field data (EF_STREAM, "xl" extra block) could cause
   buffer overflow.  (extract.c) [R. Freingruber, SMS]