option
UnZip, version 5.5, 17 February 2002

Features added (or removed):

5.5a (04 Feb 01):
 -  unzip.1:  added  documentation for the new Acorn NFS filetype
features [SPC]
 - generic (inflate.c, globals.h, fileio.c, unzpriv.h): integrat-
ed support of
    Deflate64  for  all  ports  with  exception of MSDOS and OS/2
16-bit [SPC]

5.5b (11 Feb 01):
 - added Deflate64 support to fUnZip [SPC]
 - added Deflate64 support for 16-bit environments [SPC]

5.5c (18 Apr 01):
 - SFX: made SFX_EXDIR default, added NO_SFXEXDIR option to allow
switching
    off the "-d exdir" support [SPC]
 - OS2, WIN32: added presetting of file size for extracted files,
to reduce
    file fragmentation [Pavel Lastovicka, Kai Uwe Rommel, SPC]
 - VMS, new functionality of -b option: when extracting to  stan-
dard output
    (-c  or -p), -b switches to "binary piping mode" by disabling
text data
    conversion [SPC]

5.5d (28 Apr 01):
 - SFX: added simple "execute command after  extraction"  feature
that uses a
    command  specification supplied with the Zip archive comment,
controlled
    by the CHEAP_SFX_AUTORUN compile time option [Paul Kienitz]
 - SFX: slightly refined the CHEAP_SFX_AUTORUN code, switched off
SFX_EXDIR
    when CHEAP_SFX_AUTORUN is enabled, documented the new autorun
feature [SPC]
 - VMS: extended new "binary piping" functionality of  -b  switch
to extraction
    of archive entries with VMS attributes saved [SPC]

5.5f (30 Sep 01):
 -  extract.c, TestExtraField(): added crc32 check for PKVMS e.f.
type [SPC]
 - added real VMS-e.f. analysis for fool-proof detection  of  VMS
"variable
    length  record"  text files, enabled VMS_TEXT_CONV as default
(but not for
    SFX stub) [SPC]
 - added support for optional ACORN_FTYPE_NFS feature to more  OS
that allow
    long  filenames  and  commas  within filenames (BeOS, Novell,
OS/2, Theos,
    Win32) [SPC]

5.5g (05 Nov 01):
 - extract.c, extract_or_test_entrylist(): added code for "strip-
ping off
    absolute path spec" when extracting [SPC]

5.5h (12 Jan 02):
 -  unzip.h, unzip.c; mapname() in all ports except CMS/MVS, Tan-
dem, TOPS20:
    added code to strip  "../"  path  components  from  extracted
names and new
    option  "-:"  to  allow  deactivating  this security feature;
changed mapname()
    calling interface to allow reporting warning error levels  to
caller [SPC]
 - man/unzip.1: documented the new "-:" option [SPC]
 -  vms/cmdline.c  etc.: added support for "-:" option to VMS DCL
interface;
    updated VMS help files with description of "-:" option [SPC]
 - windll/windll.{c|txt}: modified handling of DCL struct's  "nd-
flag" member
    to allow setting the "-:" option through the windll interface
[SPC]
 - unzpriv.h,  zipinfo.c:  rudimentary  support  for  recognizing
PKWARE's new
    "64-bit size specs" extra field [SPC]

5.5 (17 Feb 02):
 -  unix/Makefile: added separate makefile symbol INSTALL_PROGRAM
for command
    to install "binary" (compiled and linked) program files [San-
tiago Vila]


Bugs fixed:

5.5a (04 Feb 01):
 -  all  OS  with  Unix-compatible file attributes (Acorn, AosVS,
BeOS, QDOS, Unix,
    and others), mapattr(): corrected wrong masking expression in
check for
    missing directory attribute; added this check for ports where
it was
    still missing [Eric Siegerman, SPC]
 - inflate.c: reorganized inner loop function for slight  perfor-
mance gain [SPC]
 -  explode.c:  reorganized code (2 instead of 4 inner-loop func-
tion versions),
    fixed memory leaks when get_tree() fails  (added  huft_free()
calls) [SPC]

5.5b (11 Feb 01):
 -  inflate.c:  some more optimizations (also resulting in easier
readable code)
    [SPC]
 - unzip.c: revised work area size calculation in the WORK_MALLOC
case, when
    the  decompression  buffer  is  malloc'ed separately; removed
