1
UnZip, version 5.5, 17 February 2002
3
Features added (or removed):
6
- unzip.1: added documentation for the new Acorn NFS filetype features [SPC]
7
- generic (inflate.c, globals.h, fileio.c, unzpriv.h): integrated support of
8
Deflate64 for all ports with exception of MSDOS and OS/2 16-bit [SPC]
11
- added Deflate64 support to fUnZip [SPC]
12
- added Deflate64 support for 16-bit environments [SPC]
15
- SFX: made SFX_EXDIR default, added NO_SFXEXDIR option to allow switching
16
off the "-d exdir" support [SPC]
17
- OS2, WIN32: added presetting of file size for extracted files, to reduce
18
file fragmentation [Pavel Lastovicka, Kai Uwe Rommel, SPC]
19
- VMS, new functionality of -b option: when extracting to standard output
20
(-c or -p), -b switches to "binary piping mode" by disabling text data
24
- SFX: added simple "execute command after extraction" feature that uses a
25
command specification supplied with the Zip archive comment, controlled
26
by the CHEAP_SFX_AUTORUN compile time option [Paul Kienitz]
27
- SFX: slightly refined the CHEAP_SFX_AUTORUN code, switched off SFX_EXDIR
28
when CHEAP_SFX_AUTORUN is enabled, documented the new autorun feature [SPC]
29
- VMS: extended new "binary piping" functionality of -b switch to extraction
30
of archive entries with VMS attributes saved [SPC]
33
- extract.c, TestExtraField(): added crc32 check for PKVMS e.f. type [SPC]
34
- added real VMS-e.f. analysis for fool-proof detection of VMS "variable
35
length record" text files, enabled VMS_TEXT_CONV as default (but not for
37
- added support for optional ACORN_FTYPE_NFS feature to more OS that allow
38
long filenames and commas within filenames (BeOS, Novell, OS/2, Theos,
42
- extract.c, extract_or_test_entrylist(): added code for "stripping off
43
absolute path spec" when extracting [SPC]
46
- unzip.h, unzip.c; mapname() in all ports except CMS/MVS, Tandem, TOPS20:
47
added code to strip "../" path components from extracted names and new
48
option "-:" to allow deactivating this security feature; changed mapname()
49
calling interface to allow reporting warning error levels to caller [SPC]
50
- man/unzip.1: documented the new "-:" option [SPC]
51
- vms/cmdline.c etc.: added support for "-:" option to VMS DCL interface;
52
updated VMS help files with description of "-:" option [SPC]
53
- windll/windll.{c|txt}: modified handling of DCL struct's "ndflag" member
54
to allow setting the "-:" option through the windll interface [SPC]
55
- unzpriv.h, zipinfo.c: rudimentary support for recognizing PKWARE's new
56
"64-bit size specs" extra field [SPC]
59
- unix/Makefile: added separate makefile symbol INSTALL_PROGRAM for command
60
to install "binary" (compiled and linked) program files [Santiago Vila]
66
- all OS with Unix-compatible file attributes (Acorn, AosVS, BeOS, QDOS, Unix,
67
and others), mapattr(): corrected wrong masking expression in check for
68
missing directory attribute; added this check for ports where it was
69
still missing [Eric Siegerman, SPC]
70
- inflate.c: reorganized inner loop function for slight performance gain [SPC]
71
- explode.c: reorganized code (2 instead of 4 inner-loop function versions),
72
fixed memory leaks when get_tree() fails (added huft_free() calls) [SPC]
75
- inflate.c: some more optimizations (also resulting in easier readable code)
77
- unzip.c: revised work area size calculation in the WORK_MALLOC case, when
78
the decompression buffer is malloc'ed separately; removed suspicious
79
"one unit excess" allocation (8193 instead of 8192, not clear why this
80
was introduced in ancient times) [SPC]
81
- VMS - cvthelp.tpu, unzip_cli.help: reformatted CLI help file to show negated
82
form of negatable options on a separate line in the header of qualifier
83
descriptions [Hunter Goatley]
84
- generic: renamed version.h into unzvers.h (for better distinction from zip
85
sources) and updated all makefiles [SPC]
86
- windll: changed windll.rc to get version info directly from unzvers.h and
87
killed windll/unzver.h [SPC]
88
- api.c, global.h, extract.c, explode.c, inflate.c, unshrink.c: corrected
89
declarations of variables and function parameters holding redirected buffer
90
size (unsigned vs. ulg issues), added/modified appropiate type casts [SPC]
93
- most make procedures: unzipsfx compilation requires completely separate
94
object files (exception: crc32), because global structure is now different
95
from unzip setup (sfx: no Deflate64!) [Thom Schmidt, SPC]
96
- inflate.c: moved macro definitions for invalid huft code marker out of
97
"no ZLIB only" code part; it is used in huft_build() [Thomas Klausner]
98
- AMIGA, HUMAN68K: replaced specific mkGoff.c helper program sources by a more
99
generic gbloffs.c source (located in the top level directory); adapted
100
makefiles to this change [SPC]
101
- win32/win32: modified version() to recognize Borland C++ 5.5.1 [SPC]
102
- AMIGA: adapted assembler core routine flate.a to Deflate64 and the 64k
103
extraction buffer; adapted inflate setup to allow for 16bit ints in
104
an otherwise 32-bit environment [Paul Kienitz]
105
- human68k/flate.s: incorporated Paul's updates of amiga/flate.a in the
106
HUMAN68K source variant [SPC]
107
- MacOS: updates from MacZip release 1.07b [Dirk Haase]
108
- unzpriv.h: updated exceptions of "made by FAT -> filename charset is OEM"
109
rule to now include the PKZIP 4.0 case [SPC]
110
- unzpriv.h, extract.c zipinfo.c: in preparation to multivolume support,
111
struct min_info has been extended to hold the entry's disk volume number
112
(to conserve space, hostnum & hostver members are shortened to uch) [SPC]
113
- extract.c, extract_or_test_files() function: isolated code of "second loop"
114
in a separate function, in preparation for multivolume support [SPC]
115
- os2/os2.c: use posix-style mkdir definition whenever __GNUC__ is defined,
116
for better compatibility with non-EMX gcc ports [Pavel Lastovicka, SPC]
117
- windll/windll.c: added missing SETLOCALE() initialization to Wiz_Init()
119
- WINDLL port: in windll.c, changed FreeDllMem() scope into static; tried
120
to clarify in windll.txt that Wiz_SetOpts() and Wiz_Unzip() must be
121
used as a pair of functions [SPC]
122
- VMS: removed unused and undocumented /TYPE switch from CLI interface [SPC]
125
- unix/Makefile: correction for LynxOS target [Mark Clayton]
126
- extract.c: synchronized extract_or_test_entrylist() prototype declaration
127
for the SET_DIR_ATTRIB case with actually used function interface [SPC]
128
- vms/descrip.mms: corrected typo in match_$O rule [Michael Lemke]
129
- vms/vms.c: limit buffer size for single block output to less than 64k
130
(RMS limit on VAX); corrected record overflow checks to use the right
131
RMS limit of (32k-1) [Mike Freeman, SPC]
132
- unzver.h: renamed COMPANY_NAME symbol to IZ_COMPANY_NAME, check for
133
symbol being already defined; restrict definition of OS/2-DLL specific
134
version symbols to OS/2 port [Mike White, SPC]
135
- windll/uzexampl.c: corrected inclusion path of unzver.h [Mike White]
136
- acorn/GMakefile: need NO_STRNICMP, fixed missing renaming of version.h
137
into unzvers.h [Andy Wingate]
138
- vms/vms.c: fixed long standing bug BUFS512 expression - clipping to a
139
multiple of 512 is achieved by ANDing with ~511 instead of ~512 [SPC]
142
- vms/vms.c: added missing -c handling in WriteBuffer() to make the "-b"
143
binary piping mode functional [SPC]
146
- OS2, WIN32: reenable -X "restore ACLs" option (has been broken since
147
version 5.42 due to incomplete change by SPC [Michael Ringe, SPC]
148
- moved IZVMS specific e.f. decompression from vms/vms.c into extract.c, this
149
functionality is now needed for generic VMS_TEXT_CONV feature [SPC]
150
- zipinfo.c: fixed 16-bit specific bug in verbose IZVMS e.f. report [SPC]
151
- unix/unxcfg.h: fixed setup for GNU/Hurd [Marcus Brinkmann]
152
- tandem/tandem.c: fixed copy&paste typo in stat() [<YuZH@spdb.com.cn>]
153
- vms/cmdline.c: verbatim '%' signs in format specification strings are
154
"escaped" by doubling them, to prevent compiler warnings for newest
155
DEC (COMPAQ) C versions [Dirk Munk, SPC]
156
- tandem/tanunz.c, tandem/tandem.[ch], fileio.c: created Tandem-specific
157
version of open_outfile(), moved UNZIP part of zipopen() code into this
159
- generic: added ZCONST attributes to several function string pointer
160
parameters when the function does not modify the string contents [SPC]
161
- Contents, README, INSTALL, ToDo, WHERE: documentation updates [SPC]
164
- win32/Makefile.bc: completed support for guisfx stub and static lib [SPC]
165
- vms/vms.c: in find_vms_attrs(), fixed IZVMS ef-block parser which has been
166
broken by changes for 5.5f beta [SPC]
167
- acorn/acorn.c: fixed missing semicolon in setRISCOSexfield() prototype
168
declaration [Andy Wingate]
169
- win32/Makefile.bc: removed -q flag for compatibility with older versions
170
of Borland C++ Builder [E-Yen Tan]
173
- man/*.1: modified manpages to be more "friendly" to automatic conversion
174
tools into the OpenSource "DocBook" format [Eric S. Raymond];
175
tested new manpages and corrected some formatting quirks [SPC]
176
- extract.c: corrected size mismatches between format specifiers and actual
177
numeric arguments [SPC]
178
- msdos/msdos.c: cleanup of token concatenation preprocessor warnings emitted
180
- process.c: moved definition of symbol SPARKID_2 from acorn/riscos.h into
181
this file (symbol used by getRISCOSexfield()) [Santiago Vila, SPC]
182
- unzip.c, unzip() main function, REENTRANT code: fixed signal handler "leak"
183
by saving previous state of all allocated signal handlers and restoring
184
them at function exit [Jim Mathies, SPC]
185
- unzip.h, unzpriv.h: moved "internal" function return codes (IZ_DIR etc.)
186
into the private main header unzpriv.h [SPC]
187
- extract.c, fileio.c: extended UNIXBACKUP optional functionality to create
188
"numbered" backup filenames, fixed behaviour when backup file already
189
exists (-o option switches off numbered backup files and overwrites the
190
first backup file when neccessary) [Mauricio Ponzo, SPC]
191
- unzpriv.h, fileio.c, process.c: changed ZLSEEK macro into a real function
192
seek_zipf() (located in fileio.c); added check of return code to its
193
calls; fixed filehandle leak in do_seekable() that occured in case of
194
ZLSEEK errors [Miki Shapiro, SPC]
195
- wince/intrface.cpp: added SetFileSize() function to preallocate extraction
196
file space, as implemented in the win32 port (dummy function for WinCE
197
native compiles because availability of system service is unknown) [SPC]
198
- funzip.c: changed skope of err() helper function to "static" [Mark Adler]
201
- acorn/acorn.c: correct dir traversal security fix (Acorn uses '^'as parent
202
folder reference); update and enhance the special character translations;
203
static printRISCOSexfield() functions must only be declared when its
204
definition is active [Darren Salt]
205
- unzip.h, unzip.c, man/unzip.1: disabled -: option for Acorn [SPC]
206
- amiga/flate.a, amiga/makefile.azt: modified the way of including gbloffs'
207
output in the assembler inflate code [Paul Kienitz]
208
- gbloffs.c: corrected USE_DEFLATE64 symbol name, added missing type cast to
209
CRYPT symbol handling [Paul Kienitz]
210
- unix/Makefile: corrected and renamed target(s) for MacOS X [Mark Adler, SPC]
211
- acorn/makefile: make does not like recursive macro definitions [Darren Salt]
212
- unreduce.c: indented the #error message directive to hide it from pure
213
traditional K&R C style preprocessors [Peter Jones, SPC]
214
- amiga/filedate.c: exclude time handling code from Zip utility compiles
215
(a Zip change) [Paul Kienitz]
216
- acorn/GMakeFile: updated machine-specific options, used standard "gcc" as
217
command driver for linking [Andy Wingate]
218
- unix/unix.c, mapname(): removed extranous opening parentesis from optional
219
ACORN_FTYPE_NFS only code [Santiago Vila, SPC]
220
- acorn/acorn.c: corrected location of the MimeMap module [Darren Salt]
221
- acorn/riscos.c: fixed problem with readdir() sometimes not detecting end-
222
of-dir on "RISCOS V4 long directory format" FSs [Darren Salt]
223
- msdos/makefile.wat, os2/makefile.os2, win32/Makefile.wat: updated the
224
Watcom C support, checked MSDOS builds, added win32 DLL target [SPC]
227
- acorn/GMakefile, acorn/Contents: made clean target working as expected,
228
updated and moved version info of gcc used (Andy Wingate)
229
- tandem/make: added support for switching on/off of CRYPT option [Dave Smith]
230
- tandem/HISTORY: updated "version of current binaries" info [Dave Smith]
231
- tandem/tanunz.c, open_outfile(): removed unneeded fopen redefines [SPC]
232
- tandem/tanunz.c, checkdir(): fixed missing closing ')' of FnFilter2 macro
234
- LICENSE: clarification that unmodified UnZipSFX stub binaries can be
235
distributed as part of SFX Zip archives without any further documentation
236
requirements [Christian Spieler, Ian E. Gorman, Greg Roelofs]
239
- inflate.c, explode.c, globals.h, unzpriv.h: changed type of "extra bits"
240
arrays used to build the decoding huffman trees from "ush" into "uch" for
241
optimization and adapted corresponding variable types [SPC]
242
- tandem/tandem.c: small cosmetic changes to catch up with Zip mods [SPC]
243
- unzpriv.h, tandem/tandem.h: removed Zip-specific settings, implemented the
244
USE_EF_UT_TIME default setting for both Zip and UnZip in tandem.h, removed
245
corresponding entry from unzpriv.h [SPC]
246
- LICENSE: refinement of the SFX stub related insertion [Greg Roelofs]
247
- windll/windll.rc: updated copyright year [SPC]
248
- msdos/makefile.dj1, msdos/makefile.dj2: added missing header dependencies,
249
corrected wrong object list for unzipsfx target (only .dj1) [SPC]
250
- tandem/tanunz.c, open_outfile(): repaired wrong variable names, added
251
"upshifting" of filename before executing system calls [Dave Smith]
252
- unzpriv.h, TANDEM setup: define INT_16BIT symbol when compiling in NON WIDE
253
mode to get DEFLATE64 option to work [Dave Smith]
254
- win32/Makefile.wat: finished "$(OBJS)" -> "$(OBJU) conversion [Paul Kienitz]
255
- win32/w32cfg.h: Watcom C requires IZTZ_DEFINESTDGLOBALS setting when using
256
the timehandling replacement code from timezone.c [Paul Kienitz]
257
- README, unzvers.h: removed BETA notes for public release [SPC]
258
- os2/os2.c, SetFileSize(): 16-bit OS/2 needs fake code here [Kai-Uwe Rommel]
259
- unzpriv.h: added ZCONST to varmessage() buf arg [Kai-Uwe Rommel, SPC]
260
- os2/os2.c: added #ifndef FUNZIP sections to allow inclusion of this module
261
in the object modules list for 16-bit fUnZip targets [SPC]
262
- os2/makefile.os2: fixed 16-bit targets to include os2f.obj resp. msdosf.obj
263
in the fUnZip object modules list [SPC]
264
- fileio.c, do_string(): added typecasts in CHEAP_SFX_AUTORUN option code to
265
remove signed/unsigned mismatch warnings [Hunter Goatley]
269
These changes occurred in beta versions 5.5a to 5.5. This list may have
270
left out some bugfixes and even some features...void where prohibited, your
271
mileage may vary, etc., etc.