suspicious
    "one unit excess" allocation (8193 instead of 8192, not clear
why this
    was introduced in ancient times) [SPC]
 -  VMS  - cvthelp.tpu, unzip_cli.help: reformatted CLI help file
to show negated
    form of negatable options on a separate line in the header of
qualifier
    descriptions [Hunter Goatley]
 - generic: renamed version.h into unzvers.h (for better distinc-
tion from zip
    sources) and updated all makefiles [SPC]
 - windll: changed windll.rc to get version  info  directly  from
unzvers.h and
    killed windll/unzver.h [SPC]
 -  api.c, global.h, extract.c, explode.c, inflate.c, unshrink.c:
corrected
    declarations of variables  and  function  parameters  holding
redirected buffer
    size  (unsigned  vs.  ulg  issues), added/modified appropiate
type casts [SPC]

5.5c (18 Apr 01):
 - most make procedures: unzipsfx compilation requires completely
separate
    object  files (exception: crc32), because global structure is
now different
    from unzip setup (sfx: no Deflate64!) [Thom Schmidt, SPC]
 - inflate.c: moved macro definitions for invalid huft code mark-
er out of
    "no  ZLIB only" code part; it is used in huft_build() [Thomas
Klausner]
 - AMIGA, HUMAN68K: replaced  specific  mkGoff.c  helper  program
sources by a more
    generic  gbloffs.c  source (located in the top level directo-
ry); adapted
    makefiles to this change [SPC]
 - win32/win32: modified version() to recognize Borland C++ 5.5.1
[SPC]
 - AMIGA: adapted assembler core routine flate.a to Deflate64 and
the 64k
    extraction buffer; adapted inflate setup to allow  for  16bit
ints in
    an otherwise 32-bit environment [Paul Kienitz]
 - human68k/flate.s: incorporated Paul's updates of amiga/flate.a
in the
    HUMAN68K source variant [SPC]
 - MacOS: updates from MacZip release 1.07b [Dirk Haase]
 - unzpriv.h: updated exceptions of  "made  by  FAT  ->  filename
charset is OEM"
    rule to now include the PKZIP 4.0 case [SPC]
 -  unzpriv.h, extract.c zipinfo.c: in preparation to multivolume
support,
    struct min_info has been extended to hold  the  entry's  disk
volume number
    (to  conserve  space, hostnum & hostver members are shortened
to uch) [SPC]
 - extract.c, extract_or_test_files() function: isolated code  of
"second loop"
    in  a  separate function, in preparation for multivolume sup-
port [SPC]
 - os2/os2.c: use posix-style mkdir definition whenever  __GNUC__
is defined,
    for  better  compatibility with non-EMX gcc ports [Pavel Las-
tovicka, SPC]
 - windll/windll.c: added missing SETLOCALE()  initialization  to
Wiz_Init()
    [Kevin Cheng]
 -  WINDLL  port:  in  windll.c,  changed FreeDllMem() scope into
static; tried
    to clarify in windll.txt that Wiz_SetOpts()  and  Wiz_Unzip()
must be
    used as a pair of functions [SPC]
 - VMS: removed unused and undocumented /TYPE switch from CLI in-
terface [SPC]

5.5d (28 Apr 01):
 - unix/Makefile: correction for LynxOS target [Mark Clayton]
 - extract.c: synchronized extract_or_test_entrylist()  prototype
declaration
    for  the  SET_DIR_ATTRIB case with actually used function in-
terface [SPC]
 - vms/descrip.mms: corrected  typo  in  match_$O  rule  [Michael
Lemke]
 -  vms/vms.c:  limit buffer size for single block output to less
than 64k
    (RMS limit on VAX); corrected record overflow checks  to  use
the right
    RMS limit of (32k-1) [Mike Freeman, SPC]
 -  unzver.h:  renamed  COMPANY_NAME  symbol  to IZ_COMPANY_NAME,
check for
    symbol being already defined; restrict definition of OS/2-DLL
specific
    version symbols to OS/2 port [Mike White, SPC]
 -  windll/uzexampl.c: corrected inclusion path of unzver.h [Mike
White]
 - acorn/GMakefile: need NO_STRNICMP, fixed missing  renaming  of
version.h
    into unzvers.h [Andy Wingate]
 -  vms/vms.c: fixed long standing bug BUFS512 expression - clip-
ping to a
    multiple of 512 is achieved by ANDing with  ~511  instead  of
~512 [SPC]

5.5e (29 Apr 01):
 -  vms/vms.c: added missing -c handling in WriteBuffer() to make
the "-b"
    binary piping mode functional [SPC]

5.5f (30 Sep 01):
 - OS2, WIN32: reenable -X "restore ACLs" option (has been broken
since
    version  5.42 due to incomplete change by SPC [Michael Ringe,
SPC]
 - moved IZVMS specific e.f. decompression  from  vms/vms.c  into
extract.c, this
    functionality is now needed for generic VMS_TEXT_CONV feature
[SPC]
 - zipinfo.c: fixed 16-bit specific bug in verbose IZVMS e.f. re-
port [SPC]
 - unix/unxcfg.h: fixed setup for GNU/Hurd [Marcus Brinkmann]
 -    tandem/tandem.c:    fixed   copy&paste   typo   in   stat()
[<YuZH@spdb.com.cn>]
 - vms/cmdline.c: verbatim  '%'  signs  in  format  specification
strings are
    "escaped"  by doubling them, to prevent compiler warnings for
newest
    DEC (COMPAQ) C versions [Dirk Munk, SPC]
 - tandem/tanunz.c, tandem/tandem.[ch], fileio.c: created Tandem-
specific
    version of open_outfile(), moved UNZIP part of zipopen() code
into this
    function [SPC]
 - generic: added ZCONST attributes to  several  function  string
pointer
    parameters  when the function does not modify the string con-
tents [SPC]
 - Contents, README, INSTALL, ToDo, WHERE: documentation  updates
[SPC]

5.5g (05 Nov 01):
 - win32/Makefile.bc: completed support for guisfx stub and stat-
ic lib [SPC]
 - vms/vms.c: in find_vms_attrs(), fixed  IZVMS  ef-block  parser
which has been
    broken by changes for 5.5f beta [SPC]
 -  acorn/acorn.c:  fixed missing semicolon in setRISCOSexfield()
prototype
    declaration [Andy Wingate]
 - win32/Makefile.bc: removed -q flag for compatibility with old-
er versions
    of Borland C++ Builder [E-Yen Tan]

5.5h (12 Jan 02):
 -  man/*.1: modified manpages to be more "friendly" to automatic
conversion
    tools into the OpenSource "DocBook" format [Eric S. Raymond];
    tested  new  manpages  and  corrected  some formatting quirks
[SPC]
 - extract.c: corrected size mismatches between format specifiers
and actual
    numeric arguments [SPC]
 -  msdos/msdos.c:  cleanup  of  token concatenation preprocessor
warnings emitted
    by GCC 3.02 [SPC]
 -  process.c:  moved  definition  of   symbol   SPARKID_2   from
acorn/riscos.h into
    this file (symbol used by getRISCOSexfield()) [Santiago Vila,
SPC]
 - unzip.c, unzip() main function, REENTRANT code:  fixed  signal
handler "leak"
    by saving previous state of all allocated signal handlers and
restoring
    them at function exit [Jim Mathies, SPC]
 - unzip.h, unzpriv.h: moved  "internal"  function  return  codes
(IZ_DIR etc.)
    into the private main header unzpriv.h [SPC]
 - extract.c, fileio.c: extended UNIXBACKUP optional functionali-
ty to create
    "numbered" backup filenames, fixed behaviour when backup file
already
    exists  (-o  option  switches  off  numbered backup files and
overwrites the
    first backup file when neccessary) [Mauricio Ponzo, SPC]
 - unzpriv.h, fileio.c, process.c: changed ZLSEEK  macro  into  a
real function
    seek_zipf() (located in fileio.c); added check of return code
to its
    calls; fixed filehandle leak in do_seekable() that occured in
case of
    ZLSEEK errors [Miki Shapiro, SPC]
 -  wince/intrface.cpp:  added SetFileSize() function to preallo-
cate extraction
    file space, as implemented in the win32 port (dummy  function
for WinCE
    native compiles because availability of system service is un-
known) [SPC]
 - funzip.c: changed skope of err() helper function  to  "static"
[Mark Adler]

5.5i (01 Feb 02):
 -  acorn/acorn.c: correct dir traversal security fix (Acorn uses
'^'as parent
    folder reference); update and enhance the  special  character
translations;
    static  printRISCOSexfield()  functions must only be declared
when its
    definition is active [Darren Salt]
 - unzip.h, unzip.c, man/unzip.1: disabled -:  option  for  Acorn
[SPC]
 - amiga/flate.a, amiga/makefile.azt: modified the way of includ-
ing gbloffs'
    output in the assembler inflate code [Paul Kienitz]
 - gbloffs.c: corrected USE_DEFLATE64 symbol name, added  missing
type cast to
    CRYPT symbol handling [Paul Kienitz]
 -  unix/Makefile:  corrected  and  renamed target(t) for MacOS X
[Mark Adler, SPC]
 - acorn/makefile: make does not like recursive macro definitions
[Darren Salt]
 -  unreduce.c:  indented the #error message directive to hide it
from pure
    traditional K&R C style preprocessors [Peter Jones, SPC]
 - amiga/filedate.c: exclude time handling code from Zip  utility
compiles
    (a Zip change) [Paul Kienitz]
 -  acorn/GMakeFile: updated machine-specific options, used stan-
dard "gcc" as
    command driver for linking [Andy Wingate]
 - unix/unix.c, mapname(): removed extranous  opening  parentesis
from optional
    ACORN_FTYPE_NFS only code [Santiago Vila, SPC]
 -  acorn/acorn.c: corrected location of the MimeMap module [Dar-
ren Salt]
 - acorn/riscos.c: fixed problem with readdir() sometimes not de-
tecting end-
    of-dir on "RISCOS V4 long directory format" FSs [Darren Salt]
 - msdos/makefile.wat, os2/makefile.os2, win32/Makefile.wat:  up-
dated the
    Watcom  C support, checked MSDOS builds, added win32 DLL tar-
get [SPC]

5.5j (11 Feb 02):
 - acorn/GMakefile, acorn/Contents: made clean target working  as
expected,
    updated and moved version info of gcc used (Andy Wingate)
 -  tandem/make:  added support for switching on/off of CRYPT op-
tion [Dave Smith]
 - tandem/HISTORY: updated "version  of  current  binaries"  info
[Dave Smith]
 -  tandem/tanunz.c, open_outfile(): removed unneeded fopen rede-
fines [SPC]
 - tandem/tanunz.c, checkdir(): fixed missing closing ')' of  Fn-
Filter2 macro
    calls [Dave Smith]
 -  LICENSE: clarification that unmodified UnZipSFX stub binaries
can be
    distributed as part of SFX Zip archives without  any  further
documentation
    requirements [Christian Spieler, Ian E. Gorman, Greg Roelofs]

5.5 (17 Feb 02):
 - inflate.c, explode.c, globals.h, unzpriv.h:  changed  type  of
"extra bits"
    arrays  used  to  build the decoding huffman trees from "ush"
into "uch" for
    optimization and adapted corresponding variable types [SPC]
 - tandem/tandem.c: small cosmetic changes to catch up  with  Zip
mods [SPC]
 - unzpriv.h, tandem/tandem.h: removed Zip-specific settings, im-
plemented the
    USE_EF_UT_TIME default setting for both Zip and UnZip in tan-
dem.h, removed
    corresponding entry from unzpriv.h [SPC]
 -  LICENSE:  refinement  of the SFX stub related insertion [Greg
Roelofs]
 - windll/windll.rc: updated copyright year [SPC]
 - msdos/makefile.dj1, msdos/makefile.dj2: added  missing  header
dependencies,
    corrected  wrong  object list for unzipsfx target (only .dj1)
[SPC]
 -  tandem/tanunz.c,  open_outfile():  repaired  wrong   variable
names, added
    "upshifting"  of filename before executing system calls [Dave
Smith]
 - unzpriv.h, TANDEM setup: define INT_16BIT symbol when  compil-
ing in NON WIDE
    mode to get DEFLATE64 option to work [Dave Smith]
 -  win32/Makefile.wat: finished "$(OBJS)" -> "$(OBJU) conversion
[Paul Kienitz]
 - win32/w32cfg.h: Watcom C requires  IZTZ_DEFINESTDGLOBALS  set-
ting when using
    the  timehandling  replacement  code  from  timezone.c  [Paul
Kienitz]
 - README, unzvers.h: removed BETA notes for public release [SPC]

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

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

Christian Spieler