Added:
vendor/unzip/
vendor/unzip/current/
vendor/unzip/current/BUGS
vendor/unzip/current/COPYING.OLD
vendor/unzip/current/Contents
vendor/unzip/current/History.550
vendor/unzip/current/History.551
vendor/unzip/current/History.552
vendor/unzip/current/INSTALL
vendor/unzip/current/LICENSE
vendor/unzip/current/README
vendor/unzip/current/ToDo
vendor/unzip/current/WHERE
vendor/unzip/current/acorn/
vendor/unzip/current/acorn/Contents
vendor/unzip/current/acorn/GMakefile
vendor/unzip/current/acorn/ReadMe
vendor/unzip/current/acorn/RunMe1st
vendor/unzip/current/acorn/acorn.c
vendor/unzip/current/acorn/makefile
vendor/unzip/current/acorn/riscos.c
vendor/unzip/current/acorn/riscos.h
vendor/unzip/current/acorn/srcrename (contents, props changed)
vendor/unzip/current/acorn/swiven.h
vendor/unzip/current/acorn/swiven.s
vendor/unzip/current/amiga/
vendor/unzip/current/amiga/Contents
vendor/unzip/current/amiga/amiga.c
vendor/unzip/current/amiga/amiga.h
vendor/unzip/current/amiga/crc_68.a
vendor/unzip/current/amiga/filedate.c
vendor/unzip/current/amiga/flate.a
vendor/unzip/current/amiga/makefile.azt
vendor/unzip/current/amiga/makesfx.c
vendor/unzip/current/amiga/smakefile
vendor/unzip/current/amiga/stat.c
vendor/unzip/current/amiga/z-stat.h
vendor/unzip/current/aosvs/
vendor/unzip/current/aosvs/Contents
vendor/unzip/current/aosvs/README
vendor/unzip/current/aosvs/aosvs.c
vendor/unzip/current/aosvs/aosvs.h
vendor/unzip/current/aosvs/make_unz.cli
vendor/unzip/current/api.c
vendor/unzip/current/apihelp.c
vendor/unzip/current/atari/
vendor/unzip/current/atari/Contents
vendor/unzip/current/atari/Makefile
vendor/unzip/current/atari/Makefile.old
vendor/unzip/current/atari/README.old
vendor/unzip/current/atari/atari.c
vendor/unzip/current/atari/make_unz.mup
vendor/unzip/current/atheos/
vendor/unzip/current/atheos/Contents
vendor/unzip/current/atheos/Makefile
vendor/unzip/current/atheos/README
vendor/unzip/current/atheos/athcfg.h
vendor/unzip/current/atheos/atheos.c
vendor/unzip/current/atheos/atheos.h
vendor/unzip/current/beos/
vendor/unzip/current/beos/Contents
vendor/unzip/current/beos/Makefile
vendor/unzip/current/beos/README
vendor/unzip/current/beos/beocfg.h
vendor/unzip/current/beos/beos.c
vendor/unzip/current/beos/beos.h
vendor/unzip/current/beos/beosmain.cpp
vendor/unzip/current/beos/unzip.rsc (contents, props changed)
vendor/unzip/current/beos/unzipsfx.rsc (contents, props changed)
vendor/unzip/current/cmsmvs/
vendor/unzip/current/cmsmvs/INSTALL.CMS
vendor/unzip/current/cmsmvs/README.CMS
vendor/unzip/current/cmsmvs/README.MVS
vendor/unzip/current/cmsmvs/WHATSNEW.CMS
vendor/unzip/current/cmsmvs/ccunzip.exec
vendor/unzip/current/cmsmvs/mc.exec
vendor/unzip/current/cmsmvs/mvs.mki
vendor/unzip/current/cmsmvs/unzip.exec
vendor/unzip/current/cmsmvs/unzip.makefile
vendor/unzip/current/cmsmvs/unzmvsc.job
vendor/unzip/current/cmsmvs/unzvmc.exec
vendor/unzip/current/cmsmvs/vmmvs.c
vendor/unzip/current/cmsmvs/vmmvs.h
vendor/unzip/current/cmsmvs/vmstat.h
vendor/unzip/current/cmsmvs/zipinfo.exec
vendor/unzip/current/consts.h
vendor/unzip/current/crc32.c
vendor/unzip/current/crc_i386.S
vendor/unzip/current/crctab.c
vendor/unzip/current/crypt.c
vendor/unzip/current/crypt.h
vendor/unzip/current/ebcdic.h
vendor/unzip/current/envargs.c
vendor/unzip/current/explode.c
vendor/unzip/current/extract.c
vendor/unzip/current/file_id.diz
vendor/unzip/current/fileio.c
vendor/unzip/current/flexos/
vendor/unzip/current/flexos/Contents
vendor/unzip/current/flexos/README
vendor/unzip/current/flexos/flexos.c
vendor/unzip/current/flexos/flxcfg.h
vendor/unzip/current/flexos/hc.pro
vendor/unzip/current/flexos/makefile
vendor/unzip/current/funzip.c
vendor/unzip/current/funzip.txt
vendor/unzip/current/gbloffs.c
vendor/unzip/current/globals.c
vendor/unzip/current/globals.h
vendor/unzip/current/human68k/
vendor/unzip/current/human68k/Contents
vendor/unzip/current/human68k/Makefile
vendor/unzip/current/human68k/crc_68.s
vendor/unzip/current/human68k/flate.s
vendor/unzip/current/human68k/human68k.c
vendor/unzip/current/inflate.c
vendor/unzip/current/inflate.h
vendor/unzip/current/list.c
vendor/unzip/current/macos/
vendor/unzip/current/macos/Contents
vendor/unzip/current/macos/HISTORY.TXT
vendor/unzip/current/macos/README.TXT
vendor/unzip/current/macos/UnZp.h
vendor/unzip/current/macos/UnZpLib.h
vendor/unzip/current/macos/UnZpPrj.xml
vendor/unzip/current/macos/UnZpSFX.h
vendor/unzip/current/macos/UnZpSx.h
vendor/unzip/current/macos/source/
vendor/unzip/current/macos/source/charmap.h
vendor/unzip/current/macos/source/getenv.c
vendor/unzip/current/macos/source/helpers.c
vendor/unzip/current/macos/source/helpers.h
vendor/unzip/current/macos/source/macbin3.c
vendor/unzip/current/macos/source/macbin3.h
vendor/unzip/current/macos/source/maccfg.h
vendor/unzip/current/macos/source/macdir.c
vendor/unzip/current/macos/source/macdir.h
vendor/unzip/current/macos/source/macos.c
vendor/unzip/current/macos/source/macscreen.c
vendor/unzip/current/macos/source/macstat.c
vendor/unzip/current/macos/source/macstat.h
vendor/unzip/current/macos/source/macstuff.h
vendor/unzip/current/macos/source/mactime.c
vendor/unzip/current/macos/source/mactime.h
vendor/unzip/current/macos/source/macunzip.c
vendor/unzip/current/macos/source/pathname.c
vendor/unzip/current/macos/source/pathname.h
vendor/unzip/current/macos/source/sxunzip.c
vendor/unzip/current/macos/source/unzip_rc.hqx
vendor/unzip/current/man/
vendor/unzip/current/man/Contents
vendor/unzip/current/man/funzip.1
vendor/unzip/current/man/unzip.1
vendor/unzip/current/man/unzipsfx.1
vendor/unzip/current/man/zipgrep.1
vendor/unzip/current/man/zipinfo.1
vendor/unzip/current/match.c
vendor/unzip/current/msdos/
vendor/unzip/current/msdos/Contents
vendor/unzip/current/msdos/README
vendor/unzip/current/msdos/crc_i86.asm
vendor/unzip/current/msdos/doscfg.h
vendor/unzip/current/msdos/makefile.bc
vendor/unzip/current/msdos/makefile.dj1
vendor/unzip/current/msdos/makefile.dj2
vendor/unzip/current/msdos/makefile.emx
vendor/unzip/current/msdos/makefile.msc
vendor/unzip/current/msdos/makefile.tc
vendor/unzip/current/msdos/makefile.wat
vendor/unzip/current/msdos/msc51opt.dif
vendor/unzip/current/msdos/msdos.c
vendor/unzip/current/novell/
vendor/unzip/current/novell/Contents
vendor/unzip/current/novell/README
vendor/unzip/current/novell/makefile.wat
vendor/unzip/current/novell/nlm_EOL.pat
vendor/unzip/current/novell/nlmcfg.h
vendor/unzip/current/novell/novell.c
vendor/unzip/current/novell/unzip.build
vendor/unzip/current/novell/unzip.link
vendor/unzip/current/os2/
vendor/unzip/current/os2/Contents
vendor/unzip/current/os2/makefile.os2
vendor/unzip/current/os2/os2.c
vendor/unzip/current/os2/os2acl.c
vendor/unzip/current/os2/os2acl.h
vendor/unzip/current/os2/os2cfg.h
vendor/unzip/current/os2/os2data.h
vendor/unzip/current/os2/rexxapi.c
vendor/unzip/current/os2/rexxapi.def
vendor/unzip/current/os2/rexxhelp.c
vendor/unzip/current/os2/rexxtest.cmd
vendor/unzip/current/os2/stub.def
vendor/unzip/current/os2/unzip.def
vendor/unzip/current/os2/zgrepapi.cmd
vendor/unzip/current/os2/zip2exe.cmd
vendor/unzip/current/os2/zipgrep.cmd
vendor/unzip/current/process.c
vendor/unzip/current/proginfo/
vendor/unzip/current/proginfo/3rdparty.bug
vendor/unzip/current/proginfo/CONTRIBS
vendor/unzip/current/proginfo/Contents
vendor/unzip/current/proginfo/ZipPorts
vendor/unzip/current/proginfo/defer.in
vendor/unzip/current/proginfo/extra.fld
vendor/unzip/current/proginfo/fileinfo.cms
vendor/unzip/current/proginfo/nt.sd
vendor/unzip/current/proginfo/perform.dos
vendor/unzip/current/proginfo/timezone.txt
vendor/unzip/current/proginfo/ziplimit.txt
vendor/unzip/current/qdos/
vendor/unzip/current/qdos/Contents
vendor/unzip/current/qdos/IZREADME.SMS
vendor/unzip/current/qdos/Makefile
vendor/unzip/current/qdos/callstub.c
vendor/unzip/current/qdos/config.S
vendor/unzip/current/qdos/crc68.s
vendor/unzip/current/qdos/izqdos.h
vendor/unzip/current/qdos/makesfx.c
vendor/unzip/current/qdos/qdos.c
vendor/unzip/current/tables.h
vendor/unzip/current/tandem/
vendor/unzip/current/tandem/Contents
vendor/unzip/current/tandem/HISTORY
vendor/unzip/current/tandem/README
vendor/unzip/current/tandem/commacs
vendor/unzip/current/tandem/doit
vendor/unzip/current/tandem/macros
vendor/unzip/current/tandem/make
vendor/unzip/current/tandem/makesfx
vendor/unzip/current/tandem/tandem.c
vendor/unzip/current/tandem/tandem.h
vendor/unzip/current/tandem/tannsk.h
vendor/unzip/current/tandem/tanunz.c
vendor/unzip/current/testmake.zip (contents, props changed)
vendor/unzip/current/theos/
vendor/unzip/current/theos/Contents
vendor/unzip/current/theos/_fprintf.c
vendor/unzip/current/theos/_isatty.c
vendor/unzip/current/theos/_setargv.c
vendor/unzip/current/theos/_sprintf.c
vendor/unzip/current/theos/_stat.c
vendor/unzip/current/theos/charconv.h
vendor/unzip/current/theos/makefile
vendor/unzip/current/theos/oldstat.h
vendor/unzip/current/theos/stat.h
vendor/unzip/current/theos/theos.c
vendor/unzip/current/theos/thscfg.h
vendor/unzip/current/timezone.c
vendor/unzip/current/timezone.h
vendor/unzip/current/tops20/
vendor/unzip/current/tops20/Contents
vendor/unzip/current/tops20/make.mic
vendor/unzip/current/tops20/rename.mic
vendor/unzip/current/tops20/tops20.c
vendor/unzip/current/ttyio.c
vendor/unzip/current/ttyio.h
vendor/unzip/current/unix/
vendor/unzip/current/unix/Contents
vendor/unzip/current/unix/Makefile
vendor/unzip/current/unix/Packaging/
vendor/unzip/current/unix/Packaging/README
vendor/unzip/current/unix/Packaging/pkginfo.in
vendor/unzip/current/unix/Packaging/postinstall
vendor/unzip/current/unix/Packaging/preinstall.in
vendor/unzip/current/unix/Packaging/prototype
vendor/unzip/current/unix/unix.c
vendor/unzip/current/unix/unxcfg.h
vendor/unzip/current/unix/zipgrep
vendor/unzip/current/unreduce.c
vendor/unzip/current/unshrink.c
vendor/unzip/current/unzip.c
vendor/unzip/current/unzip.h
vendor/unzip/current/unzip.txt
vendor/unzip/current/unzipsfx.txt
vendor/unzip/current/unzipstb.c
vendor/unzip/current/unzpriv.h
vendor/unzip/current/unzvers.h
vendor/unzip/current/vms/
vendor/unzip/current/vms/00binary.vms
vendor/unzip/current/vms/Contents
vendor/unzip/current/vms/README
vendor/unzip/current/vms/cmdline.c
vendor/unzip/current/vms/cvthelp.tpu
vendor/unzip/current/vms/descrip.mms
vendor/unzip/current/vms/link_unz.com
vendor/unzip/current/vms/make_unz.com
vendor/unzip/current/vms/makesfx.com
vendor/unzip/current/vms/unz_cli.cld
vendor/unzip/current/vms/unzip.opt
vendor/unzip/current/vms/unzip_cli.help
vendor/unzip/current/vms/unzip_def.rnh
vendor/unzip/current/vms/unzipsfx.hlp
vendor/unzip/current/vms/unzipsfx.opt
vendor/unzip/current/vms/vms.c
vendor/unzip/current/vms/vms.h
vendor/unzip/current/vms/vmsdefs.h
vendor/unzip/current/win32/
vendor/unzip/current/win32/Contents
vendor/unzip/current/win32/Makefile
vendor/unzip/current/win32/Makefile.bc
vendor/unzip/current/win32/Makefile.dj
vendor/unzip/current/win32/Makefile.emx
vendor/unzip/current/win32/Makefile.gcc
vendor/unzip/current/win32/Makefile.lcc
vendor/unzip/current/win32/Makefile.wat
vendor/unzip/current/win32/crc_i386.asm
vendor/unzip/current/win32/crc_i386.c
vendor/unzip/current/win32/crc_lcc.asm
vendor/unzip/current/win32/nt.c
vendor/unzip/current/win32/nt.h
vendor/unzip/current/win32/rsxntwin.h
vendor/unzip/current/win32/vc6/
vendor/unzip/current/win32/vc6/funzip.dsp
vendor/unzip/current/win32/vc6/unzip.dsp
vendor/unzip/current/win32/vc6/unzip.dsw
vendor/unzip/current/win32/vc6/unzipsfx.dsp
vendor/unzip/current/win32/w32cfg.h
vendor/unzip/current/win32/win32.c
vendor/unzip/current/wince/
vendor/unzip/current/wince/Contents
vendor/unzip/current/wince/README
vendor/unzip/current/wince/ilmask.bmp (contents, props changed)
vendor/unzip/current/wince/imglist.2bp (contents, props changed)
vendor/unzip/current/wince/imglist.bmp (contents, props changed)
vendor/unzip/current/wince/inc/
vendor/unzip/current/wince/inc/conio.h
vendor/unzip/current/wince/inc/errno.h
vendor/unzip/current/wince/inc/locale.h
vendor/unzip/current/wince/inc/signal.h
vendor/unzip/current/wince/inc/stdio.h
vendor/unzip/current/wince/intrface.cpp
vendor/unzip/current/wince/intrface.h
vendor/unzip/current/wince/punzip.h
vendor/unzip/current/wince/punzip.htp
vendor/unzip/current/wince/punzip.ic2 (contents, props changed)
vendor/unzip/current/wince/punzip.ico (contents, props changed)
vendor/unzip/current/wince/punzip.rc
vendor/unzip/current/wince/punzip.rcv
vendor/unzip/current/wince/resource.h
vendor/unzip/current/wince/toolbar.2bp (contents, props changed)
vendor/unzip/current/wince/toolbar.bmp (contents, props changed)
vendor/unzip/current/wince/vc5/
vendor/unzip/current/wince/vc5/punzip.dsp
vendor/unzip/current/wince/vc6/
vendor/unzip/current/wince/vc6/punzip.dsp
vendor/unzip/current/wince/vcEMbed3/
vendor/unzip/current/wince/vcEMbed3/punzip.vcp
vendor/unzip/current/wince/vcEMbed3/unzipcmd.vcp
vendor/unzip/current/wince/vcEMbed3/unzipwce.vcw
vendor/unzip/current/wince/wcecfg.h
vendor/unzip/current/wince/wcemain.c
vendor/unzip/current/wince/wince.cpp
vendor/unzip/current/wince/wince.h
vendor/unzip/current/wince/winmain.cpp
vendor/unzip/current/wince/winmain.h
vendor/unzip/current/wince/zipfile.ic2 (contents, props changed)
vendor/unzip/current/wince/zipfile.ico (contents, props changed)
vendor/unzip/current/windll/
vendor/unzip/current/windll/Contents
vendor/unzip/current/windll/decs.h
vendor/unzip/current/windll/guisfx/
vendor/unzip/current/windll/guisfx/dialog.h
vendor/unzip/current/windll/guisfx/sfxw.ico (contents, props changed)
vendor/unzip/current/windll/guisfx/sfxwiz.c
vendor/unzip/current/windll/guisfx/sfxwiz.dlg
vendor/unzip/current/windll/guisfx/sfxwiz.rc
vendor/unzip/current/windll/guisfx/sfxwiz16.mak
vendor/unzip/current/windll/guisfx/unzsfx16.def
vendor/unzip/current/windll/structs.h
vendor/unzip/current/windll/unziplib.def
vendor/unzip/current/windll/uzexampl.c
vendor/unzip/current/windll/uzexampl.h
vendor/unzip/current/windll/vb/
vendor/unzip/current/windll/vb/VBReadMe.txt
vendor/unzip/current/windll/vb/vbunzip.bas
vendor/unzip/current/windll/vb/vbunzip.frm
vendor/unzip/current/windll/vb/vbunzip.vbp
vendor/unzip/current/windll/vb/vbunzip.vbw
vendor/unzip/current/windll/vc5/
vendor/unzip/current/windll/vc5/dll/
vendor/unzip/current/windll/vc5/dll/unz32dll.dsp
vendor/unzip/current/windll/vc5/lib/
vendor/unzip/current/windll/vc5/lib/unz32lib.dsp
vendor/unzip/current/windll/vc5/sfx/
vendor/unzip/current/windll/vc5/sfx/SFXWiz32.dsp
vendor/unzip/current/windll/vc5/sfx/SFXWiz32.dsw
vendor/unzip/current/windll/vc5/sfx/unzsfx32.dsp
vendor/unzip/current/windll/vc5/unzip32.dsw
vendor/unzip/current/windll/vc6/
vendor/unzip/current/windll/vc6/dll/
vendor/unzip/current/windll/vc6/dll/unz32dll.dsp
vendor/unzip/current/windll/vc6/lib/
vendor/unzip/current/windll/vc6/lib/unz32lib.dsp
vendor/unzip/current/windll/vc6/sfx/
vendor/unzip/current/windll/vc6/sfx/SFXWiz32.dsp
vendor/unzip/current/windll/vc6/sfx/SFXWiz32.dsw
vendor/unzip/current/windll/vc6/sfx/unzsfx32.dsp
vendor/unzip/current/windll/vc6/unzip32.dsw
vendor/unzip/current/windll/windll.c
vendor/unzip/current/windll/windll.h
vendor/unzip/current/windll/windll.rc
vendor/unzip/current/windll/windll.txt
vendor/unzip/current/windll/windll16.def
vendor/unzip/current/windll/windll32.def
vendor/unzip/current/windll/windll_lc.def
vendor/unzip/current/windll/windllgcc.def
vendor/unzip/current/zip.h
vendor/unzip/current/zipgrep.txt
vendor/unzip/current/zipinfo.c
vendor/unzip/current/zipinfo.txt
Log:
unzip552 imported
Added: vendor/unzip/current/BUGS
==============================================================================
--- (empty file)
+++ vendor/unzip/current/BUGS Sun Jun 15 20:29:04 2008
@@ -0,0 +1,80 @@
+Bogus bugs (not our fault!):
+---------------------------
+
+ By far THE BIGGEST source of bug reports to Info-ZIP/zip-bugs is the
+ incorrect transfer of zipfiles (or of the UnZip executable itself).
+ ALWAYS TRANSFER IN BINARY MODE! This includes ftp transfers and *both*
+ ends of a Kermit connection ("set file type binary"). If your copy
+ isn't exactly the same size as the original, you made a mistake.
+
+ Another common source of errors such as "compression method 8 not sup-
+ ported" is the existence of an old version of UnZip somewhere in your
+ path. Make sure you're using the version you think you're using; give
+ the full path explicitly if necessary. Executing "unzip" without any
+ options will print a help screen, at the top of which is the UnZip
+ version number and release date; and executing "unzip -v" without any
+ zipfile or other options will give information about what compiler was
+ used, the target operating system, any special UnZip options, and the
+ date of compilation--only for version 5.11 and later, though! (Also,
+ under Unix C shell and some Bourne shells, "which unzip" will print
+ the path of the unzip you're actually using. Under OS/2 and MS-DOS,
+ whch21gr.zip [on Simtel mirror sites] will do the same thing; in addi-
+ tion, "which -a unzip" will show *all* copies of "unzip" in your path.)
+
+
+Bugs (real and/or imagined):
+---------------------------
+
+ - [OS/2 DLL] when trying to use the REXX function UzUnZipToStem to
extract a
+ file with `&' in its name, the DLL crashes (but UzUnZipToVar still works)
+ [Daniel H, 961215]
+ - UnZip has problems with archives bigger than 2GB; it may
print "note: didn't
+ find end-of-central-dir signature at end of central dir"
(harmless) or
+ may not be able to seek to member files [James Lemley 970107, Iris Spaniol
+ 970206, ...]
+
+ - fix overwrite behavior: hidden/system problems?; etc.
+ - 32-bit DOS UnZip still unable to set volume labels?
+ - 32-bit DOS UnZip under OS/2 doesn't extract all wildcard zipfiles?
+ [DOS box: unzip386 (ver 5.12) x:\32bit\unix\emx09a\*.zip, Hobbes 3/95]
+ - 32-bit DOS UnZip under OS/2 doesn't set timestamp when overwriting files
+ on HPFS partition? (go32 and pmode/w both; emx/rsx OK) [Eberhard Mattes
+ 950726]
+ - USE_FWRITE still causes occasional CRC errors when extracting on Pyramid?
+ [Kevin Fritz 931102]
+ - still NT/W95 bug with "unzip -v d:*.zip" not matching properly?
[Steve S
+ 940527]
+ 980427: bug no longer exists, Opendir() must have been corrected
by someone
+
+ - when ^Z received in no-echo mode, echo is not restored (works OK if
+ resume, however)
+ - signal() handler disabled after first use with one of BSD/SysV?
+ - MKS Korn shell: unzip assumes the MKS-style command-line environment
+ options are relevant to it, but this is not the case if unzip was called
+ by another program (e.g., from a .BAT file). A fix for this
exists for
+ Borland compilers but not for MSC, Watcom, djgpp, etc.
+ - OS/2: for paths with one long component, the .LONGNAME EA may be
saved for
+ all components (waste of disk space): how to check??
+ - VMS: for extracting to other directories, only the VMS-style "-d [.foo]"
+ format is accepted; "-d foo" should also be allowed. Long
filenames are
+ not automatically truncated to 39.39.
+ - Novell Netware: Netware drives may clear the archive bit on extracted
+ files under OS/2 and/or MS-DOS. UnZip always *tries* to set the archive
+ bit, however. [pynq@uchicago, 940527]
+ - DEC Ultrix: on long zipfiles, unzip will sometimes fail (bad CRC,
not always
+ reproducible); this is apparently due either to a hardware bug
(cache mem)
+ or OS bug (page faults?) [Igor, Jean-loup, bottom of BUGS.long]
+ - funzip/more/decryption/no-echo bug: race condition(?) causes
terminal to
+ be "reset" to no-echo state
+ - Macintosh (100200), Atari (020000) external file attributes not interpreted
+ correctly (both unzip and zipinfo)
+ - pkbug error: zipfile with incorrect csize and/or ucsize--check for
end of
+ compressed (csize) data in uncompression routines:
+ unreduce.c: while (((outpos + outcnt) < ucsize) && (!zipeof)) {
+ [James Birdsall, Mark, bottom of BUGS.long]
+ - OS/2: directory EAs not restored if directory exists [Kai Uwe, KG27515@uark]
+ (subsequent note: no way to determine which EAs are newer ==> cannot
+ restore without user input)
+ (update: as of UnZip 5.30, option -o forces restoring of directory EAs)
+ - MS-DOS: Borland executables don't allow other than 80-column, 25/43/50-line
+ screen modes (Borland bug) [Michael Stillwell]
Added: vendor/unzip/current/COPYING.OLD
==============================================================================
--- (empty file)
+++ vendor/unzip/current/COPYING.OLD Sun Jun 15 20:29:04 2008
@@ -0,0 +1,212 @@
+__________________________________________________________________________
+
+ This is the Info-ZIP file COPYING (for UnZip), last updated 17 Jul 2000.
+__________________________________________________________________________
+
+ FIRST NOTE:
+ This file contains some details about the copyright history of
+ contributions to the UnZip project.
+ Additionally, it summarises some exceptions to the general BSD-like
+ copyright found in LICENSE that covers our generic code and most of
+ the system specific ports.
+ Please read LICENSE first to find out what is allowed to do with
+ Info-ZIP's UnZip code.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
+
+ There are currently two explicit copyrights on portions of UnZip
+ code (at least, of which Info-ZIP is aware):
+ Jim Luther's Mac OS File Manager interface code; and Christopher Evans'
+ MacBinaryIII coding code (for the MacOS port).. These copyrights
+ are discussed in more detail below.
+
+ All remaining code is now (starting with UnZip version 5.41) covered
+ by the new Info-ZIP license. For details, please read the acompaning
+ file LICENSE. The terms and conditions in this license supersede the
+ copyright conditions of the contributions by Igor Mandrichenko
+ (vms/vms.c), Greg Roelofs (zipinfo.c, new version of unshrink.c),
+ Mike White (Windows DLL code in "windll/*"), Steve P. Miller (Pocket
+ UnZip GUI "wince/*"), and Mark Adler (inflate/explode decompresseion
+ core routines, previously put into the public domain). All these
+ Info-ZIP contributors (or "primary" authors) have permitted us to
+ replace their copyright notes by the Info-ZIP License.
+
+ Frequently Asked Questions regarding (re)distribution of Zip and UnZip
+ are near the end of this file.
+
+ There are no known patents on any of the code in UnZip. Unisys
+ claims a patent on LZW encoding and on LZW decoding _in an apparatus
+ that performs LZW encoding_, but the patent appears to exempt a stand-
+ alone decoder (as in UnZip's unshrink.c). Unisys has publicly claimed
+ otherwise, but the issue has never been tested in court. Since this
+ point is unclear, unshrinking is not enabled by default. It is the
+ responsibility of the user to make his or her peace with Unisys and
+ its licensing requirements. (unshrink.c may be removed from future
+ releases altogether.)
+__________________________________________________________________________
+
+ The original unzip source code has been extensively modified and
+ almost entirely rewritten (changes include random zipfile access
+ rather than sequential; replacement of unimplode() with explode();
+ replacement of old unshrink() with new (unrelated) unshrink(); re-
+ placement of output routines; addition of inflate(), wildcards,
+ filename-mapping, text translation, ...; etc.). As far as we can
+ tell, only the core code of the unreduce method remained substantially
+ similar to Mr. Smith's original source. As of UnZip 5.42, the complete
+ core code is now covered by the Info-ZIP Licence. Therefore, support
+ for the reduce method has been removed.
+ The drop of the reduce method should only affect some test archives,
+ reducing was never used in any publically distributed Zip program.
+ For pathologic cases where support for reduced archive entries is
+ needed, the unreduce code copyrighted by Samuel H. Smith is available
+ as a separate distribution (the restricted copyright of this code is
+ cited below in the "historical" section).
+
+ The following copyright applies to the Mac OS File Manager
interface code
+ (macos/source/macstuff.[ch]), distributed with UnZip 5.4 and later:
+
+ * MoreFiles
+ *
+ * A collection of File Manager and related routines
+ *
+ * by Jim Luther (Apple Macintosh Developer Technical Support Emeritus)
+ * with significant code contributions by Nitin Ganatra
+ * (Apple Macintosh Developer Technical Support Emeritus)
+ * Copyright 1992-1998 Apple Computer, Inc.
+ * Portions copyright 1995 Jim Luther
+ * All rights reserved.
+ * The Package "More Files" is distributed under the following
+ * license terms:
+ *
+ * "You may incorporate this sample code into your
+ * applications without restriction, though the
+ * sample code has been provided "AS IS" and the
+ * responsibility for its operation is 100% yours.
+ * However, what you are not permitted to do is to
+ * redistribute the source as "DSC Sample Code" after
+ * having made changes. If you're going to
+ * redistribute the source, we require that you make
+ * it clear in the source that the code was descended
+ * from Apple Sample Code, but that you've made
+ * changes."
+
+ The usage terms of this copyright note are compatible with the
+ Info-ZIP license, they do not add further restrictions.
+
+
+ The following copyright applies to the Mac OS "macbin3" decoding code
+ (extra field compatibility with ZipIt):
+
+ * MacBinaryIII.h
+ *
+ * Copyright 1997 Christopher Evans (cev...@poppybank.com)
+ *
+ * Basic encoding and decoding of Macintosh files to the
+ * MacBinary III spec.
+ * ----------------------------------------------------------------------
+ * This source is copyrighted by Christopher Evans (cev...@poppybank.com)
+ * (available at ftp://ftp.lazerware.com/MacBinaryIII_src_C.sit
+ * homepage of Leonard Rosenthol leon...@netcom.com)
+
+ This copyright note does not contain any usage terms. So, we assume
+ that this code is freely reusable until we are proved wrong...
+
+--------------------------------------------------------------------------
+
+ The remaining copyright notes have been superseeded by the new
+ Info-ZIP license, with explicit permission from the respective
+ original authors. They are cited here for historical reasons,
+ only:
+
+ The following copyright applies to the full-featured unreduce.c
+ (now distributed separately):
+
+ * Copyright 1989 Samuel H. Smith; All rights reserved
+ *
+ * Do not distribute modified versions without my permission.
+ * Do not remove or alter this notice or any other copyright notice.
+ * If you use this in your own program you must distribute source code.
+ * Do not use any of this in a commercial product.
+
+ Regarding the first stipulation, Mr. Smith was tracked down in southern
+ California some years back [Samuel H. Smith, The Tool Shop; as of mid-
+ May 1994, (213) 851-9969 (voice), (213) 887-2127(?) (subscription BBS),
+ 71150...@compuserve.com]:
+
+ "He says that he thought that whoever contacted him understood that
+ he has no objection to the Info-ZIP group's inclusion of his code.
+ His primary concern is that it remain freely distributable, he said."
+
+ Despite the fact that our "normal" code has been entirely rewritten
+ and by default no longer contains any of Mr. Smith's code, Info-ZIP
+ remains indebted and grateful to him. We hope he finds our contribu-
+ tions as useful as we have his.
+
+ Note that the third and fourth stipulations still apply to any com-
+ pany that wishes to incorporate the unreduce code into its products;
+ if you wish to do so, you must contact Mr. Smith directly regarding
+ licensing.
+
+ -----
+
+ The following copyright applied to most of the VMS code in vms.c,
+ distributed with UnZip version 4.2 and later:
+
+ * Copyright (c) 1992-93 Igor Mandrichenko.
+ * Permission is granted to any individual or institution to use, copy,
+ * or redistribute this software so long as all of the original files
+ * are included unmodified and that this copyright notice is retained.
+
+ -----
+
+ The following copyright applied to the new version of unshrink.c,
+ distributed with UnZip version 5.2 and later:
+
+ * Copyright (c) 1994 Greg Roelofs.
+ * Permission is granted to any individual/institution/corporate
+ * entity to use, copy, redistribute or modify this software for
+ * any purpose whatsoever, subject to the conditions noted in the
+ * Frequently Asked Questions section below, plus one additional
+ * condition: namely, that my name not be removed from the source
+ * code. (Other names may, of course, be added as modifications
+ * are made.) Corporate legal staff (like at IBM :-) ) who have
+ * problems understanding this can contact me through Zip-Bugs...
+
+ -----
+
+ The following copyright applied to the Windows DLL code (windll/*),
+ distributed with UnZip version 5.2 and later:
+
+ * Copyright (c) 1996 Mike White.
+ * Permission is granted to any individual or institution to use,
+ * copy, or redistribute this software so long as all of the original
+ * files are included, that it is not sold for profit, and that this
+ * copyright notice is retained.
+
+ -----
+
+ The following copyright applied to the Windows CE GUI port, ``Pocket
+ UnZip,'' distributed with UnZip version 5.3 and later:
+
+ * All the source files for Pocket UnZip, except for components
+ * written by the Info-ZIP group, are copyrighted 1997 by Steve P.
+ * Miller. The product "Pocket UnZip" itself is property of the
+ * author and cannot be altered in any way without written consent
+ * from Steve P. Miller.
+
+ -----
+
+ The remaining code was written by many people associated with the
+ Info-ZIP group, with large contributions from (but not limited to):
+ Greg Roelofs (overall program logic, ZipInfo, unshrink, filename
+ mapping/portability, etc.), Mark Adler (inflate, explode, funzip),
+ Kai Uwe Rommel (OS/2), John Bush and Paul Kienitz (Amiga), Antoine
+ Verheijen (Macintosh), Hunter Goatley (more VMS), Mike White (Windows
+ DLLs), Christian Spieler (overall logic, optimization, VMS, etc.) and
+ others. See the file CONTRIBS in the source distribution for a much
+ more complete list of contributors.
+ The decompression core code for the deflate method (inflate.[ch],
+ explode.c) was originally written by Mark Adler who submitted it
+ as public domain code.
+
+--------------------------------------------------------------------------
Added: vendor/unzip/current/Contents
==============================================================================
--- (empty file)
+++ vendor/unzip/current/Contents Sun Jun 15 20:29:04 2008
@@ -0,0 +1,84 @@
+Contents of the UnZip 5.52 source archive. The OS-specific subdirectories
+at the end contain their own Contents listings:
+
+ Contents this file
+ README what UnZip is; general information
+ LICENSE Info-ZIP license; terms for using and distributing UnZip
+ COPYING.OLD historic copyrights and distribution policy (obsolete)
+ INSTALL how to compile and install UnZip and related utilities
+ WHERE where Zip/UnZip and encryption/decryption support can
be found
+ History.550 new features and fixes of the last major release
+ History.551 new features and fixes in this maintenance release
+ ToDo rough priority list of new features to be added in
next release
+ BUGS known bugs, problems, and (possible) other features to
be added
+ unzip.txt UnZip manual page, human-readable format
+ unzipsfx.txt UnZipSFX manual page, human-readable format
+ zipinfo.txt ZipInfo manual page, human-readable format
+ zipgrep.txt ZipGrep manual page, human-readable format
+ funzip.txt fUnZip manual page, human-readable format
+ file_id.diz BBS-oriented file describing this archive
+ testmake.zip test archive for checking whether newly compiled UnZip works
+ api.c generic DLL entry points, support functions (required
for DLLs)
+ apihelp.c API help text for DLL versions (currently OS/2 only)
+ consts.h global, initialized variables that never change (required)
+ crc32.c code for calculation 32bit CRC of a string buffer (required*)
+ crc_i386.S fast assembler replacement for crc32.c (Intel 386 and newer)
+ crctab.c supplies polynomial table for CRC calculation
+ crypt.c de-/encryption routines (required*)
+ crypt.h de-/encryption header file (required*)
+ ebcdic.h static lookup table for ASCII <-> EBCDIC translation (required)
+ envargs.c code to read options from environment variables (required)
+ explode.c code for exploding (required)
+ extract.c high-level extraction and decryption code (required)
+ fileio.c file manipulation and password code (required)
+ funzip.c filter unzip: extracts in a pipe from stdin to stdout
+ gbloffs.c helper program to retrieve offsets of globals struct members
+ globals.c code to support global variables with reentrancy (required)
+ globals.h definition of global structure G (required)
+ inflate.c code for inflating (required*)
+ inflate.h header file for inflating (required*)
+ list.c UnZip listing routines, non-ZipInfo mode (required)
+ match.c pattern-matching code for filename wildcards (required)
+ process.c zipfile headers code (required)
+ tables.h static lookup tables used in fileio.c and funzip.c (required*)
+ timezone.c timezone and timestamp functions (required)
+ timezone.h header file for interface to "internal" tz functions (required)
+ ttyio.c code for handling nonecho tty input: password, pager (required)
+ ttyio.h header file for nonecho tty input: password, pager (required)
+ unreduce.c code for unreducing (required)
+ unshrink.c code for unshrinking (required)
+ unzip.c UnZip main(), usage and options code (required)
+ unzip.h public half of main UnZip header file (required*)
+ unzipstb.c minimal UnZip "stub" file demonstrating use of DLL versions
+ unzpriv.h private (internal) half of main UnZip header file (required*)
+ unzvers.h header with UnZip/UnZipSFX and ZipInfo version info (required)
+ zip.h dummy header for use with crypt.c (required*)
+ zipinfo.c UnZip listing routines, ZipInfo mode (required)
+ acorn/ support files for compiling under Acorn RISC OS
+ amiga/ support files for compiling under AmigaDOS
+ aosvs/ support files for compiling under Data General AOS/VS
+ atari/ support files for compiling under Atari TOS
+ atheos/ support files for compiling under AtheOS/Syllable
+ beos/ support files for compiling under BeOS
+ cmsmvs/ support files for compiling under VM/CMS and MVS
+ flexos/ support files for compiling under FlexOS
+ human68k/ support files for compiling under X68000/Human68K
+ macos/ support files for compiling under Macintosh OS
+ msdos/ support files for compiling under MS-DOS
+ novell/ support files for compiling for Novell Netware NLM
+ os2/ support files for compiling under OS/2 (includes DLL stuff)
+ qdos/ support files for compiling under SMS/QDOS
+ tandem/ support files for compiling under Tandem NSK
+ theos/ support files for compiling under Theos
+ tops20/ support files for compiling under TOPS-20
+ unix/ support files for compiling under Unix
+ vms/ support files for compiling under VMS
+ win32/ support files for compiling under Windows 9x and
Windows NT
+ wince/ support files for compiling under Windows CE (GUI version)
+ windll/ support files for compiling Windows 3.x/9x/NT DLLs
+ man/ nroff man-page sources for the main user documentation
+ proginfo/ programming docs, additional technical info,
contributor list
+
+Files marked "required*" are also needed to compile fUnZip. The normal
+UnZip makefile targets now make both UnZipSFX and fUnZip, except in a few
+cases; ZipInfo is now incorporated into UnZip (see zipinfo.txt for usage).
Added: vendor/unzip/current/History.550
==============================================================================
--- (empty file)
+++ vendor/unzip/current/History.550 Sun Jun 15 20:29:04 2008
@@ -0,0 +1,273 @@
+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): integrated
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 standard 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 "stripping off
+ absolute path spec" when extracting [SPC]
+
+5.5h (12 Jan 02):
+ - unzip.h, unzip.c; mapname() in all ports except CMS/MVS, Tandem, 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 "ndflag" 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 [Santiago 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 performance
gain [SPC]
+ - explode.c: reorganized code (2 instead of 4 inner-loop function 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 distinction
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 marker 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 directory); 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 support [SPC]
+ - os2/os2.c: use posix-style mkdir definition whenever __GNUC__ is defined,
+ for better compatibility with non-EMX gcc ports [Pavel Lastovicka, 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
interface [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 interface [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 - clipping 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. report [SPC]
+ - unix/unxcfg.h: fixed setup for GNU/Hurd [Marcus Brinkmann]
+ - tandem/tandem.c: fixed copy&paste typo in stat() [<Yu...@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 contents [SPC]
+ - Contents, README, INSTALL, ToDo, WHERE: documentation updates [SPC]
+
+5.5g (05 Nov 01):
+ - win32/Makefile.bc: completed support for guisfx stub and static 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 older 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 functionality 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 preallocate extraction
+ file space, as implemented in the win32 port (dummy function for WinCE
+ native compiles because availability of system service is unknown) [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 including 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(s) 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
standard "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 [Darren Salt]
+ - acorn/riscos.c: fixed problem with readdir() sometimes not
detecting end-
+ of-dir on "RISCOS V4 long directory format" FSs [Darren Salt]
+ - msdos/makefile.wat, os2/makefile.os2, win32/Makefile.wat: updated the
+ Watcom C support, checked MSDOS builds, added win32 DLL target [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 option
[Dave Smith]
+ - tandem/HISTORY: updated "version of current binaries" info [Dave Smith]
+ - tandem/tanunz.c, open_outfile(): removed unneeded fopen redefines [SPC]
+ - tandem/tanunz.c, checkdir(): fixed missing closing ')' of FnFilter2 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,
implemented the
+ USE_EF_UT_TIME default setting for both Zip and UnZip in tandem.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 compiling 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 setting
when using
+ the timehandling replacement code from timezone.c [Paul Kienitz]
+ - README, unzvers.h: removed BETA notes for public release [SPC]
+ - os2/os2.c, SetFileSize(): 16-bit OS/2 needs fake code here [Kai-Uwe Rommel]
+ - unzpriv.h: added ZCONST to varmessage() buf arg [Kai-Uwe Rommel, SPC]
+ - os2/os2.c: added #ifndef FUNZIP sections to allow inclusion of this module
+ in the object modules list for 16-bit fUnZip targets [SPC]
+ - os2/makefile.os2: fixed 16-bit targets to include os2f.obj resp. msdosf.obj
+ in the fUnZip object modules list [SPC]
+ - fileio.c, do_string(): added typecasts in CHEAP_SFX_AUTORUN option
code to
+ remove signed/unsigned mismatch warnings [Hunter Goatley]
+
+==================
+
+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
Added: vendor/unzip/current/History.551
==============================================================================
--- (empty file)
+++ vendor/unzip/current/History.551 Sun Jun 15 20:29:04 2008
@@ -0,0 +1,189 @@
+UnZip, version 5.51, 22 May 2004
+
+Features added (or removed):
+
+5.51a (09 Mar 02):
+ - no new features
+
+5.51b (11 Jan 03):
+ - TANDEM: new -r option to suppress extension merging [Dave Smith]
+ - WinCE, new port in addition to pUnZip (GUI): command line tool
usable for
+ "batch" processes (not quite finished, needs "makefile" cleanup, tests,
+ and refinements) [Simon Roberts, SPC]
+ - SET_DIR_ATTRIB feature code revised and reorganized to allow seamless
+ adaption to different OS environments; added support for restoring
+ directory timestamps to the WIN32 port [Kai-Uwe-Rommel, SPC]
+
+5.51c (13 May 03):
+ - WinCE command line tool integration is (almost) finished: project
file is
+ cleaned up and works with VC-embedded 3.0; port needs testing... [SPC]
+
+5.51d (27 Feb 04):
+ - Cygwin is recognized as a target in the Unix port
+ [Charles Wilson, Cosmin Truta, SPC]
+ - remove support for quoting characters from all ports; this feature
was a
+ security hole [SPC]
+
+5.51e (01 Mar 04):
+ - Win32 port (list.c, unzpriv.h, win32.c, w32cfg.h): the date in (non-ZipInfo)
+ listings is displayed using the separator given by the system's locale,
+ when available [Cosmin Truta]
+
+5.51f (16 Apr 04):
+ - no new features
+
+5.51 final (22 May 04):
+ - no new features
+
+Bugs fixed:
+
+5.51a (09 Mar 02):
+ - process.c: corrected process_zipfiles() message and return code
when a
+ wildcard archive spec matches exactly one "non-ziparchive" file [SPC]
+ - fileio.c: fixed partflush() "-a" textmode output for 16-bit ports
+ (was a new bug, introduced in 5.50) [SPC]
+ - inflate.c: modified CHECK_EOF code to allow "virtual" reading
beyond EOF in
+ NEEDBITS() macro to fix an old but rarely triggered extraction bug [SPC]
+ - amiga/flate.a, human68k/flate.s: attempted to synchronize with changed
+ C version [SPC]
+ - explode.c, inflate.c, globals.h, unzpriv.h: cleaned up some "signed vs.
+ unsigned" inconsistencies [SPC]
+ - inflate.c: provided workaround for CHECK_EOF problem when using
zlib (send
+ a fake input byte when seeing error because of "premature" EOF) [SPC]
+ - unzpriv.h: disabled DEFLATE64 when compiling/linking against zlib [SPC]
+ - windll/windll_lc.def: added missing file to distribution archive [SPC]
+ - windll/vb/vbunzip.bas: corrected UZDLLServ callback function - the second
+ function parameter is the size of the archive entry, not the
length of
+ the message string [SPC]
+
+5.51b (11 Jan 03):
+ - consts.h, funzip.c, inflate.c, unzpriv.h: changed type of
mask_bits[] array
+ into "unsigned" for better core-loop performance [SPC]
+ - amiga/flate.a, human68k/flate.s: small correction (optimization) to changes
+ in 5.51a, removed debugging stuff [Paul Kienitz]
+ - fileio.c: added display of system error string to error message
shown when
+ open_input_file() fails at the [f]open() function [SPC]
+ - process.c: slightly generalize summary message when no Zip archive
could be
+ found or opened (file may be present but unaccessible due to
locking or
+ insufficient permission) [Santiago Vila, SPC]
+ - globals.h: undefine zlib_version macro when compiling against zlib
to work
+ around a naming conflict [SPC]
+ - unzpriv.h: do not define WILD_STAT_BUG for Borland C on WIN32 [SPC]
+ - unzip.h, unzpriv.h: added precautions for some WIN32 compiler environments
+ which also try to appear as UNIX compatible [SPC]
+ - tandem/tanunz.c bugfix: set file code of generic (non-Tandem)
non-text files
+ to 0 (unstructured) instead of 100 (object file) [Dave Smith]
+ - win32/win32.c: added recognition for Borland C++ Builder 6.0 to version()
+ [Brad Clarke]
+ - tandem/tanunz.c bugfix: set file code of Enscribe files containing
text data
+ to 101 (Edit) [Dave Smith]
+ - api.c writeToMemory(), fileio.c flush(): Added check for buffer overflow
+ when extracting to memory and output buffer is different from decompression
+ work area [Samuel R. Blackburn, SPC]
+ - tandem configuration bugfix: Deflate64 was incompatible with
non-WIDE memory
+ models; fixed OUTBUFSIZ logic and "unsigned" vs. "size_t" incompatibility
+ issues [Dave Smith, SPC]
+
+5.51c (13 May 03):
+ - OS2, WIN32, WinCE: '\\' chars are not allowed in file names, map
them to '_'
+ to prevent misinterpreting them as directory separators [David F, SPC]
+ - windll, VB example: updated integration of "Open file" common
dialog and
+ added special Readme text to document installation and maintenance issues
+ of the VB example code [ED, SPC]
+ - unzpriv.h: enclosed shift op expressions in definitions of MPN_xxx macro
+ constant with parentheses (for safety) [Cosmin Truta]
+ - win32/win32.c: fixed bugs in set_direc_attribs(), do not try to set dirtimes
+ on Win9x systems [Cosmin Truta]
+ - SET_DIR_ATTRIBS option: changed defer_dir_attribs() function
interface to
+ allow non-error return without deferred direntry data [SPC]
+ - BeOS, Theos: updated SET_DIR_ATTRIBS code to work with the revised generic
+ code [SPC]
+ - WinCE port: revitalized WinCE port code, updated VC project files, added
+ "VC embedded Tools 3.0" project file [SPC]
+ - unzip.h: added rule to define UNIX flag for NetBSD [Ray Phillips]
+ - unix/Makefile: added "-DUNIX" to default CF settings, to get rid of misc
+ problems concerning auto-detection of a "Unix" environment [SPC]
+ - LICENSE: include SFXWiz in the exeption clause concerning distribution
+ of self-extracting archives [Greg Roelofs]
+ - Amiga, AosVS, Atari, BeOS, FlexOS, Human68K, MacOS, MSDOS, Novell, OS/2,
+ Unix, Win32, (Theos, WinCE - only code sync, no bug to fix):
+ fixed hole in directory traversal security code which did not recognize
+ "../" when path component contained some control character which was
+ silently skipped ["jelmer", SPC]
+
+5.51d (27 Feb 04):
+ - unix/unix.c: added recognition for Cygwin, i586 and i686 to version()
+ [Cosmin Truta]
+ - unzip.h, unzpriv.h, unix/unzcfg.h: allowed Cygwin to compile as a
Unix port
+ [Charles Wilson, Cosmin Truta, SPC]
+ - unix/unxcfg.h: added inclusion of <utime.h> for DG/UX to fix setting
+ of file time-stamps [Dave Lovelace]
+ - macos/source/macstat.c: corrected size in zeroing instruction of
stat buffer
+ [Yamaga Tomonori]
+ - extract.c: fixed memory leak in SET_DIR_ATTRIB code in case of premature
+ exit (disk full or user break), execute deferred tasks for processed
+ entries in this case [SPC]
+ - unix/zipgrep: allow grep of filenames with embedded spaces [Greg Roelofs]
+ - win32: update support for newer Cygwin releases [Cosmin Truta]
+ - use central directory's entry names for extraction/testing, emit
warning for
+ local/central entry name difference (bug report by Jan Echternach) [SPC]
+ - all SYMLINKS-capable ports (AOS/VS, Atari, BeOS, Unix): defer
creation of
+ symlinks until all extractions for current archive are finished,
to close
+ a security hole (bug report by Jan Echternach)
+ (Changed: globals.h, unzpriv.h, extract.c, [system]/[system].c) [SPC]
+ - crypt.h: changed default setting for Zip to enable crypt support [SPC]
+ - partial documentation updates, as suggested by Greg [SPC]
+
+5.51e (01 Mar 04):
+ - unzpriv.h: guarded some definitions of USE_EF_UT_TIME [Cosmin Truta]
+ - Cygwin: putenv() must not be called in iz_w32_prepareTZenv()
[Cosmin Truta]
+ - unix/unxcfg.h: include <unistd.h> for Cygwin [Cosmin Truta]
+ - unix/unix.c: enable old code that sets DIRENT symbol for _POSIX_VERSION
+ environments [Cosmin Truta]
+ - win32/Makefile.bc: updated the "clean" target [Cosmin Truta]
+ - win32/Makefile.gcc: updated CC_CPU_OPT to "-mcpu=pentiumpro";
+ fixed the "clean" target [Cosmin Truta]
+ - man/unzip.1: added note about the use of the "-:" option [Lon Hohberger]
+ - merged in usable changes (see above) from Cosmin's bogus 5.51d beta archive
+ variant [SPC]
+ - win32: guarded "NTSD integration code" (not working, under construction)
+ with preprocessor symbol NTSD_DEV to allow intermediate
compilation and
+ testing of the current state [SPC]
+
+5.51f (16 Apr 04):
+ - Acorn: updated/fixed Makefile [Darren Salt]
+ - win32/Makefile: revised (experimental) USE_ZLIB support to work
with the
+ current ZLIB release 1.2.1; [Cosmin Truta, Christian Spieler]
+ - win32/Makefile: "clean" target simplified for Win9x support [Cosmin Truta]
+ - INSTALL: describe DATE_SEPCHAR option [Cosmin Truta]
+ - unzip.c: make command-arg "\\"-to-"/" conversion MBCS-safe [SPC]
+ - BeOS, QDOS, Tandem, Theos, Unix - close_outfile(): to make
compilers happy,
+ use union for matching "struct utimbuf" with "iztimes" [Jan Echternach]
+ - all SYMLINKS-capable ports (AOS/VS, Atari, BeOS, Unix): check for allocation
+ size overflow of "deferring symlink" structure (reported by Jan Echternach)
+ (Changed: [system]/[system].c) [SPC]
+ - api.c - redirect_outfile(): check for allocation overflow in
textmode when
+ lenEOL != 1; check against integer overflow for 16-bit ports [SPC]
+ - fileio.c - open_outfile(): use G.lrec.ucsize throughoutly instead of
+ G.pInfo.uncompr_size [SPC]
+ - extract.c - extract_or_test_entrylist(): check for ucsize vs. csize mismatch
+ in STORED entries; synchronize and emit warning message [SPC]
+
+5.51f2 (16 Apr 04):
+ - extract.c: fixed compilation error (misplaced ')') [Cosmin Truta]
+ - win32/Makefile: added missing rule to build unzsfx32.lib [Cosmin Truta]
+ - INSTALL, History.551: fixed some minor typos in docs [Cosmin Truta]
+
+5.51 final (22 May 04):
+ - no code changes
+ - updated WHERE file, History.551 file, and various copyright and release
+ dates where necessary [GRR]
+ - removed "beta" status from unzver.h [GRR]
+
+==================
+
+These changes occurred in beta versions 5.51a to 5.51. This list may have
+left out some bugfixes and even some features...void where prohibited, your
+mileage may vary, etc., etc.
+
+Christian Spieler
Added: vendor/unzip/current/History.552
==============================================================================
--- (empty file)
+++ vendor/unzip/current/History.552 Sun Jun 15 20:29:04 2008
@@ -0,0 +1,215 @@
+UnZip, version 5.52, 28 February 2005
+
+Features added (or removed):
+
+5.52a (10 Dec 04):
+ - no new features
+
+5.52b (30 Dec 04):
+ - no new features
+
+5.52c (8 Jan 05):
+ - no new features
+
+5.52d (17 Jan 05):
+ - VMS: Faster I/O, both reading the archive and creating extracted data
+ files. Disk paralysis during file allocation, when highwater marking
+ is enabled on the destination device, is gone. [Steven Schweda (SMS)]
+ - VMS: Where the C RTL permits, with SET PROCESS /PARSE = EXTENDED,
+ command-line case is preserved, obviating quotation of upper- or
+ mixed-case options and parameters. [SMS]
+
+5.52e (23 Jan 05):
+ - i386 ASM_CRC code crc_i386.S, win32/crc_i386.asm, win32/crc_i386.c:
+ enabled optimization for i686 by default, as pre-686 CPUs are no longer
+ widely used nowadays. (win32/crc_lcc.asm was already i686-optimized)
+ [Cosmin Truta (CT)]
+ - INSTALL, unzpriv.h: unshrinking is now enabled by default [CT]
+ - AtheOS/BeOS/Unix: do not restore SUID/SGID/Tacky bits per default; added
+ new security override option "-K" for backward compatibility, updated
+ unzip.1 man page [Johnny Lee, EG]
+
+5.52f (27 Jan 05):
+ - unzpriv.h, list.c, zipinfo.c: added recognition of additional hosts and
+ compression methods according to latest PKWARE appnote specs [SPC]
+ - AtheOS/Syllable: new port, kindly contributed by Nikolaev Ruslan [SPC]
+
+5.52g (06 Feb 05):
+ - no new features
+
+5.52h (20 Feb 05):
+ - no new features
+
+5.52i (24 Feb 05):
+ - no new features
+
+5.52j (27 Feb 05):
+ - no new features
+
+5.52 (28 Feb 05):
+ - no new features
+
+Bugs fixed:
+
+5.52a (10 Dec 04):
+ - Debian patch 001 - change __GNU__ to __GLIBC__ in unix/unxcfg.h.
This is
+ required to build under glibc-based systems not being Linux-based (like
+ the Debian GNU/kFreeBSD port, which is in preparation). In fact,
+ everywhere the macro __GNU__ is used, __GLIBC__ should be used instead.
+ It could be made even shorter since defined(linux) || defined(__GLIBC__)
+ should be the same as simply defined(__GLIBC__).
+ - fileio.c - open_input_file(): added trailing newline to error message
+ [Debian patch 002, Santiago Vila]
+
+5.52b (30 Dec 04):
+ - README: added short note about purpose of release 5.52 [Ed Gordon]
+ - format fixes [Ed Gordon]
+
+5.52c (8 Jan 05):
+ - minor fixes [Ed Gordon]
+
+5.52d (17 Jan 05):
+ - On VMS, when an odd output byte count is incremented to the next
+ larger even value, the extra byte written is now always zero,
+ reducing random differences between original and extracted files. [SMS]
+ - On VMS, "cannot find either fred;1 or fred;1.zip." messages have been
+ changed to show only non-fictional file names. [SMS]
+
+
+5.52e (23 Jan 05):
+ - win32/vc6/unzip.dsw (new): replaced win32/VC6.dsp with a complete
+ Visual C++ 6.0 project to build unzip, funzip and unzipsfx, with both
+ ASM and non-ASM settings [CT]
+ - win32: MSC project files now preserve Win32 CRLF line ends [CT]
+ - win32/crc_i386.c: compile only if ASM_CRC is defined [CT]
+ - changed strcasecmp to strncasecmp in vms/vmszip.c [SMS]
+
+5.52f (27 Jan 05):
+ - win32: for UnZip 5.5x, our tradition "distribute all text files
with LF line
+ endings" remains in effect, MSC project files are plain text and get
+ distributed in UNIX LF-only format [SPC]
+ - windll/windll.rc: updated copyright year [SPC]
+ - proginfo/extra.fld: synchronized with current appnote.iz (and PKWARE's
+ appnote.txt v6.2 as of 2004-04-26) [SPC]
+ - win32/makefile.lcc: adapted to current lcc-win32 release [SPC]
+ - windll/uzexampl.c: fixed some function definition mismatches (previously
+ there were different but compatible param types used) [SPC]
+ - extract.c: fixed ucsize/csize mismatch test introduced in UnZip
5.51 and
+ corrected a follow-up extraction size bug (12 excess bytes
written) for
+ encrypted stored entries [SPC]
+ - MacOS, OS2 - fixed security holes: formatted output (?printf)
should not
+ use unchecked strings as format specifiers [Ulf Harnhammar]
+ - man/unzip.1, man/zipinfo.1: added explicit note on how to supply a
+ left bracket in a filename argument; clarified the scope of the -C option;
+ documented the different compressed size calculation modes for encrypted
+ entries in UnZip's and ZipInfo's listing output [Greg Roelofs, SPC]
+ - list.c, zipinfo.c: fixed ancient bug: when specifying only an
exclude list,
+ all not-excluded zip archive entries should be listed [SPC]
+ - extract.c, unzpriv.h, w32.cfg, wce.cfg: added Cdecl modifier to the qsort
+ comparison function (allows use of stdcall mode in SFXWiz project) [SPC]
+ - extract.c, unzpriv.h: use LONGINT consistently for >>all<< zipfile offset
+ variables and adapt some type casts (allow handling of 4G archives on
+ systems that support 64bit file offsets) [Paul Slootman]
+ - renamed LONGINT into Z_OFF_T for better "in-code-documentation" [SPC]
+ - unzpriv.h, NEXTBYTE macro modified to allow compatibility with unsigned
+ bufsize counter incnt [Steven M. Schweda]
+ - unix/unxcfg.h: corrected Debian patch #1 by re-adding __GNU__ conditionals
+ where they appeared before [SPC]
+ - unzip.h, win32/decs.h, win32/struct.h: encapsulated declarations as
+ extern "C" for C++ compilation mode [SPC]
+ - Win32 port: integrated deferred NTSD handling for directories in the
+ generic dir attributes setting functionality [SPC]
+ - Win32: synchronized new MSVC6 project files with master Makefile (removed
+ unused modules and link libs, SFX opt for size, enable DBCS) [SPC]
+ - BeOS: synchronized code with Unix port to support reentrancy [SPC]
+ - All but TOPS20, VMS, WinCE: added length check to externally
+ supplied argument in do_wild() [SPC]
+
+5.52g (06 Feb 05):
+ - VMS (fileio.c - open_infile()): corrected VMS specific open-args, patch
+ was accidentally left out in 5.52f [SMS, SPC]
+ - win32/w32cfg.h: define Cdecl as empty macro for Watcom C [P.
Kienitz, SPC]
+ - win32/win32.c: updated OS-system message in version() [SPC]
+ - extract.c: corrected integer size mismatch in deferred dirs code [SPC]
+ - VMS: support "-T" option as /TIMESTAMP in CLI command interface [SMC]
+ - VMS: updated help files for UNIX and DCL interface with missing descriptions
+ of recently added options and new hint notes [SMC, SPC]
+ - win32/win32.c - set_direc_attribs(): work-around for "cannot set timestamp
+ of read-only dirs" bug [Cosmin Truta]
+ - win32/win32.c - NTQueryVolInfo(): fixed typecast warning [Cosmin Truta]
+ - unzpriv.h, unix/Makefile, win32/Makefile.gcc: changed build policy for
+ POSIX-emulating gcc distributions on Win32 (e.g. CygWin) to
default to
+ creating POSIX-mode binaries; win32/Makefile.gcc may be used to build
+ win32-aware binaries (added -DFORCE_WIN32_OVER_UNIX to default compilation
+ options) [Cosmin Truta, SPC]
+ - INSTALL, History.552: stylistic text corrections [Cosmin Truta]
+ - win32/win32.c: complete revision of timestamp handling code; added prepro-
+ cessor flag NO_W32TIMES_IZFIX to allow optional compile with time handling
+ exactly like the (faulty) standard of other Windows programs [SPC]
+ - unzip.c, INSTALL: announce and document new NO_W32TIMES_IZFIX compilation
+ option [SPC]
+ - WHERE: updated to new version numbers for Zip and UnZip [SPC]
+ - README: summary of main changes for 5.52 added [SPC]
+
+5.52h (20 Feb 05):
+ - License: updated list of core authors [Cosmin Truta, Christian Spieler]
+ - WHERE: further corrections [Cosmin Truta]
+ - windll/windll.c - Wiz_SetOpts(): corrected mapping of
PromptToOverwrite and
+ noflag to UnZip's internal options structure, finally fixing the windll
+ extract mode interface (previous change from 5.40 -> 5.41 fixed some
+ issues but created new bugs) [SPC]
+ - windll/windll.txt: documented the exact meaning of the windll
struct DCL
+ flags nfflag, ExtractOnlyNewer, noflag, PromptToOverwrite and their
+ interactions [SPC]
+ - win32: set ASM_CRC as default for MSC, GCC, LCC, EMX/RSX (vanilla
BCC does
+ not support inline asm) [SPC]
+
+5.52i (24 Feb 05):
+ - proginfo/ziplimit.txt: corrected enhanced limits of the Zip64 extensions,
+ updated status info on Info-ZIP's support of Zip64 archives [SPC]
+ - windll: renamed MS Visual C++ (5&6) project files into unique
names, added
+ master workspace file for building all windll projects in one
process [SPC]
+ - windll: extended MS Visual C++ project files to support both
ASM_CRC and
+ NOASM builds; changed unzip dll projects to link against the multithreading
+ MS C runtime dll [SPC]
+ - wince/intrface.cpp - utimeToFileTime(): revised code for more efficiency,
+ added support for NO_W32TIMES_IZFIX [SPC]
+ - documentation and changelog fixes [SPC]
+
+5.52j (27 Feb 05):
+ - AtheOS: some documentation updates (2004-Sep-06) [SPC]
+ - tandem/tanunz.c: fix typo in do_wild() [SPC]
+ - unix/Makefile: added -DUNIX to some special targets, to be sure [SPC]
+ - vms/cmdline.c: corrected declaration of external string constants [SPC]
+ - vms/vms.h: removed obsolete definitions [SPC]
+ - vms/vms.c: stream-lined code formatting [SPC]
+ - WinCE: added workspace file for VCEmbedded 3.0 environment [SPC]
+ - windll/: windll.{c|txt}, uzexampl.{c|h}: misc formatting cleanups [SPC]
+ - extract.c, fileio.c: cosmetic updates [SPC]
+ - inflate.c: fixed undefined global vars error in DEBUG message of the
+ USE_ZLIB interface code [Johnny Lee]
+ - gbloffs.c: made assembler symbols output safe against multiple defines
+ (from UnZip 6.0 beta) [Paul Kienitz, SPC]
+ - Theos: updated theos/Contents, theos/makefile to include Theos-specific
+ translation table header file charconv.h [SPC]
+ - VMS (unzip.c): updated some help messages from UnZip 6.0 beta sources
+ [Steven M. Schweda, SPC]
+ - INSTALL: updated description of VMS_TEXT_CONV option [SPC]
+ - LICENSE, unzip.h: added Steven M. Schweda to Info-ZIP group [SPC]
+ - man/unzip.1: updated Authors list [SPC]
+ - README, unzvers.h: switched to "Release" mode (removed BETA note) [SPC]
+
+5.52 (28 Feb 05):
+ - win32/win32.c - defer_dir_attribs(): fixed critical "mem-access to nirwana"
+ bug when processing directory entries without any local extra field;
+ added some explaining comments [Kai Uwe Rommel, Johnny Lee, SPC]
+ - wince/punzip.rcv: derive VERSION_PATCH from UZ_PATCHLEVEL [SPC]
+ - Updated release dates (History.552, README, unzvers.h, all man
pages) [SPC]
+
+==================
+
+These changes occurred in beta versions 5.52a to 5.52. This list may have
+left out some bugfixes and even some features...void where prohibited, your
+mileage may vary, etc., etc.
+
+Christian Spieler
Added: vendor/unzip/current/INSTALL
==============================================================================
--- (empty file)
+++ vendor/unzip/current/INSTALL Sun Jun 15 20:29:04 2008
@@ -0,0 +1,641 @@
+__________________________________________________________________________
+
+ This is the Info-ZIP file INSTALL (for UnZip), last updated 27 Feb 2005.
+__________________________________________________________________________
+
+ Yes, this is a rather long file, but don't be intimidated: much of its
+ length is due to coverage of multiple operating systems and of optional
+ customization features, large portions of which may be skipped.
+__________________________________________________________________________
+
+
+
+To compile UnZip, UnZipSFX and/or fUnZip (quick-start instructions):
+========================================
+
+(1) Unpack everything into a work directory somewhere, and make sure you're
+ in the main UnZip directory (the one with this file in it).
+ * (See note below concerning line termination format used in the source
+ distribution)
+
+(2) Copy the appropriate makefile into the current directory, except under
+ OS/2.
+
+(3) Run your "make" utility on the makefile (e.g., "nmake -f makefile.msc").
+
+(4) Try out your new UnZip the way you would any new utility: read the
+ docs first.
+
+ Ah ha ha ha!! Oh, that kills me. But seriously...for VMS, UnZip must
+ be installed as a "foreign symbol"; see the Install section below or
+ [.vms]readme.vms for details. (It basically involves adding a line
+ sort of like this to login.com: $ unzip == "$disk:[dir]unzip.exe")
+
+ For DOS and other OSes without explicit timezone support (i.e., everybody
+ but Unix, Windows 95 and NT), make sure the "TZ" environment
variable is
+ set to a valid and reasonable value; see your compiler docs for details.
+
+(*) The unzip sources as well as other Info-ZIP source archives are packaged
+ in Unix format. All text files use single LF (Ascii 0x0a)
characters as
+ line terminators. On systems that use different conventions for
plain text
+ files (e.g.:DOS,Win9x,WinNT,OS/2 -> combined CR+LF; MacOS ->
single CR),
+ some utilities (editors, compilers, etc.) may not accept source files
+ with LF line terminators.
+ For these systems, we recommend to use Info-ZIP's UnZip utility for
+ extraction of our distribution archives, applying the command option
+ "-a" (= translate text files to native format) in the extraction command.
+ In case this procedure is not applicable, an appropiate third-party
+ conversion utility may be used to achieve the desired line termination
+ style (examples: "flip", available for Unix, DOS, OS/2; or "tr" on Unix).
+
+
+To compile UnZip, UnZipSFX and/or fUnZip (detailed instructions):
+========================================
+
+(1) Unpack *.c and *.h (the actual source files), preserving the directory
+ structure (e.g., ./unix/unix.c). The sole exception is TOPS-20, where
+ tops20/* should be unpacked into the current directory, but TOPS-20
+ is no longer fully supported anyway.
+
+ As of UnZip 5.41, full decryption support has been integrated in the
+ UnZip source distribution. If you wish to compile binaries without
+ decryption support, you must define the preprocessor flag NO_CRYPT.
+ For many environments, you may add this flag to the custom compilation
+ flags supplied by the environment variable LOCAL_UNZIP. For more
+ details, see the make procedures and accompanied documentation for your
+ particular target OS.
+
+
+(2) Choose the appropriate makefile based on the description in the Con-
+ tents file for your OS (that is, there's only one for Unix or
OS/2, but
+ MS-DOS and several other OSes have several, depending on the compiler).
+ Copy it into the current directory and rename if necessary or desired.
+ (Some makefiles can be invoked in place; see (5) below.)
+
+ Don't be afraid to read the makefile! Many options will be
explained only
+ in the comments contained therein. The defaults may not quite
suit your
+ system. When making changes, remember that some "make" utilities expect
+ tabs as part of the makefile syntax. Failure with cryptic error messages
+ will result if your editor quietly replaces those tabs with spaces.
+
+ Special point of confusion: some non-MSDOS makefiles contain MS-DOS
+ targets (useful for cross-compilations). An example is the OS/2 makefile
+ os2/makefile.os2 that contains the gccdos target for DOS emx+gcc and
+ some more DOS related targets for Watcom C and MSC. But since
version 5.3,
+ the msdos subdirectory contains makefiles for all supported DOS compilers.
+ [The old djgpp, djgpp1 and gcc_dos targets in unix/Makefile have been
+ removed in 5.3; use msdos/makefile.dj* instead.]
+
+ Extra-special point of confusion: makefile.os2 expects to remain in
+ the os2 subdirectory. Invoke it via "nmake -f os2/makefile.os2 gcc",
+ for example.
+
+
+(3) If you want a non-standard version of UnZip, define one or more of the
+ following optional macros, either by adding them to the LOCAL_UNZIP
+ environment variable or by editing your makefile as appropriate. The
+ syntax differs from compiler to compiler, but macros are often defined
+ via "-DMACRO_NAME" or similar (for one called MACRO_NAME). Note that
+ some of these may not be fully supported in future releases (or even
+ in the current release). Note also that very short command lines in
+ MS-DOS (128 characters) may place severe limits on how many of these
+ can be used; if need be, the definitions can be placed at the top of
+ unzip.h instead (it is included in all source files)--for example,
+ "#define MACRO_NAME", one macro per line.
+
+ DOSWILD (MS-DOS only)
+ Treat trailing "*.*" like Unix "*" (i.e., matches anything); treat
+ trailing "*." as match for files without a dot (i.e., matches any-
+ thing, as long as no dots in name). Special treatment only occurs
+ if patterns are at end of arguments; i.e., "a*.*" matches all files
+ starting with "a", but "*.*c" matches all files ending in "c" *only*
+ if they have a dot somewhere before the "c". [The default
method of
+ specifying files without a dot would be "* -x *.*", making use of
+ UnZip's exclude-files option.] The matching is actually the
same as
+ Unix, if you assume that undotted filenames really have an invisible
+ dot at the end, which is how DOS and related systems treat filenames
+ in general. All other regular expressions (including "?" and
+ "[range_of_chars]") retain their Unix-like behavior.
+
+ WILD_STOP_AT_DIR (incompatible with WINDLL!)
+ Enables an additional option "-W". When this qualifier is specified,
+ the pattern matching routine is modified so that both '?' (single-char
+ wildcard) and '*' (multi-char wildcard) do not match the directory
+ separator character '/'. Examples:
+ "*.c" matches "foo.c" but not "mydir/foo.c"
+ "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c"
+ "??*/*" matches "ab/foo" and "abc/foo" but not "a/foo" or "a/b/foo"
+ To enable matching across directory separator chars, two consecutive
+ multi-char wildcards "**" should be specified.
+ This modified behaviour is equivalent to the pattern matching style
+ used by the shells of some of UnZip's supported target OSs (one
+ example is Acorn RISC OS).
+
+ VMSWILD (VMS only)
+ Use parentheses rather than brackets to delimit sets (ranges), and
+ use '%' instead of '?' as the single-character wildcard for internal
+ filename matching. (External matching of zipfile names always uses
+ the standard VMS wildcard facilities; character sets are disallowed.)
+
+ VMSCLI (VMS only)
+ Use VMS-style "slash options" (/FOOBAR) instead of the default Unix-
+ style hyphenated options (-f). This capability does not
affect options
+ stored in environment variables (UNZIP_OPTS or ZIPINFO_OPTS);
those use
+ the Unix style regardless. Beginning with UnZip 5.32, the supplied
+ VMS build methods generate both VMS-style and default "UNIX-style"
+ executables; you should NOT add VMSCLI to the custom options.
+
+ CHECK_VERSIONS (VMS only)
+ UnZip "extra fields" are used to store VMS (RMS) filesystem info,
+ and the format of this information may differ in various versions
+ of VMS. Defining this option will enable UnZip warnings when the
+ stored extra-field VMS version(s) do(es) not match the version of
+ VMS currently being used. This is a common occurrence in zipfiles
+ received from other sites, but since the format of the filesystem
+ does not seem to have changed in years (including on Alpha and
+ IA64 systems), the warnings are not enabled by default.
+
+ RETURN_CODES (VMS only)
+ VMS interprets return codes according to a rigid set of guidelines,
+ which means it misinterprets normal UnZip return codes as all sorts
+ of really nasty errors. Therefore VMS UnZip returns an
alternate set
+ of return codes; since these may be difficult to interpret, define
+ RETURN_CODES for human-readable explanations.
+
+ VMS_TEXT_CONV (everybody except VMS)
+ VMS Stream_LF-format text files archived with the "-V" option
+ (/VMS) should be readable when extracted on other systems.
+ They may
+ get some junk appended, depending on Zip version and precise options
+ used for archiving them, but appart from that problem they should
+ be fine. Text files with other formats (like the default VFC, with
+ its embedded byte counts) may be only semi-readable at best when
+ extracted on other systems. Defining this option enables UnZip's
+ -aa option to detect and convert VMS VFC-record text files into
+ native text format. Non-VMS UnZips now use a rudimentary VMS extra
+ field analyser to relyably determine such text files. (Earlier
+ versions of UnZip applied some heuristics instead.)
+ Therefore this option is now enabled by default for the main program
+ (but not the SFX stub), because it can be extremely useful on those
+ rare occasions when a VMS text file must be extracted as
normal text.
+
+ USE_DJGPP_ENV (MS-DOS DJGPP 2.0x only)
+ Regular DJGPP v2.0x compiled programs which use ENVIRONMENT are
+ able to read from the file "djgpp.env" as well as those set in the
+ environment. This adds about 1KB to the size of the executable.
+ This option is disabled by default in Info-ZIP source. If you are
+ able to use "djgpp.env" and don't like to clutter the environment
+ with many special purpose variables, you may want to compile with
+ this option set.
+
+ USE_DJGPP_GLOB (MS-DOS DJGPP 2.0x only)
+ If you like to get UnZip binaries that handle command line arguments
+ similar to Unix tools which are run in an Unix shell, you
might want
+ to set this compilation option. This option enables the
support for
+ globbing command line arguments containing wild card that is built
+ into the DJGPP startup code. When using a binary compiled
with this
+ option, you may have to enclose wildcard arguments in double quotes
+ to get them passed to the program unmodified. Enabling this option
+ is not recommended, because it results in Info-Zip binaries
that do
+ not behave as expected for MS-DOS programs.
+
+ USE_VFAT (MS-DOS only, for using same executable under DOS and Win95/NT)
+ djgpp 2.x and emx/gcc+RSX 5.1 can detect when they are running
under a
+ Win32 DOS box and will accordingly enable long-filename
support. For
+ now only djgpp 2.x and emx/gcc with RSX 5.1 or later have this feature
+ (and it is defined by default in msdos/makefile.dj2 and makefile.emx),
+ but if/when other compilers build in similar support, define this
+ macro to enable its use. See also msdos/doscfg.h. [Note that djgpp
+ 2.0's LFN support is flaky; users should upgrade to 2.01 or later.]
+
+ NO_W32TIMES_IZFIX (Win32 including WinDLL, and WinCE)
+ By specifying this option, you can disable Info-ZIP's special timestamp
+ adjustment to get stable time stamps on NTFS disks that do not change
+ depending on the current time being normal vs. daylight saving time.
+ When this option is set, UnZip behaves exactly like other programs;
+ file timestamps on NTFS partitions are created so that their >current<
+ local time representation displayed by directory listings (cmd.exe "dir"
+ command or Windows Explorer listings) is the same as shown by UnZip's
+ listing. But the actual UTC timestamp values stored in the NTFS
+ file attributes vary depending on whether extraction is done at
+ summer or winter time.
+ This option is not recommended because it sacrifies the timestamp
+ comparison checks when extracting or modifying archives in "update
+ only newer" mode.
+ However, for environments where consistency of >displayed< dates
+ of files extracted to NTFS vs. FAT disks is considered more important
+ than correctly working update/freshen tasks of Zip&UnZip, this
+ option may be used.
+ >> DO NOT DISTRIBUTE OR PUBLISH executables that were compiled with
+ this option! <<
+
+ NOTIMESTAMP
+ This option disables the -T option, which basically does
exactly what
+ Zip's -go options do (i.e., set the timestamp of the zipfile
to that of
+ the newest file in the archive without rewriting the archive).
Unlike
+ Zip, however, UnZip supports wildcard specifications for the archive
+ name; for example, "unzip -T *.zip" will set the dates of all zipfiles
+ in the current directory. (UnZip's option is also much faster.)
+
+ DATE_FORMAT=DF_DMY or DF_MDY or DF_YMD
+ This option controls the order in which date components are printed
+ in listings: day-month-year or month-day-year or year-month-day.
+ For DOS, FlexOS, OS2, Theos and Win32, the format is automatically
+ obtained from the operating system; most others default to DF_MDY.
+
+ DATE_SEPCHAR='-' or '.' or '/' etc.
+ This option controls the character that separates the date components
+ shown in (non-ZipInfo-mode) listings. The Win32 port obtains the
+ separator automatically from the operating system's locale settings;
+ all others default to '-'.
+
+ ACORN_FTYPE_NFS (needs support for long filenames with embedded commas)
+ This option enables a -F option that instructs UnZip to
interpret the
+ filetype information extracted from Acorn RiscOS extra field blocks.
+ The filetype IDs are translated into "NFS filetype extensions" and
+ appended to the names of the extracted files. This feature facilitates
+ maintenance of Unix-based NFS volumes that are exported to
Acorn RiscOS
+ systems.
+
+ QLZIP (Unix only)
+ Add some support for QDOS extra fields. This option enables Unix
+ UnZip to append "datalen info" to QDOS exec type files in the same
+ format as used by QDOS cross-compilers on Unix or the qltools v2.2(+).
+
+ UNIXBACKUP (Unix only)
+ This option enables a -B option that instructs UnZip to rename files
+ that would normally be overwritten. The renamed files are
given a
+ tilde suffix (`~'). Note that previously renamed files may be over-
+ written without notice, even if the -n option is given.
+
+ OS2_EAS
+ List the sizes of OS/2 EAs and ACLs for each file as two extra columns
+ in "unzip -l" output. This is primarily useful for OS/2
systems, but
+ because zipfiles are portable, OS2_EAS can be defined for any system.
+ (May be extended someday to show sizes of Mac resource forks, RISCOS
+ and VMS file info, etc.)
+
+ DELETE_IF_FULL (anybody with unlink() function)
+ If a write error is encountered (most likely due to a full disk),
+ enabling this option will cause the incomplete file to be deleted
+ instead of closed normally. This is particularly useful for the
+ Windows CE port, which must generally contend with extremely limited
+ resources.
+
+ ASM_CRC (Amiga/Aztec C; many x86 systems: DOS, OS/2, Win32, Unix)
+ Use an assembler routine to calculate the CRC for each file (speed).
+
+ ASM_INFLATECODES (Amiga/Aztec C only, for now)
+ Use an assembler version of inflate_codes() for speed.
+
+ OLD_EXDIR
+ No longer supported.
+
+ SFX_EXDIR
+ Enable the "-d <extract_dir>" option for UnZipSFX. This is now
+ enabled by default (since UnZip 5.5) to facilitate use with
+ automated installation scripts and the like. For disabling
+ this feature, see the NO_SFX_EXDIR option.
+
+ NO_SFX_EXDIR
+ Disables the "-d <extract_dir>" option for UnZipSFX to
generate the
+ smallest possible executable stub. (Prior to the UnZip 5.5 release,
+ this was the default.)
+
+ CHEAP_SFX_AUTORUN
+ Enable a simple "run command after extraction" feature for
+ the (command line) UnZipSFX stub. This feature is currently
+ incompatible with the "-d <extract_dir>" command line option,
+ therefore CHEAP_SFX_AUTORUN implicitely sets the NO_SFX_EXDIR
+ option.
+
+ NO_ZIPINFO
+ Compile without ZipInfo mode (-Z) enabled; makes a smaller executable
+ because many text strings are left out. Automatically enabled for
+ some small-model compiles under MS-DOS and OS/2, so ordinarily there
+ is no need to specify this explicitly. (Note that even with this
+ defined, the resulting executable may still be too big to extract
+ some zipfiles correctly, if compiled with the small memory model.)
+
+ USE_DEFLATE64 (default for UnZip and fUnZip)
+ NO_DEFLATE64 (default for UnZipSFX stub)
+ The "deflate64" algorithm from PKZIP 4.0 (or newer) is an enhanced
+ variant of the deflate algorithm that achieves slightly better
+ compression ratios on highly redundant data. Normally, UnZip should
+ be compiled with support for this compression algorithm enabled.
+ However, this results in significantly larger memory requirements
+ to run the program. For 16-bit executables (DOS and OS/2), the
+ special memory management to support the 64k history buffer results
+ in a slight performance (= speed) penalty. And for the SFX stub,
+ "deflate64" support might be unnessessary as long as the Info-ZIP
+ Zip utility does not support it (quite likely, this will never
+ get implemented). So, the NO_DEFLATE64 option is provided to allow
+ exclusion of the deflate64 support.
+
+ MULT_VOLUME (experimental for 5.5x, do NOT use in production versions!)
+ NO_MULT_VOLUME (default)
+ The symbol MULT_VOLUME is used to flag code portions needed for
+ support of multi-volume archives. For now, this flag MUST NOT be
+ used to compile a production versions of UnZip. This flag has been
+ introduced to allow integration of experimental code for multi-volume
+ support in the master source tree. This feature will become a default
+ option in the future 6.0 release of UnZip.
+
+ LZW_CLEAN
+ USE_UNSHRINK (now default, as of January 2005)
+ The "shrinking" algorithm from PKZIP 1.0 is an LZW variant. Unisys
+ patented the Lempel-Ziv-Welch algorithm in 1985 and has publicly
+ claimed that decompression is covered by it. (IBM also
patented the
+ same thing in a filing 3 weeks prior to Unisys's.) In 2004, the
+ Unisys and IBM patents expired worldwide, so unshrinking is now
+ enabled again by default. If you do not wish to include the LZW
+ method, you may still disable it by defining LZW_CLEAN.
+ (Unshrinking was used by PKZIP 1.0 and 1.1, and Zip 1.0 and 1.1.
+ All newer archives use only the deflation method.)
+
+ COPYRIGHT_CLEAN (now default)
+ USE_SMITH_CODE
+ The last chunk of code in UnZip that was blatantly derived
from Sam
+ Smith's unzip 2.0 (as in, "substantially similar") is in unreduce.c.
+ Since reducing was only used by very early PKZIP beta versions (0.9x),
+ support for it is now omitted by default (COPYRIGHT_CLEAN).
To in-
+ clude unreducing capability, define USE_SMITH_CODE and replace the
+ stub unreduce.c source file by the separatly distributed full source
+ code module. Note that this subjects UnZip to any and all restrictions
+ in Smith's copyright; see the UnZip COPYING.OLD file for details.
+
+ USE_CRYPT
+ Enable decryption support for all binaries. The default setting
+ is to disable decryption support for the SFX stub to keep its size
+ as small as possible. For other binaries of the UnZip distribution,
+ decryption support is enabled by default.
+
+ NO_CRYPT
+ Disable decryption support for all binaries.
+
+ PASSWD_FROM_STDIN (with full crypt sources only; Unix, VMS only)
+ Used to allow the password on encrypted files to be read from stdin
+ rather than the default stderr. This was useful for those who wished
+ to automate the testing or decoding of encrypted archives
(say, in a
+ shell script via ``echo "password" | unzip -tq archive''), but
as of
+ version 5.3, UnZip has a -P option for passing a password
directly to
+ the program. PASSWD_FROM_STDIN will therefore probably be
phased out
+ in future versions. Note that the same security warnings
given in the
+ description of the -P option apply here as well.
+
+ DEBUG
+ Used for debugging purposes; enables Trace() statements. Generally
+ it's best to compile only one or two modules this way.
+
+ DEBUG_TIME
+ Used for debugging the timezone code in fileio.c; enables TTrace()
+ statements. This code is only used for the freshen/update options
+ (-f and -u), and non-Unix compilers often get it wrong.
+
+
+(4) If you regularly compile new versions of UnZip and always want the same
+ non-standard option(s), you may wish to add it (them) to the LOCAL_UNZIP
+ environment variable (assuming it's supported in your makefile). Under
+ MS-DOS, for example, add this to AUTOEXEC.BAT:
+
+ set LOCAL_UNZIP=-DDOSWILD -DDATE_FORMAT=DF_DMY
+
+ You can also use the variable to hold special compiler options (e.g.,
+ -FPi87 for Microsoft C, if the x87 libraries are the only ones on your
+ disk and they follow Microsoft's default naming conventions; MSC also
+ supports the CL environment variable, however).
+
+
+(5) Run the make utility on your chosen makefile:
+
+ Unix
+ For most systems it's possible to invoke the makefile in
place, at
+ the possible cost of an ignorable warning; do "make -f unix/Makefile
+ list" to get a list of possible system targets, and then "make -f
+ unix/Makefile target" for your chosen target. The "generic" target
+ works for most systems, but if it fails with a message about ftime()
+ unresolved or timezone redefined, do "make clean", "make
help", and
+ then either "make generic2" or "make generic3" as instructed.
If all
+ else fails, read the makefile itself; it contains numerous comments.
+ (One of these days we'll make a configure script that
automates this
+ procedure better.)
+
+ VMS (OpenVMS):
+ For a one-time build of the default UnZip, simply run the supplied
+ command file MAKE_UNZ.COM. To use either DEC C on an Alpha or the
+ default compiler (DEC C if available, else VAX C) on a VAX, type
+ "@make_unz" (after copying make_unz.com into the current directory;
+ otherwise do "@[.vms]make_unz" to invoke it in place).
+ If you want to force the use of VAX C when both VAX C and DEC
C are
+ available, do "@make_unz vaxc" (or "@[.vms]make_unz vaxc").
+ To use GNU C (gcc) on either platform, do "@make_unz gnuc".
+ (NOTE: Currently, gcc for VMS(AXP) is not yet available!)
+ The command procedure MAKE_UNZ.COM now recognizes custom feature
+ options supplied in the logical name LOCAL_UNZIP; details are
+ explained in the comments at the top of MAKE_UNZ.COM.
+
+ For repeated makes or other hacker-like tinkering with the sources,
+ or to create a custom version of UnZip, you may use the included "MMS"
+ makefile, DESCRIP.MMS. Copy it into the current directory,
read the
+ comments at the top of it and run MadGoat's free MMS
clone "MMK" on it.
+ Newer versions of DEC's MMS should work, too, but older ones apparently
+ choke on some MMK-specific extensions in DESCRIP.MMS. (If somebody
+ has an "older" version that works, let us know and we'll
remove this
+ caveat.)
+
+ MS-DOS
+ See the msdos\Contents file for notes regarding which
makefile(s) to
+ use with which compiler. In summary: pick one of msdos\makefile.*
+ as appropriate, or (as noted above) use the OS/2 gccdos target for
+ emx+gcc. There is also an mscdos cross-compilation target in
+ os2\makefile.os2 and a sco_dos cross-compilation target in the Unix
+ makefile. For Watcom 16-bit or 32-bit versions, see the
comments in
+ the OS/2 section below.
+
+ After choosing the appropriate makefile and editing as
necessary or
+ desired, invoke the corresponding make utility. Microsoft's NMAKE
+ and the free dmake and GNU make utilities are generally the most
+ versatile. The makefiles in the msdos directory can be
invoked in
+ place ("nmake -f msdos\makefile.msc", for example).
+
+ OS/2
+ Either GNU make, nmake or dmake may be used with the OS/2 makefile;
+ all are freely available on the net. Do "nmake -f os2\makefile.os2",
+ for example, to get a list of supported targets. More generally,
+ read the comments at the top of the makefile for an
explanation of
+ the differences between some of the same-compiler targets.
+
+ Win32 (WinNT or Win95)
+ You will need Microsoft Visual C++ 2.x for Win95 or NT (Intel, MIPS,
+ Alpha, PowerPC?), or Watcom C++ for Win95 or NT (Intel only).
As an
+ alternative for Intel platforms, GNU C (the emx/rsxnt port) is now
+ supported as well. DEC C/C++ for NT/Alpha may or may not still work.
+ For the Watcom compiler, use WMAKE and win32\makefile.wat; for the
+ others, use NMAKE and win32\Makefile. With emx+gcc, a good
choice is
+ GNUMake 3.75 from the djgpp V2.01 distribution.
+
+ WinCE (WinCE or WinNT)
+ Only Microsoft Visual C++ 5.0 or later is supported. Use the included
+ project file and check wince\README for details.
+
+ AmigaDOS
+ SAS/Lattice C and Manx Aztec C are supported. For SAS C 6.x do "smake
+ -f amiga/smakefile all"; for Aztec C do "make -f amiga/makefile.azt
+ all". The Aztec C version supports assembly-language versions
of two
+ routines; these are enabled by default.
+
+ Atari TOS
+ Turbo C is no longer supported; use gcc and the MiNT
libraries, and
+ do "make". Note that all versions of gcc prior to 2.5.8 have
a bug
+ affecting 68000-based machines (optimizer adds 68020 instructions).
+ See atari\README for comments on using other compilers.
+
+ Macintosh
+ Metrowerks CodeWarrior Pro 4 with Universal Interfaces 3.1 is
the only
+ currently supported compiler, although the Mac Programmer's Workbench
+ (MPW) and Think C were supported at one time and still have
some hooks.
+ Other Compilers may work too, no compiler specific instructions
+ (pragma, header, macros, ...) were used in the code.
+ For CodeWarrior Pro 4, un-BinHex the CodeWarrior project file and
+ UnZip resource file (using Stuffit Expander or BinHex 4.0 or later),
+ then open the project and click on the compile button.
+ See ":macos:Contents" for the possible project targets.
+ Link order of the standard libraries is very important: Link all
+ sources first and all standard libraries last.
+
+ Acorn (RISC OS)
+ Extract the files from the archive and place in
standard 'Acorn' C
+ form (i.e., *.c, *.h and *.s become c.*, h.* and s.*, respectively),
+ either using the UNZIP$EXTS environment variable and a
pre-built UnZip
+ binary, or using Spark[FS] and doing it manually. Then copy the
+ Acorn.Makefile to the main UnZip directory and either
type 'amu' or
+ use the desktop make utility.
+
+ VM/CMS
+ Unpack all the files and transfer them with ASCII -> EBCDIC conver-
+ sion to an appropriate directory/minidisk/whatever, then execute
+ UNZVMC to compile and link all the sources. This may require C/370
+ version 2.1 or later and certain `nucleus extensions,' although
+ UnZip 5.3 has been reported to compile fine with the `ADCYCLE C/370
+ v1.2 compiler.' Note that it will abend without access to the C/370
+ runtime library. See the README.CMS file for more details.
+
+ MVS
+ Unpack all the files and transfer them to an appropriate PDS with
+ ASCII -> EBCDIC conversion enabled, then edit UNZMVSC.JOB as required,
+ and execute it to compile and link all the sources. C/370 2.1 or
+ later is required. See README.MVS for further details. [This
is a
+ new port and may need a little more work even to compile.]
+
+ Human68K
+ [This is a Japanese machine and OS.] It appears that GNU make and
+ gcc are required; presumably just do "gmake -f human68k/Makefile.gcc"
+ to build everything. This port has not been tested since the 5.12
+ release.
+
+ TOPS-20
+ [No longer fully supported due to new, unported features, although
+ patches are always accepted.] Unpack all files into the current
+ directory only (including those in the zipfile's tops20 directory),
+ then use make.mic and "do make".
+
+ BeOS
+ You can run the BeOS makefile in place by typing "make -f
+ beos/Makefile". In fact, this is how the author tests it.
+
+ Running the appropriate make utility should produce three
executables on
+ most systems, one for UnZip/ZipInfo, one for UnZipSFX, and one for fUnZip.
+ (VMS is one prominent exception: fUnZip makes no sense on it.
The Amiga
+ produces a fourth executable called MakeSFX, which is necessary because
+ Amiga self-extracting archives cannot be created by simple concatenation.
+ If necessary the source amiga/makesfx.c can be compiled on other systems.)
+ Read any OS-specific README files for notes on setting things up for
+ normal use (especially for VMS) and for warnings about known
quirks and
+ bugs in various compilers (especially for MS-DOS).
+
+ Also note that many OSes require a timezone variable to be set correctly
+ (often "TZ"); Unix and VMS generally do so by default, Win95/NT do
if set
+ up properly, but other OSes generally do not. See the discussion
of the
+ -f and -u options in the UnZip man page (or unzip.txt). BeOS doesn't
+ currently support timezone information at all, but this will
probably be
+ added soon.
+
+ Then test your new UnZip on a few archives and let us know if
there are
+ problems (but *please* first make certain that the archives aren't actu-
+ ally corrupted and that you didn't make one of the silly mistakes dis-
+ cussed in the documentation). If possible, double-check any problems
+ with PKUNZIP or with a previous version of UnZip prior to
reporting a
+ "bug." The zipfile itself may be damaged.
+
+
+
+To install:
+===========
+
+Unix
+ The default prefix for the installation location is /usr/local (things
+ go into the bin and man/man1 subdirectories beneath the prefix), and
+ the default man-page extension is "1" (corresponding to man/man1, above).
+ To install as per the defaults, do "make install"; otherwise do "make
+ prefix=/your/path manext=your_extension install". (For Intel Unix flavors
+ where the assembler CRC routines were used [ASM_CRC], use the install_asm
+ target instead of the regular install target.) For example, to install
+ in your home directory with "l" as the man-page extension (for "local"),
+ do "make prefix=$HOME manext=l install". Permissions will be 755
for the
+ executables and 644 for the man pages. In general root must perform in-
+ stallation into a public directory. Do "rehash" if your shell requires
+ it in order to find the new executables.
+
+VMS
+ Install UnZip as foreign symbol by adding this to login.com:
+
+ $ unzip == "$disk:[dir]unzip.exe"
+ $ zipinfo == "$disk:[dir]unzip.exe ""-Z"""
+
+ where "disk" and "dir" are the location of the UnZip executable; the "$"
+ before the disk name is important, as are the double-double-quotes around
+ the -Z. Some people, including the author, prefer a short alias
such as
+ "ii" instead of "zipinfo"; edit to taste. Optionally also install unzipsfx
+ for use with the MAKESFX.COM command file. See vms/README (or [.VMS]README.)
+ for details on this and for notes/warnings about zipfiles and UnZip under
+ VMS.
+
+OS/2, MS-DOS, NT, Atari, Amiga
+ Move or copy unzip.exe (or unzip.ttp, or UnZip, or whatever) to a direc-
+ tory in your path; also possibly copy the UnZip executable to zipinfo.exe
+ (or ii.exe), or else create an alias or a batch/command file for ZipInfo
+ ("@unzip -Z %1 %2 %3 %4 %5 %6 %7 %8 %9" under MS-DOS). The latter
is only
+ relevant if NO_ZIPINFO was *not* defined, obviously... Under djgpp 2.x,
+ zipinfo.exe is a 2K stub symbolically linked to unzip.exe.
+
+Acorn RISC OS
+ Copy the executables unzip, funzip and zipinfo to somewhere in your
+ Run$Path. See your Welcome manual if you don't know about Run$Path.
+
+BeOS
+ The default prefix for the installation location is /boot/usr/local
+ (things go into the bin and man/man1 subdirectories beneath the prefix),
+ and the default man-page extension is "1" (corresponding to the man/man1,
+ above). Of course, these Unix man-pages aren't useful until someone ports
+ something that can format them... plain text versions are also installed
+ with an extension of ".txt". To install, do a "make install", or to
+ change the prefix, do "make prefix=/your/path install". For
example, to
+ install in /boot/bin, do "make prefix=/boot/bin install".
+
+Macintosh
+ MacZip requires at least System 7 and a Macintosh with a minimum of a
+ Motorola 68020 or PowerPC 601 processor. Other configurations may work
+ but it is not tested at all.
+ The application (MacZip) is distributed as a combination of zip and unzip
+ in one program. The offical release is a fat binary with both
regular 68K
+ and native PowerPC versions included.
+ Move the executable(s) somewhere--for example, drag it (or them) to your
+ Applications folder. For easy access, make an alias in the Launcher Control
+ Panel or directly on your desktop.
+ This port supports also Apple-event.So you can install it in your
+ WWW-Browser as a helper-app.
+ Look into "macos/README.TXT" (or ":macos:README.TXT" on Mac) for further
+ info.
+
+Human68K, TOPS-20, AOS/VS, MVS, VM/CMS, etc.
+ Dunno, sorry...
Added: vendor/unzip/current/LICENSE
==============================================================================
--- (empty file)
+++ vendor/unzip/current/LICENSE Sun Jun 15 20:29:04 2008
@@ -0,0 +1,55 @@
+This is version 2005-Feb-10 of the Info-ZIP copyright and license.
+The definitive version of this document should be available at
+ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely.
+
+
+Copyright (c) 1990-2005 Info-ZIP. All rights reserved.
+
+For the purposes of this copyright and license, "Info-ZIP" is defined as
+the following set of individuals:
+
+ Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
+ Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth,
+ Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz,
+ David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko,
+ Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs,
+ Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda,
+ Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren,
+ Rich Wales, Mike White
+
+This software is provided "as is," without warranty of any kind, express
+or implied. In no event shall Info-ZIP or its contributors be held liable
+for any direct, indirect, incidental, special or consequential damages
+arising out of the use of or inability to use this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ definition, disclaimer, and this list of conditions.
+
+ 2. Redistributions in binary form (compiled executables) must reproduce
+ the above copyright notice, definition, disclaimer, and this
list of
+ conditions in documentation and/or other materials provided
with the
+ distribution. The sole exception to this condition is redistribution
+ of a standard UnZipSFX binary (including SFXWiz) as part of a
+ self-extracting archive; that is permitted without inclusion of this
+ license, as long as the normal SFX banner has not been removed from
+ the binary or disabled.
+
+ 3. Altered versions--including, but not limited to, ports to new operating
+ systems, existing ports with new graphical interfaces, and dynamic,
+ shared, or static library versions--must be plainly marked as such
+ and must not be misrepresented as being the original source. Such
+ altered versions also must not be misrepresented as being Info-ZIP
+ releases--including, but not limited to, labeling of the altered
+ versions with the names "Info-ZIP" (or any variation thereof, including,
+ but not limited to, different capitalizations), "Pocket UnZip," "WiZ"
+ or "MacZip" without the explicit permission of Info-ZIP. Such altered
+ versions are further prohibited from misrepresentative use of the
+ Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s).
+
+ 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip,"
+ "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip"
for its
+ own source and binary releases.
Added: vendor/unzip/current/README
==============================================================================
--- (empty file)
+++ vendor/unzip/current/README Sun Jun 15 20:29:04 2008
@@ -0,0 +1,288 @@
+This is the README file for the 28 February 2005 public release of the
+Info-ZIP group's portable UnZip zipfile-extraction program (and related
+utilities).
+
+unzip552.zip portable UnZip, version 5.52, source code distribution
+unzip552.tar.Z same as above, but compress'd tar format
+unzip552.tar.gz same as above, but gzip'd tar format
+
+__________________________________________________________________________
+
+BEFORE YOU ASK: UnZip, its companion utility Zip, and related utilities
+and support files can be found in many places; read the file "WHERE" for
+further details. To contact the authors with suggestions, bug reports,
+or fixes, continue reading this file (README) and, if this is part of a
+source distribution, the file "ZipPorts" in the proginfo directory. Also
+in source distributions: read "BUGS" for a list of known bugs, non-bugs
+and possible future bugs; INSTALL for instructions on how to build UnZip;
+and "Contents" for a commented listing of all the distributed files.
+__________________________________________________________________________
+
+
+GENERAL INFO
+------------
+UnZip is an extraction utility for archives compressed in .zip format (also
+called "zipfiles"). Although highly compatible both with PKWARE's PKZIP
+and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip program, our
+primary objectives have been portability and non-MSDOS functionality.
+
+This version of UnZip has been ported to a stupendous array of hardware--
+from micros to supercomputers--and operating systems: Unix (many flavors),
+VMS, OS/2 (including DLL version), Windows NT and Windows 95
(including DLL
+version), Windows CE (GUI version), Windows 3.x (including DLL version),
+MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Macintosh (GUI version),
+SMS/QDOS, MVS, VM/CMS, FlexOS, Tandem NSK, Human68k (mostly), AOS/VS (partly)
+and TOPS-20 (partly). UnZip features not found in PKUNZIP include source
+code; default extraction of directory trees (with a switch to defeat this,
+rather than the reverse); system-specific extended file attributes;
and, of
+course, the ability to run under most of your favorite operating systems.
+Plus, it's free. :-)
+
+For source distributions, see the main Contents file for a list of what's
+included, and read INSTALL for instructions on compiling (including OS-
+specific comments). The individual operating systems' Contents files (for
+example, vms/Contents) may list important compilation info in addition to
+explaining what files are what, so be sure to read them. Some of the ports
+have their own, special README files, so be sure to look for those, too.
+
+See unzip.1 or unzip.txt for usage (or the corresponding UnZipSFX, ZipInfo,
+fUnZip and ZipGrep docs). For VMS, unzip_def.rnh or unzip_cli.help
may be
+compiled into unzip.hlp and installed as a normal VMS help entry; see
+vms/descrip.mms.
+
+
+CHANGES AND NEW FEATURES
+------------------------
+The 5.52 maintenance release fixes a few minor problems found in the 5.51
+release, closes some more security holes, adds a new AtheOS port, and
+contains a Win32 extra-field code cleanup that was not finished earlier.
+The most important changes are:
+
+ - (re)enabled unshrinking support by default, the LZW patents have expired
+ - fixed an extraction size bug for encrypted stored entries (12
excess bytes
+ were written with 5.51)
+ - fixed false "uncompressed size mismatch" messages when extracting
+ encrypted archive entries
+ - do not restore SUID/SGID/Tacky attribute bits on Unix (BeOS, AtheOS)
+ unless explicitely requested by new "-K" command line qualifier
+ - optional support for "-W" qualifier to modify the pattern
matching syntax
+ (with -W: "*" stops at directory delimiter, "**" matches unlimited)
+ - prevent buffer overflow caused by bogus extra-long Zipfile specification
+ - performance enhancements for VMS port
+ - fixed windll interface handling of its extraction mode qualifiers
+ nfflag, ExtractOnlyNewer, noflag, PromptToOverwrite; added detailed
+ explanation of their meanings and interactions to the windll documentation
+
+The 5.51 maintenance release adds a command-line CE port, intended for
+batch processing. With the integration of this port, the pUnZip port
+has been revised and "revitalized".
+The most important changes for the general public are a number of
+bug fixes, mostly related to security issues:
+
+ - repair a serious bug in the textmode output conversion code for
the 16-bit
+ ports (16-bit MSDOS, OS/2 1.x, some variants of AMIGA, possibly others)
+ which was introduced by the Deflate64 support of release 5.5
+ - fix a long standing bug in the the inflate decompression method that
+ prevented correct extraction in some rare cases
+ - fixed holes in parent dir traversal security code (e.g.: ".^C." slipped
+ through the previous version of the check code)
+ - fixed security hole: check naming consistency in local and
central header
+ - fixed security hole: prevent extracted symlinks from redirecting file
+ extraction paths
+
+The main addition in the 5.5 release is support for PKWARE's new Deflate64(tm)
+algorithm, which appeared first in PKZIP 4.0 (published November 2000).
+As usual, some other bugfixes and clean-ups have been integrated:
+
+ - support for Deflate64 (Zip compression method #9)
+ - support for extracting VMS variable length record text files on
+ any system
+ - optional "cheap autorun" feature for the SFX stub
+ - security fixes:
+ * strip leading slash from stored pathspecs,
+ * remove "../" parent dir path components from extracted file names
+ - new option "-:" to allow verbatim extraction of file names containing
+ "../" parent dir path specs
+ - fixed file handle leak for the DLL code
+ - repaired OS2 & WinNT ACL extraction which was broken in 5.42
+
+The 5.42 maintenance release fixes more bugs and cleans up the redistribution
+conditions:
+
+ - removal of unreduce.c and amiga/timelib.c code to get rid of the last
+ distribution restrictions beyond the BSD-like Info-ZIP LICENSE
+ - new generic timelib replacement (currently used by AMIGA port)
+ - more reasonable mapping rules of UNIX "leading-dot" filenames to the
+ DOS 8.3 name convention
+ - repaired screensize detection in MORE paging code
+ (was broken for DOS/OS2/WIN32 in 5.41)
+
+The 5.41 maintenance release adds another new port and fixes some bugs.
+
+ - new BSD-like LICENSE
+ - new Novell Netware NLM port
+ - supports extraction of archives with more than 64k entries
+ - attribute handling of VMS port was broken in UnZip 5.4
+ - decryption support integrated in the main source distribution
+
+The 5.4 release adds new ports, again. Other important items are changes
+to the listing format, new supplemental features and several bug fixes
+(especially concerning time-stamp handling...):
+
+ - new IBM OS/390 port, a UNIX derivate (POSIX with EBCDIC charset)
+ - complete revision of the MacOS port
+ - changed listing formats to enlarge the file size fields for more digits
+ - added capability to restore directory attributes on MSDOS, OS/2, WIN32
+ - enabled support of symbolic links on BeOS
+ - Unix: optional Acorn filetype support, useful for volumes
exported via NFS
+ - several changes/additions to the DLL API
+ - GUI SFX stub for Win16 (Windows 3.1) and Win32 (Windows 9x,
Windows NT)
+ - new free GCC compiler environments supported on WIN32
+ - many time-zone handling bug fixes for WIN32, AMIGA, ...
+
+The 5.32 release adds two new ports and a fix for at least one relatively
+serious bug:
+
+ - new FlexOS port
+ - new Tandem NSK port
+ - new Visual BASIC support (compatibility with the Windows DLLs)
+ - new -T option (set zipfile timestamp) for virtually all ports
+ - fix for timestamps beyond 2038 (e.g., 2097; crashed under DOS/Win95/NT)
+ - fix for undetected "dangling" symbolic links (i.e., no pointee)
+ - fix for VMS indexed-file extraction problem (stored with Zip 2.0
or 2.1)
+ - further performance optimizations
+
+The 5.31 release included nothing but small bug-fixes and typo corrections,
+with the exception of some minor performance tweaks.
+
+The 5.3 release added still more ports and more cross-platform portability
+features:
+
+ - new BeOS port
+ - new SMS/QDOS port
+ - new Windows CE graphical port
+ - VM/CMS port fully updated and tested
+ - MVS port fully updated and tested
+ - updated Windows DLL port, with WiZ GUI spun off to a separate package
+ - full Universal Time (UTC or GMT) support for trans-timezone consistency
+ - cross-platform support for 8-bit characters (ISO Latin-1, OEM
code pages)
+ - support for NT security descriptors (ACLs)
+ - support for overwriting OS/2 directory EAs if -o option given
+ - updated Solaris/SVR4 package facility
+
+What is (still!) not added is multi-part archive support (a.k.a. "diskette
+spanning") and a unified and more powerful DLL interface. These are the
+two highest priorities for the 6.x releases. Work on the former is almost
+certain to have commenced by the time you read this. This time we
mean it!
+You betcha. :-)
+
+Although the DLLs are still basically a mess, the Windows DLLs (16-
and 32-
+bit) now have some documentation and a small example application.
Note that
+they should now be compatible with C/C++, Visual BASIC and Delphi. Weirder
+languages (FoxBase, etc.) are probably Right Out.
+
+Finally, note that support for unshrinking has now been turned OFF by default,
+although the source code is still available (as with unreducing).
This was
+done for legal reasons, not technical ones, and no, we're not any happier
+about it than you are. :-( See the COPYING file for details.
+
+
+INTERNET RESOURCES
+------------------
+
+Info-ZIP's web site is at http://www.info-zip.org/pub/infozip/
+and contains the most up-to-date information about coming releases,
+links to binaries, and common problems.
+(See http://www.info-zip.org/pub/infozip/FAQ.html for the latter.)
+Files may also be retrieved via ftp://ftp.info-zip.org/pub/infozip/ .
+Thanks to LEO (Munich, Germany) for hosting our primary site.
+
+
+DISTRIBUTION
+------------
+If you have a question regarding redistribution of Info-ZIP software, either
+as is, as packaging for a commercial product, or as an integral part
of a
+commercial product, please read the Frequently Asked Questions (FAQ) section
+of the included COPYING file.
+
+Insofar as C compilers are rare on some platforms and the authors only have
+direct access to a subset of the supported systems, others may wish to pro-
+vide ready-to-run executables for new systems. In general there is no prob-
+lem with this; we require only that such distributions include this README
+file, the WHERE file, the COPYING file (contains copyright/redistribution
+information), and the appropriate documentation files (unzip.txt and/or
+unzip.1 for UnZip, etc.). If the local system provides a way to make self-
+extracting archives in which both the executables and text files can be
+stored together, that's best (in particular, use UnZipSFX if at all possible,
+even if it's a few kilobytes bigger than the alternatives); otherwise we
+suggest a bare UnZip executable and a separate zipfile containing the re-
+maining text and binary files. If another archiving method is in common
+use on the target system (for example, Zoo or LHa), that may also be used.
+
+
+BUGS AND NEW PORTS: CONTACTING INFO-ZIP
+----------------------------------------
+All bug reports and patches (context diffs only, please!) should go to
+Zip-...@lists.wku.edu, which is the e-mail address for the Info-ZIP
+authors. (Note that a few rare systems require the Zip-Bugs part to be
+capitalized as shown; most systems work OK with lowercase "zip-bugs,"
+however.) DO NOT MAIL US LARGE BINARIES--EVER. If you need to send us
+a problem archive that happens to be large (> 20K), contact us first for
+instructions.
+
+"Dumb questions" that aren't adequately answered in the documentation
+should also be directed to Zip-Bugs rather than to a global forum such
+as Usenet. (Kindly make certain that your question *isn't* answered by
+the documentation, however--a great deal of effort has gone into making
+it clear and complete.)
+
+Suggestions for new features can be discussed on Info...@lists.wku.edu,
+a mailing list for Info-ZIP beta testers and interested parties; you need
+to subscribe first, however (see below). We make no promises to act
on all
+suggestions or even all patches, but if it is something that is manifestly
+useful, sending the required patches to Zip-Bugs directly (as per the
+instructions in the ZipPorts file) is likely to produce a quicker response
+than asking us to do it--the authors are always ridiculously short on time.
+(Please do NOT send patches or encoded zipfiles to the Info-ZIP list.
+Please DO read the ZipPorts file before sending any large patch. It would
+be difficult to over-emphasize this point...)
+
+If you are considering a port, not only should you read the ZipPorts file,
+but also please check in with Zip-Bugs BEFORE getting started, since the
+code is constantly being updated behind the scenes. (For example, VxWorks,
+VMOS and Netware ports were once claimed to be under construction, although
+we have yet to see any up-to-date patches.) We will arrange to send
you the
+latest sources. The alternative is the possibility that your hard
work will
+be tucked away in a subdirectory and mostly ignored, or completely ignored
+if someone else has already done the port (and you'd be surprised how often
+this has happened).
+
+
+BETA TESTING: JOINING INFO-ZIP
+-------------------------------
+If you'd like to keep up to date with our UnZip (and companion Zip utility)
+development, join the ranks of beta testers, add your own thoughts and
+contributions, or simply lurk, you may join one of our mailing lists.
+There is an announcements-only list (Info-ZIP-announce) and a general
+discussion/testing list (Info-ZIP). You must be a subscriber to post, and
+you can subscribe via the links on our Frequently Asked Questions page:
+
+ http://www.info-zip.org/pub/infozip/FAQ.html#lists
+
+(Please note that as of late May 2004, the lists are unavailable pending
+a move to a new site; we hope to have them restored shortly. In the
+interim ...) Feel free to use our bug-reporting web page for bug reports
+and to ask questions not answered on the FAQ page above:
+
+ http://www.info-zip.org/zip-bug.html
+
+There is also a closed mailing list for internal discussions of our core
+development team. This list is now kept secret to prevent us from being
+flooded with spam messages.
+
+
+-- Greg Roelofs (sometimes known as Cave Newt), principal UnZip developer
+ guy, with inspiration from David Kirschbaum, was Author of this text.
+
+-- Christian Spieler (shorthand: SPC), current UnZip maintenance coordinator,
+ applied the most recent changes.
Added: vendor/unzip/current/ToDo
==============================================================================
--- (empty file)
+++ vendor/unzip/current/ToDo Sun Jun 15 20:29:04 2008
@@ -0,0 +1,179 @@
+================================
+For UnZip 6.0/6.1/who knows:
+================================
+
+ o implement handling of file sizes beyond the 32-bit limit of
+ 2GByte (resp. 4GByte), using the new 64-bit extra field extensions
+ as defined by PKWARE (this will not get implemented for the present
+ 16-bit ports - plain DOS and OS/2 1.x)
+
+ top of the list for 6.0!
+ UnZip 6.0 is now under development, first betas for Win32 and Unix
+ are available
+
+ o add multi-part zipfile handling
+
+ major feature for 6.0!
+
+ could happen for 6.0 - 10/8/2004 EG
+
+ o better support for multilingual uses and different codepages;
+ support unicode (UTF-8 coded) filenames and comment texts
+
+ a requested feature getting more and more important,
+ maybe in 6.1
+
+ o add new low-level, binary API; rewrite "normal" (command-line) UnZip
+ to use it
+
+ maybe soon (maybe 6.1)
+
+ o use (simple!) configure script in combination with Unix Makefile
+
+ very soon (6.0 or 6.1)
+
+ may be needed in 6.0 to autodetect large file support -
10/8/2004 EG
+
+ o add precautions against extracting files outside the tree below
+ the current directory resp. the specified extraction folder.
+ (automatically remove absolute path specs from zip entries; emit
+ warnings when traversing outside the extraction tree...)
+
+ done as of version 5.51
+
+ o MSDOS/WIN32/others: detection of "reserved" names (= names of character
+ devices, or system extensions that look like a characters device driver)
+ at runtime; with the goal of emitting "meaningful" error messages and/or
+ rename queries.
+ (Currently, these reserved names are catched as "non-deletable files".
+ On MSDOS and WIN32, when the RTL stat() function allows to identify
+ character devices, the "reserved" names are automatically
prefixed with
+ an underscore.)
+
+ o redesign "file exists -- is newer/older -- overwrite/skip/rename"
+ logic in extract.c and the corresponding system specific mapname()
+ services; to prevent superfluous decryption key prompts for entry
+ that will be skipped, later.
+
+ o rewrite to use fread/fseek/etc. [eventually: test
+ write(bytes) vs. fwrite(words), especially on Crays/Alphas]
+
+ soon (probably in conjunction with multi-part handling)
+
+ o incorporate new backfill version of inflate()
+
+ wait for zlib version
+
+ o check NEXTBYTE for EOF in crypt.c, funzip.c and explode.c, too
+
+ whenever
+
+ o add option to force completely non-interactive operation (no queries
+ for overwrite/rename, password, etc.); also allow some sort of non-
+ interactive password provision? (file? command-line? env. variable?)
+
+ someday?
+
+ o add testing of extra fields (if have CRC)
+
+ later
+
+ o rewrite to allow use as a filter
+
+ way, way later...
+
+ o add Unix hard-link support?
+
+ way, way later...
+
+ o add ".ini" file support as a (more elaborate) alternative to the presently
+ supported preconfiguring abilities via special environment variables
+ (UNZIP on many systems...)?
+
+ way, way later (if ever)...
+
+ o add option to search zipfile contents for a string and print the
+ results? ("zipgrep" option--e.g., unzip -g or unzip -S) (easy for
+ fixed strings, hard for wildcards/true regex's)
+
+ way, way later, if at all...probably use libregex
+
+ o add -y "display symlinks" option to zipinfo? various sorting options?
+ (-St date/time, -Sn name)?
+
+ who knows
+
+ o add "in-depth" option to zipinfo? (check local headers against
+ central, etc.)--make it a better debugging tool (or just create
+ zipfix)
+
+ who knows (zip -F, -FF already exist)
+
+Some maintenance or OS specific topics for 6.0 release:
+
+ * add "unix-style-path -> partitioned-dataset filename" conversion
+ to MVS port
+
+ * should we add support for (null) entry names (empty entry name
field), to
+ conform to the PKWARE specification?
+
+
+=======================================
+
+Requested features:
+
+ - extract or exclude on basis of UID [Armin Bub,
Armi...@bk.bosch.de, 970904]
+
+=======================================
+
+ o miscellaneous little stuff: whenever
+ --------------------------
+
+ - add support for setting directory time stamps to win32 port. This requires
+ a solution similar to the UNIX SET_DIR_ATTRIB optional code; maybe,
it could
+ be combined with the delayed restoring of directory ACLs. Unfortunately,
+ the simple version used in the OS/2 case (setting dir time stamp
just after
+ creating the directory) does not work, because WinNT updates directory
+ change times whenever the directory content gets modified (addition,
+ deletion, rename, file change), at least for NTFS file systems.
+ (SPC, 2000-11-16)
+
+ - change DOS -f/-u stuff to use DOS API for getting filetimes, not stat()
+
+ - add (-N?) option to lose all user input and/or switch to "(*input)()"
+ function, replaceable by UzpAltMain() param
+ - add -@ option to read from stdin (zip) or from file (PKZIP)? (go32 built-in)
+ - add -oo option to overwrite OS/2 and DOS system and hidden files, too
+ - add option to compute MD5 checksum on files and/or on entire zipfile?
+
+ - decide whether to use WinGUI "skipping" diagnostics in extract.c
+ - combine "y/n/A/N" query/response stuff into unified section with query
+ function(s) (InputFn?)
+ - disable ^V code in remaining mapname() routines
+
+ - change filename-matching logic so case-insensitive if
case-sensitive fails?
+
+ - allow multiple dir creation with -d option? [Bob Maynard]
+
+ - use gcc -pg, gprof to do profiling on unzip
+
+ - Doug Patriarche (doug.patria...@nt.com) Northern Telecom
Canada Ltd.
+ "I need to do a port of zip/unzip for Wind River Systems' VxWorks OS"
+ [GRR: 15 March 95 -> "early June"]
+
+
+Features from old BUGS file (mostly duplicates of other entries above):
+
+ - ignore case for internal filename match on non-Unix systems, unless file-
+ specs enclosed in single quotes
+ - modify to decompress input stream if part of a pipe, but continue using
+ central directory if not (BIG job!)--extended local header capability
+ - add zipinfo option(s) to sort alphabetically, by date/time, in
reverse, etc.
+ - when listing filenames, use '?' for non-printables? [Thomas Wolff, 92.6.1]
+ - add zipinfo "in-depth" option? (check local vs. central filenames, etc.)
+ - create zipcat program to concatenate zipfiles
+ - add -oo option (overwrite and override)? no user queries (if bad password,
+ skip file; if disk full, take default action; if VMS special on non-VMS,
+ unpack anyway; etc.)
+ - add -Q[Q[Q]] option (quiet mode on comments, cautions, warnings and errors)?
+ forget -oo, or make synonym? Default level -Q?
Added: vendor/unzip/current/WHERE
==============================================================================
--- (empty file)
+++ vendor/unzip/current/WHERE Sun Jun 15 20:29:04 2008
@@ -0,0 +1,258 @@
+__________________________________________________________________________
+
+ This is the Info-ZIP file ``WHERE,'' last updated on 17 February 2005.
+__________________________________________________________________________
+
+ The latest version of this file can be found online at:
+
+ ftp://ftp.info-zip.org/pub/infozip/doc/WHERE
+
+ Note that some ftp sites may not yet have the latest versions of Zip
+ and UnZip when you read this. The latest versions always appear in
+ ftp://ftp.info-zip.org/pub/infozip/ (and subdirectories thereof) first,
+ except for encryption binaries, which always appear in
+ ftp://ftp.icce.rug.nl/infozip/ (and subdirectories) first.
+
+ IF YOU FIND AN ERROR: please let us know! We don't have time to
+ check each and every site personally (or even collectively), so any
+ number of the sites listed below may have moved or disappeared en-
+ tirely. E-mail to Zip-...@lists.wku.edu and we'll update this file.
+__________________________________________________________________________
+
+
+Info-ZIP's home WWW site is listed on Yahoo and is at:
+
+ ftp://ftp.info-zip.org/pub/infozip/Info-ZIP.html (master version)
+ http://ftp.info-zip.org/pub/infozip/ (master version)
+ http://www.info-zip.org/
+
+Note that the old sites at http://www.cdrom.com/pub/infozip/ and
+http://www.freesoftware.com/pub/infozip are PERMANENTLY BROKEN. They
+cannot be updated or removed, apparently.
+
+The Zip and UnZip pages have links to most known mirror sites carrying our
+source and/or binary distributions, and they generally are more up-to-date
+and have better information than what you are reading:
+
+ ftp://ftp.info-zip.org/pub/infozip/Zip.html
+ ftp://ftp.info-zip.org/pub/infozip/UnZip.html
+
+The related zlib package by Info-ZIP's Jean-loup Gailly and Mark Adler
is at:
+
+ http://www.zlib.org/
+
+Source-code archives for Info-ZIP's portable Zip, UnZip, and related
+utilities:
+
+ zip231.zip Zip 2.31 (deflation; includes zipnote/zipsplit/zipcloak)
+ zip231.tar.Z ditto, compress'd tar format
+
+ zip11.zip Zip 1.1 (shrinking, implosion; compatible w.
PKUNZIP 1.1)
+ zip11.tar.Z ditto, compress'd tar format
+
+ unzip552.zip UnZip 5.52 (all methods[*]; unzip/funzip/unzipsfx/zipgrep)
+ unzip552.tar.gz ditto, gzip'd tar format
+ unzip552.tar.Z ditto, compress'd tar format
+
+ unred552.zip UnZip 5.52 add-on, contains copyrighted unreduce support
+
+ zcrypt29.zip encryption support for Zip 2.3[**]
+ zcrypt10.zip encryption support for Zip 1.1
+
+ MacZip106src.zip contains all the GUI stuff and the project files
to build
+ the MacZip main-app. To build MacZip
successfully, both
+ the Zip 2.31 and UnZip 5.52 sources are required, too.
+
+ wiz502.zip WiZ 5.02, Windows 9x/NT GUI front-end for
Info-ZIP DLLs
+ wiz502+dlls.zip WiZ 5.02, Windows 9x/NT GUI front-end plus DLL sources
+
+[*] Unreducing is disabled by default, but is available as add-on.
+ As of July 2004, Unisys's LZW patent was expired worldwide, and
+ unshrinking is turned on by default since the release of UnZip 5.52.
+ See UnZip's INSTALL file for details.
+
+[**] As of January 2000, US export regulations were amended to allow export
+ of free encryption source code from the US. As of June 2002, these
+ regulations were further relaxed to allow export of encryption binaries
+ associated with free encryption source code. The Zip 2.31, UnZip 5.52
+ and Wiz 5.02 archives now include full crypto source code. As of the
+ Zip 2.31 release, all official binaries include encryption
support; the
+ former "zcr" archives ceased to exist.
+ (Note that restrictions may still exist in other countries, of course.)
+
+Executables archives (and related files) for Info-ZIP's software; not all
+of these will be immediately available due to lack of access to appropriate
+systems on the part of Info-ZIP members.
+
+ zip231x.zip MSDOS executables and docs
+ zip231x1.zip OS/2 1.x (16-bit) executables and docs
+ zip231x2.zip OS/2 2/3/4.x (32-bit) executables and docs
+ zip231xA.zip Amiga executables and docs
+ zip231xB.zip BeOS executables and docs
+ zip231xC.zip VM/CMS executable and docs
+ zip231xK.zip Tandem NSK executables and docs
+ zip231xM.xmit MVS classic executable
+ zip231xM-docs.zip MVS classic port, docs only
+ zip231dN.zip WinNT/Win9x (Intel) DLL, header files, docs
+ zip231xN.zip WinNT/Win9x (Intel) executables and docs
+ zip231xN-axp.zip WinNT (Alpha AXP) executables and docs
+ zip231xN-mip.zip WinNT (MIPS R4000) executables and docs
+ zip231xN-ppc.zip WinNT (PowerPC) executables and docs
+ zip231xO.zip IBM OS/390 Open Edition binaries and docs
+ zip231xQ.zip SMS/QDOS executables and docs
+ zip231xR.zip Acorn RISC OS executables and docs
+ zip231xT.zip Atari TOS executables and docs
+ zip231-vms-axp-obj.zip
+ VMS (Alpha AXP) object libs, link procedure and docs
+ zip231-vms-axp-exe.zip
+ VMS (Alpha AXP) executables for VMS 6.1 or later
and docs
+ zip231-vms-vax-decc-obj.zip
+ VMS (VAX) object libs (new DEC C), link procedure
and docs
+ zip231-vms-vax-decc-exe.zip
+ VMS (VAX) executables (DEC C) for VMS 6.1 or
later; docs
+ zip231-vms-vax-vaxc-obj.zip
+ VMS (VAX) object libs (old VAX C), link procedure
and docs
+ zip231x.hqx Macintosh BinHex'd executables and docs
+
+ unz552x.exe MSDOS self-extracting executable (16-bit
unzip, ..., docs)
+ unz552x3.exe MSDOS self-extracting executable (16-, 32-bit
unzip, docs)
+ unz552x1.exe OS/2 1.x (16-bit) self-extracting executables and docs
+ unz552x2.exe OS/2 2/3/4.x (32-bit) self-extracting executables
and docs
+ unz552d2.zip OS/2 2/3/4.x (32-bit) DLL, header file, demo exe
and docs
+ unz552xA.ami Amiga self-extracting executables and docs
+ unz552xA.lha Amiga executables and docs, LHa archive
+ unz552xB.sfx BeOS self-extracting executables and docs
+ unz552xB.tar.gz BeOS executables and docs, gzip'd tar archive
+ unz552xC.mod VM/CMS executable module in "packed" format
+ unz552xC-docs.zip VM/CMS docs, only
+ unz552xF.zip FlexOS executable and docs
+ unz552xK.zip Tandem NSK executable and docs
+ unz552xM.xmit MVS classic executable
+ unz552xM-docs.zip MVS classic port, docs only
+ unz552dN.zip NT4/W2K/XP/2K3/W9x (32-bit Intel) DLL, header
files, docs
+ unz552xN.exe NT/2K/XP/2K3/W9x self-extracting i386 executables
and docs
+ unz552xN-axp.exe WinNT (Alpha AXP) self-extracting executables and docs
+ unz552xN-mip.exe WinNT (MIPS R4000) self-extracting executables
and docs
+ unz552xN-ppc.exe WinNT (PowerPC) self-extracting executables and docs
+ unz552xQ.sfx SMS/QDOS self-extracting executables and docs
+ unz552xO.tar.Z IBM OS/390 Open edition (Unix-like), exes and docs
+ unz552xR.exe Acorn RISC OS self-extracting executables and docs
+ unz552xR.spk Acorn RISC OS Spark'd executables and docs
+ unz552xT.tos Atari TOS self-extracting executables and docs
+ unz552x-vms-axp-obj.bck VMS backup saveset,
+ contains UnZip (Alpha) obj libs, link procedure, docs
+ unz552x-vms-axp-obj.exe VMS (Alpha AXP) SFX archive (statically linked),
+ contains UnZip (Alpha) obj libs, link procedure, docs
+ unz552x-vms-axp-exe.exe VMS (Alpha AXP) SFX archive (dynamically linked),
+ contains UnZip (Alpha AXP, DEC C) executables and docs,
+ smaller than object archive, but requires VMS 6.1
+ unz552x-vms-vax-decc-obj.bck VMS backup saveset,
+ contains UnZip (new DEC C) obj libs, link
procedure, docs
+ unz552x-vms-vax-decc-obj.exe VMS (VAX) SFX archive (statically linked),
+ contains UnZip (new DEC C) obj libs, link
procedure, docs
+ unz552x-vms-vax-decc-exe.exe VMS (VAX) SFX archive (dynamically linked),
+ contains UnZip (new DEC C) executables and docs,
+ smaller than object archive, but requires VMS 6.1
+ unz552x-vms-vax-vaxc-obj.bck VMS backup saveset,
+ contains UnZip (old VAX C) obj libs, link
procedure, docs
+ unz552x-vms-vax-vaxc-obj.exe VMS (VAX) SFX archive (statically linked),
+ contains UnZip (old VAX C) obj libs, link
procedure, docs
+ unz552x.hqx Macintosh BinHex'd executables and docs for unzip
+ (unz552x.tar.{Z,gz} Unix exes/docs for Solaris 2.x, SCO Unix,
Linux, etc.,
+ depending on directory/location; generally only provided
+ in cases where the OS does *not* ship with a
bundled C
+ compiler)
+
+ MacZip106nc.hqx Macintosh combined Zip&UnZip application with GUI,
+ executables and docs (no encryption)
+ MacZip106c.hqx Macintosh combined Zip&UnZip application with GUI,
+ executables and docs (with encryption)
+
+ wiz502xN.exe WiZ 5.02 32-bit (Win9x/NT/2K/XP/2K3) app+docs (self-extr.)
+
+ UnzpHist.zip complete changes-history of UnZip and its precursors
+ ZipHist.zip complete changes-history of Zip
+
+ftp/web sites for the US-exportable sources and executables:
+
+ NOTE: Look for the Info-ZIP file names given above (not PKWARE or third-
+ party stuff) in the following locations. Some sites like to use slightly
+ different names, such as zip-2.31.tar.gz instead of zip231.tar.Z.
+
+ ftp://ftp.info-zip.org/pub/infozip/ [THE INFO-ZIP
HOME SITE]
+ ftp://sunsite.doc.ic.ac.uk/packages/zip/ [MIRRORS THE INFO-ZIP
HOME SITE]
+ ftp://unix.hensa.ac.uk/mirrors/uunet/pub/archiving/zip/
+
+ ftp://ftp.cmdl.noaa.gov/aerosol/doc/archiver/{all,dos,os2,mac,vax_alpha}/
+ ftp://garbo.uwasa.fi/pc/arcers/ [AND OTHER GARBO MIRRORS]
+ ftp://garbo.uwasa.fi/unix/arcers/ [AND OTHER GARBO MIRRORS]
+ ftp://ftp.elf.stuba.sk/pub/pc/pack/ [AND OTHER STUBA MIRRORS]
+ ftp://ftp-os2.cdrom.com/pub/os2/archiver/
+ ftp://ftp-os2.nmsu.edu/os2/archiver/
+ ftp://ftp.informatik.tu-muenchen.de/pub/comp/os/os2/archiver/
+ ftp://sumex-aim.stanford.edu/info-mac/cmp/
+ ftp://ftp.wustl.edu/pub/aminet/util/arc/ [AND OTHER AMINET MIRRORS]
+ ftp://atari.archive.umich.edu/pub/Archivers/ [AND OTHER UMICH MIRRORS]
+ http://www.umich.edu/~archive/atari/Archivers/
+ ftp://jake.educom.com.au/pub/infozip/acorn/ [Acorn
RISC OS]
+ http://www.sitec.net/maczip/
[MacZip port]
+
+ftp/web sites for the encryption and decryption sources and/or executables:
+
+ Outside the US:
+ ftp://ftp.info-zip.org/pub/infozip/ [THE INFO-ZIP HOME SITE]
+ ftp://ftp.icce.rug.nl/infozip/ [THE INFO-ZIP ENCRYPTION
HOME SITE]
+ ftp://ftp.elf.stuba.sk/pub/pc/pack/
+ ftp://garbo.uwasa.fi/pc/arcers/
+ ftp://ftp.inria.fr/system/arch-compr/
+ ftp://ftp.leo.org/pub/comp/os/os2/leo/archiver/
+ (mail server at ftp-m...@ftp.leo.org)
+
+ ftp://ftp.win.tue.nl/pub/compression/zip/
+ ftp://ftp.uni-erlangen.de/pub/pc/msdos/arc-utils/zip/
+
+
+The primary distribution site for the MacZip port can be found at:
+
+ http://www.sitec.net/maczip/
+
+ftp sites for VMS-format Zip and UnZip packages (sources, object files and
+executables, no encryption/decryption--see also "Mail servers" section below):
+
+ ftp.spc.edu [192.107.46.27] and ftp.wku.edu:
+
+ [.MACRO32]AAAREADME.TXT
+ [.MACRO32.SAVESETS]UNZIP.BCK or UNZIP.ZIP (if already have older version)
+ [.MACRO32.SAVESETS]ZIP.ZIP
+
+To find other ftp/web sites:
+
+ The "archie" ftp database utility can be used to find an ftp site near
+ you (although the command-line versions always seem to find old ver-
+ sions...the `FTPsearch' server at http://ftpsearch.ntnu.no/ftpsearch
+ --formerly `Archie 95'--is quite up-to-date, however). Or check a stan-
+ dard WWW search engine like AltaVista (http://www.altavista.digital.com/)
+ or Yahoo (http://www.yahoo.com/). If you don't know how to use these,
+ DON'T ASK US--read the web sites' help pages or check the Usenet groups
+ news.announce.newusers or news.answers or some such, or ask your system
+ administrator.
+
+Mail servers:
+
+ To get the encryption sources by e-mail, send the following commands
+ to ftp-m...@informatik.tu-muenchen.de:
+
+ get /pub/comp/os/os2/archiver/zcrypt29.zip
+ quit
+
+ To get the VMS Zip/UnZip package by e-mail, send the following
+ commands in the body of a mail message to file...@wku.edu (the
+ "HELP" command is also accepted):
+
+ SEND FILESERV_TOOLS
+ SEND UNZIP
+ SEND ZIP
+
+ To get Atari executables by e-mail, send a message to
+ at...@atari.archive.umich.edu for information about the mail server.
+__________________________________________________________________________
Added: vendor/unzip/current/acorn/Contents
==============================================================================
--- (empty file)
+++ vendor/unzip/current/acorn/Contents Sun Jun 15 20:29:04 2008
@@ -0,0 +1,26 @@
+Contents of the "acorn" subdirectory for UnZip 5.4 and later:
+
+ acorn.c.acorn Acorn-specific resources
+ acorn.c.riscos mainly file-handling routines for FileCore-based filesystems
+ acorn.Contents this file
+ acorn.GMakeFile Makefile for gcc
+ acorn.h.riscos
+ acorn.h.swiven
+ acorn.makefile Makefile script for default Acorn C compiler
+ acorn.README notes about Acorn-specific features
+ acorn.RunMe1st Obey file to move files into suitable place for compilation
+ on RISC OS machines
+ acorn.s.swiven SWI veneers
+ acorn.srcrename small executable that converts files from Unix
style to
+ RISC OS style, used by RunMe1st
+
+Notes:
+
+ Use the "RunMe1st" file (it is an Obey file) to convert all the
files from
+ "filename/[chs]" to "[chs].filename" (so that UnZip could be easily compiled
+ under RISC OS). It will also set the correct makefile.
+
+ To compile just set the CSD to the main UnZip directory and run 'amu'.
+
+ Currently only the Acorn C V5 compiler has been tested but probably also
+ Acorn C V4 and the Acorn Assembler V2 will be able to compile UnZip.
Added: vendor/unzip/current/acorn/GMakefile
==============================================================================
--- (empty file)
+++ vendor/unzip/current/acorn/GMakefile Sun Jun 15 20:29:04 2008
@@ -0,0 +1,142 @@
+# Makefile for UnZip, UnZipSFX, ZipInfo and fUnZip (5.2 or later)
+# using gcc 2.95.4 (or later).
+# You may look at <URL:http://hard-mofo.dsvr.net/gcc/> for an up-to-date
+# gcc port.
+
+CC = gcc -mlibscl
+BIND = $(CC)
+AS = $(CC) -c
+ASM = as
+SQUEEZE = squeeze -v
+E =
+
+# flags
+# CFLAGS flags for C compile
+# LFLAGS1 flags after output file spec, before obj file list
+# LFLAGS2 flags after obj file list (libraries, etc)
+#
+LIB =
+CFLAGS = -O2 -mthrowback -DNO_STRNICMP
+ASMFLAGS = -throwback -objasm -upper
+LFLAGS1 =
+LFLAGS2 = $(LIB)
+
+# object file lists
+OBJS1 = o.unzip o.crc32 o.crctab o.crypt o.envargs o.explode
+OBJS2 = o.extract o.fileio o.globals o.inflate o.list o.match
+OBJS3 = o.process o.ttyio o.unreduce o.unshrink o.zipinfo
+OBJS = $(OBJS1) $(OBJS2) $(OBJS3) o.riscos o.swiven o.acorn
+OBJF = o.funzip o.crc32 o.cryptf o.globalsf o.inflatef o.ttyiof \
+ o.riscos o.swiven
+OBJX = o.unzipsfx o.crc32 o.crctab_ o.crypt_ o.extract_ o.fileio_
o.globals_ \
+ o.inflate_ o.match_ o.process_ o.ttyio_ o.acorn_ o.swiven o.riscos_
+
+UNZIP_H = h.unzip h.unzpriv h.globals acorn.h.riscos acorn.h.swiven
+
+all: unzip funzip unzipsfx
+
+
+install: unzip funzip unzipsfx
+ $(SQUEEZE) unzip %.unzip
+ $(SQUEEZE) funzip %.funzip
+ $(SQUEEZE) unzipsfx unzipsfx
+ copy %.unzip %.zipinfo ~CVF
+
+# rules for unzip and funzip
+o.crc32: c.crc32 $(UNZIP_H) h.zip
+ $(CC) $(CFLAGS) -c c.crc32 -o o.crc32
+o.crctab: c.crctab $(UNZIP_H) h.zip
+ $(CC) $(CFLAGS) -c c.crctab -o o.crctab
+o.crypt: c.crypt $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -c c.crypt -o o.crypt
+o.envargs: c.envargs $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.envargs -o o.envargs
+o.explode: c.explode $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.explode -o o.explode
+o.extract: c.extract $(UNZIP_H) h.crypt
+ $(CC) $(CFLAGS) -c c.extract -o o.extract
+o.fileio: c.fileio $(UNZIP_H) h.crypt h.ttyio h.ebcdic
+ $(CC) $(CFLAGS) -c c.fileio -o o.fileio
+o.funzip: c.funzip $(UNZIP_H) h.crypt h.ttyio h.tables
+ $(CC) $(CFLAGS) -c c.funzip -o o.funzip
+o.globals: c.globals $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.globals -o o.globals
+o.inflate: c.inflate h.inflate $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.inflate -o o.inflate
+o.list: c.list $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.list -o o.list
+o.match: c.match $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.match -o o.match
+o.process: c.process $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.process -o o.process
+o.ttyio: c.ttyio $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -c c.ttyio -o o.ttyio
+o.unreduce: c.unreduce $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.unreduce -o o.unreduce
+o.unshrink: c.unshrink $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.unshrink -o o.unshrink
+o.unzip: c.unzip $(UNZIP_H) h.crypt h.unzvers h.consts
+ $(CC) $(CFLAGS) -c c.unzip -o o.unzip
+o.zipinfo: c.zipinfo $(UNZIP_H)
+ $(CC) $(CFLAGS) -c c.zipinfo -o o.zipinfo
+
+o.crctab_: c.crctab $(UNZIP_H) h.zip
+ $(CC) $(CFLAGS) -DSFX -c c.crctab -o o.crctab_
+o.crypt_: c.crypt $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -DSFX -c c.crypt -o o.crypt_
+o.extract_: c.extract $(UNZIP_H) h.crypt
+ $(CC) $(CFLAGS) -DSFX -c c.extract -o o.extract_
+o.fileio_: c.fileio $(UNZIP_H) h.crypt h.ttyio h.ebcdic
+ $(CC) $(CFLAGS) -DSFX -c c.fileio -o o.fileio_
+o.globals_: c.globals $(UNZIP_H)
+ $(CC) $(CFLAGS) -DSFX -c c.globals -o o.globals_
+o.inflate_: c.inflate h.inflate $(UNZIP_H) h.crypt
+ $(CC) $(CFLAGS) -DSFX -c c.inflate -o o.inflate_
+o.match_: c.match $(UNZIP_H)
+ $(CC) $(CFLAGS) -DSFX -c c.match -o o.match_
+o.process_: c.process $(UNZIP_H)
+ $(CC) $(CFLAGS) -DSFX -c c.process -o o.process_
+o.ttyio_: c.ttyio $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -DSFX -c c.ttyio -o o.ttyio_
+
+o.unzipsfx: c.unzip $(UNZIP_H) h.crypt h.unzvers h.consts
+ $(CC) $(CFLAGS) -DSFX -c c.unzip -o o.unzipsfx
+
+o.cryptf: c.crypt $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -DFUNZIP -c c.crypt -o o.cryptf
+o.globalsf: c.globals $(UNZIP_H)
+ $(CC) $(CFLAGS) -DFUNZIP -c c.globals -o o.globalsf
+o.inflatef: c.inflate h.inflate $(UNZIP_H) h.crypt
+ $(CC) $(CFLAGS) -DFUNZIP -c c.inflate -o o.inflatef
+o.ttyiof: c.ttyio $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -DFUNZIP -c c.ttyio -o o.ttyiof
+
+o.acorn: acorn.c.acorn $(UNZIP_H)
+ $(CC) $(CFLAGS) -I@ -c acorn.c.acorn
+o.acorn_: acorn.c.acorn $(UNZIP_H)
+ $(CC) $(CFLAGS) -I@ -c -DSFX -DSFX_EXDIR -o o.acorn_ acorn.c.acorn
+
+o.riscos: acorn.c.riscos $(UNZIP_H)
+ $(CC) $(CFLAGS) -I@ -c acorn.c.riscos
+o.riscos_: acorn.c.riscos $(UNZIP_H)
+ $(CC) $(CFLAGS) -I@ -c -DSFX -DSFX_EXDIR -o o.riscos_ acorn.c.riscos
+
+o.swiven: acorn.s.swiven
+ $(ASM) $(ASMFLAGS) acorn.s.swiven -o o.swiven
+
+unzip: $(OBJS)
+ $(BIND) -o unzip$(E) $(LFLAGS1) $(OBJS) $(LFLAGS2)
+funzip: $(OBJF)
+ $(BIND) -o funzip$(E) $(LFLAGS1) $(OBJF) $(LFLAGS2)
+unzipsfx: $(OBJX)
+ $(BIND) -o unzipsfx$(E) $(LFLAGS1) $(OBJX) $(LFLAGS2)
+
+clean:
+ remove unzip
+ remove funzip
+ remove zipinfo
+ remove unzipsfx
+ create o.!fake! 0
+ wipe o.* ~cf
+
+# end of Makefile
Added: vendor/unzip/current/acorn/ReadMe
==============================================================================
--- (empty file)
+++ vendor/unzip/current/acorn/ReadMe Sun Jun 15 20:29:04 2008
@@ -0,0 +1,69 @@
+Acorn-specific usage instructions
+---------------------------------
+
+As zipfiles can come from a variety of sources apart from Acorn machines,
+consideration had to be given to the handling of dot-extensions, e.g.
+"DOSFILE.TXT", "unix-filename.tar.gz". These are extracted as "DOSFILE/TXT"
+and "unix-filename/tar/gz"; their names may or may not be truncated,
+depending on where the files are being created: what filing system
and, for
+Filecore-based filing systems such as ADFS or an IDEFS or SCSIFS, which
+disk/partition format (names will not be truncated if you're using E+
or F+).
+
+Where truncation occurs, you must be REALLY careful about extracting files
+from archives. The files
+
+ dummy_source.c and dummy_source.h
+
+will both be extracted as
+
+ dummy_sour
+
+UnZip will prompt you for confirmation of the over-writing of these files,
+but you must be really careful unless you wish to lose files! Also, because
+UnZip is a unix-ported program, the filenames are CASE SENSITIVE.
+
+ *unzip new/zip newfile
+
+will extract 'newfile', but not 'NewFile', 'NEWFILE' or any other
+combinations. However, you can use the -C option to force operations to
+disregard the case of filenames.
+
+The Acorn UnZip port has an additional feature to cope with the
extraction of
+files containing 'c' code. As you may be aware, Acorn Desktop C
requires all
+files called "foo.c" to be renamed to "c.foo", ie "foo" in a directory called
+"c".
+
+There are two ways of using this feature.
+
+- The old way: use a colon-separated environment variable named "Unzip$Exts".
+
+ Any extensions found in this variable will be extracted to directories
+ named after the extension, with the extension stripped. For example:
+
+ *Set Unzip$Exts "c:h:o:s"
+ *unzip foo/zip
+
+- The new way: use the -/ option. For example:
+
+ Any extensions found in the parameter for this option will be
extracted to
+ directories named after the extension, with the extension stripped. For
+ example:
+
+ *unzip -/c:h:o:s foo/zip
+
+If foo/zip contains a file named "foo.c", this file will be written as "foo"
+in directory "c". This can be used to include "c:h:o:s:txt" to pull
all the
+text files out to a separate directory.
+
+UnZip fully supports SparkFS Extra Field. This means that zipfiles created
+with SparkFS or Zip (on RISC OS) will be correctly unzipped, including
+filetypes.
+
+UnZipSFX can be used to create self-extracting archives. To use it, just
+create a common zipfile using Zip (or SparkFS), then load the UnZipSFX
+executable into an editor (eg. Edit, Zap), go with the caret the end
of the
+file (using CTRL-CursorDown) and drag the zipfile to the editor window (in
+other words, append the zipfile to the UnZipSFX executable). Now,
saving the
+resulting file (with filetype Absolute (&FF8)), you have a self-extracting
+archive (ie. double-clicking on it will unzip the contents of the original
+zipfile to the currently selected directory).
Added: vendor/unzip/current/acorn/RunMe1st
==============================================================================
--- (empty file)
+++ vendor/unzip/current/acorn/RunMe1st Sun Jun 15 20:29:04 2008
@@ -0,0 +1,17 @@
+| This Obey file prepares the UnZip port for a Desktop C re-compile.
+| Run it and it will copy all the needed files into the correct
+| place.
+
+| Set the correct type of 'srcrename' so that the only requirement
+| for the user is to set 'RunMe1st' to Obey
+SetType <Obey$Dir>.srcrename FF8
+
+| Run 'srcrename' on the main UnZip directory with recursion enabled
+/<Obey$Dir>.srcrename -r -e c:h:s:o <Obey$Dir>.^
+
+| Create the 'o' directory
+CDir <Obey$Dir>.^.o
+
+| Put the Makefile in its correct place and set the correct filetype
+SetType <Obey$Dir>.makefile FE1
+Copy <Obey$Dir>.makefile <Obey$Dir>.^.makefile ~C ~V F
Added: vendor/unzip/current/acorn/acorn.c
==============================================================================
--- (empty file)
+++ vendor/unzip/current/acorn/acorn.c Sun Jun 15 20:29:04 2008
@@ -0,0 +1,989 @@
+/*
+ Copyright (c) 1990-2005 Info-ZIP. All rights reserved.
+
+ See the accompanying file LICENSE, version 2000-Apr-09 or later
+ (the contents of which are also included in unzip.h) for terms of use.
+ If, for some reason, all these files are missing, the Info-ZIP license
+ also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
+*/
+/*---------------------------------------------------------------------------
+
+ acorn.c
+
+ RISCOS-specific routines for use with Info-ZIP's UnZip 5.2 and later.
+
+ Contains: do_wild() <-- generic enough to put in fileio.c?
+ mapattr()
+ mapname()
+ checkdir()
+ mkdir()
+ setRISCOSexfield()
+ printRISCOSexfield()
+ close_outfile()
+ stamp_file()
+ version()
+
+ ---------------------------------------------------------------------------*/
+
+
+#define UNZIP_INTERNAL
+#include "^.unzip.h"
+#include "riscos.h"
+
+#define FTYPE_FFF (1<<17) /* set filetype to &FFF when extracting */
+
+#ifdef WILD_STOP_AT_DIR
+# define WESEP , (oU.W_flag ? '.' : '\0')
+#else
+# define WESEP
+#endif
+
+static int created_dir; /* used in mapname(), checkdir() */
+static int renamed_fullpath; /* ditto */
+static int has_mimemap = -1; /* used in mimemap() */
+
+extern int mkdir(const char *path, int mode);
+static int has_NFS_ext(const char *name);
+static void setRISCOSexfield(ZCONST char *path, ZCONST void *ef_spark);
+#ifdef DEBUG
+static void printRISCOSexfield(int isdir, ZCONST void *extra_field);
+#endif
+static int uxtime2acornftime(unsigned *pexadr, unsigned *pldadr,
time_t ut);
+static int mimemap(const char *name);
+
+
+#ifndef SFX
+
+/**********************/
+/* Function do_wild() */ /* for porting: dir separator;
match(ignore_case) */
+/**********************/
+
+char *do_wild(__G__ wildspec)
+ __GDEF
+ ZCONST char *wildspec; /* only used first time on a given dir */
+{
+ static DIR *wild_dir = (DIR *)NULL;
+ static ZCONST char *wildname;
+ static char *dirname, matchname[FILNAMSIZ];
+ static int notfirstcall=FALSE, have_dirname, dirnamelen;
+ struct dirent *file;
+
+ /* Even when we're just returning wildspec, we *always* do so in
+ * matchname[]--calling routine is allowed to append four characters
+ * to the returned string, and wildspec may be a pointer to argv[].
+ */
+ if (!notfirstcall) { /* first call: must initialize everything */
+ notfirstcall = TRUE;
+
+ /* break the wildspec into a directory part and a wildcard
filename */
+ if ((wildname = (ZCONST char *)strrchr(wildspec, '.')) ==
+ (ZCONST char *)NULL)
+ {
+ dirname = ".";
+ dirnamelen = 1;
+ have_dirname = FALSE;
+ wildname = wildspec;
+ } else {
+ ++wildname; /* point at character after '/' */
+ dirnamelen = wildname - wildspec;
+ if ((dirname = (char *)malloc(dirnamelen+1)) == (char
*)NULL) {
+ Info(slide, 0x201, ((char *)slide,
+ "warning: cannot allocate wildcard buffers\n"));
+ strncpy(matchname, wildspec, FILNAMSIZ);
+ matchname[FILNAMSIZ-1] = '\0';
+ return matchname; /* but maybe filespec was not a
wildcard */
+ }
+ strncpy(dirname, wildspec, dirnamelen);
+ dirname[dirnamelen] = '\0'; /* terminate for strcpy
below */
+ have_dirname = TRUE;
+ }
+
+ if ((wild_dir = opendir(dirname)) != (DIR *)NULL) {
+ while ((file = readdir(wild_dir)) != (struct dirent
*)NULL) {
+ if (file->d_name[0] == '/' && wildname[0] != '/')
+ continue; /* Unix: '*' and '?' do not match
leading dot */
+ if (match(file->d_name, wildname, 0 WESEP)) { /*
0=case sens.*/
+ if (have_dirname) {
+ strcpy(matchname, dirname);
+ strcpy(matchname+dirnamelen, file->d_name);
+ } else
+ strcpy(matchname, file->d_name);
+ return matchname;
+ }
+ }
+ /* if we get to here directory is exhausted, so close it */
+ closedir(wild_dir);
+ wild_dir = (DIR *)NULL;
+ }
+
+ /* return the raw wildspec in case that works (e.g., directory not
+ * searchable, but filespec was not wild and file is readable) */
+ strncpy(matchname, wildspec, FILNAMSIZ);
+ matchname[FILNAMSIZ-1] = '\0';
+ return matchname;
+ }
+
+ /* last time through, might have failed opendir but returned raw
wildspec */
+ if (wild_dir == (DIR *)NULL) {
+ notfirstcall = FALSE; /* nothing left to try--reset for new
wildspec */
+ if (have_dirname)
+ free(dirname);
+ return (char *)NULL;
+ }
+
+ /* If we've gotten this far, we've read and matched at least one entry
+ * successfully (in a previous call), so dirname has been copied into
+ * matchname already.
+ */
+ while ((file = readdir(wild_dir)) != (struct dirent *)NULL)
+ if (match(file->d_name, wildname, 0 WESEP)) { /* 0 == case
sens. */
+ if (have_dirname) {
+ /* strcpy(matchname, dirname); */
+ strcpy(matchname+dirnamelen, file->d_name);
+ } else
+ strcpy(matchname, file->d_name);
+ return matchname;
+ }
+
+ closedir(wild_dir); /* have read at least one dir entry; nothing
left */
+ wild_dir = (DIR *)NULL;
+ notfirstcall = FALSE; /* reset for new wildspec */
+ if (have_dirname)
+ free(dirname);
+ return (char *)NULL;
+
+} /* end function do_wild() */
+
+#endif /* !SFX */
+
+
+
+/**************************/
+/* Function has_NFS_ext() */
+/**************************/
+
+static int has_NFS_ext(const char* name)
+{
+ int i = strlen(name) - 4;
+
+ return (i >= 0 && name[i] == ',' && (i > 0 || name[i-1]=='/') &&
+ isxdigit(name[i+1]) && isxdigit(name[i+2]) && isxdigit(name[i+3]));
+} /* end function has_NFS_ext() */
+
+
+
+/**********************/
+/* Function mapattr() */
+/**********************/
+
+int mapattr(__G)
+ __GDEF
+{
+ ulg tmp = G.crec.external_file_attributes;
+
+ switch (G.pInfo->hostnum) {
+ case AMIGA_:
+ tmp = (unsigned)(tmp>>17 & 7); /* Amiga RWE bits */
+ G.pInfo->file_attr = (unsigned)(tmp<<6 | tmp<<3 | tmp);
+ break;
+ case THEOS_:
+ tmp &= 0xF1FFFFFFL;
+ if ((tmp & 0xF0000000L) != 0x40000000L)
+ tmp &= 0x01FFFFFFL; /* not a dir, mask all ftype
bits */
+ else
+ tmp &= 0x41FFFFFFL; /* leave directory bit as set */
+ /* fall through! */
+ case ACORN_:
+ case UNIX_:
+ case VMS_:
+ case ATARI_:
+ case ATHEOS_:
+ case BEOS_:
+ case QDOS_:
+ case TANDEM_:
+ G.pInfo->file_attr = (unsigned)(tmp >> 16);
+ if (G.pInfo->file_attr != 0 || !G.extra_field) {
+ break;
+ } else {
+ /* Some (non-Info-ZIP) implementations of Zip for Unix and
+ VMS (and probably others ??) leave 0 in the upper 16-bit
+ part of the external_file_attributes field.
Instead, they
+ store file permission attributes in some extra field.
+ As a work-around, we search for the presence of one of
+ these extra fields and fall back to the MSDOS compatible
+ part of external_file_attributes if one of the known
+ e.f. types has been detected.
+ Later, we might implement extraction of the permission
+ bits from the VMS extra field. But for now, the work-around
+ should be sufficient to provide "readable"
extracted files.
+ (For ASI Unix e.f., an experimental remap of the e.f.
+ mode value IS already provided!)
+ */
+ ush ebID;
+ unsigned ebLen;
+ uch *ef = G.extra_field;
+ unsigned ef_len = G.crec.extra_field_length;
+ int r = FALSE;
+
+ while (!r && ef_len >= EB_HEADSIZE) {
+ ebID = makeword(ef);
+ ebLen = (unsigned)makeword(ef+EB_LEN);
+ if (ebLen > (ef_len - EB_HEADSIZE))
+ /* discoverd some e.f. inconsistency! */
+ break;
+ switch (ebID) {
+ case EF_ASIUNIX:
+ if (ebLen >= (EB_ASI_MODE+2)) {
+ G.pInfo->file_attr =
+ (unsigned)makeword(ef+(EB_HEADSIZE+EB_ASI_MODE));
+ /* force stop of loop: */
+ ef_len = (ebLen + EB_HEADSIZE);
+ break;
+ }
+ /* else: fall through! */
+ case EF_PKVMS:
+ /* "found nondecypherable e.f. with perm.
attr" */
+ r = TRUE;
+ default:
+ break;
+ }
+ ef_len -= (ebLen + EB_HEADSIZE);
+ ef += (ebLen + EB_HEADSIZE);
+ }
+ if (!r)
+ break;
+ }
+ /* fall through! */
+ /* all remaining cases: expand MSDOS read-only bit into write
perms */
+ case FS_FAT_:
+ /* PKWARE's PKZip for Unix marks entries as FS_FAT_, but
stores the
+ * Unix attributes in the upper 16 bits of the external attributes
+ * field, just like Info-ZIP's Zip for Unix. We try to
use that
+ * value, after a check for consistency with the MSDOS attribute
+ * bits (see below).
+ */
+ G.pInfo->file_attr = (unsigned)(tmp >> 16);
+ /* fall through! */
+ case FS_HPFS_:
+ case FS_NTFS_:
+ case MAC_:
+ case TOPS20_:
+ default:
+ /* Ensure that DOS subdir bit is set when the entry's name ends
+ * in a '/'. Some third-party Zip programs fail to set
the subdir
+ * bit for directory entries.
+ */
+ if ((tmp & 0x10) == 0) {
+ extent fnlen = strlen(G.filename);
+ if (fnlen > 0 && G.filename[fnlen-1] == '/')
+ tmp |= 0x10;
+ }
+ /* read-only bit --> write perms; subdir bit --> dir exec
bit */
+ tmp = !(tmp & 1) << 1 | (tmp & 0x10) >> 4;
+ if ((G.pInfo->file_attr & 0700) == (unsigned)(0400 | tmp<<6))
+ /* keep previous G.pInfo->file_attr setting, when its "owner"
+ * part appears to be consistent with DOS attribute flags!
+ */
+ break;
+ G.pInfo->file_attr = (unsigned)(0444 | tmp<<6 | tmp<<3 | tmp);
+ break;
+ } /* end switch (host-OS-created-by) */
+
+ G.pInfo->file_attr&=0xFFFF;
+
+ G.pInfo->file_attr|=(0xFFDu<<20);
+
+ if (has_NFS_ext(G.filename)) {
+ int ftype=strtol(G.filename+strlen(G.filename)-3,NULL,16)&0xFFF;
+
+ G.pInfo->file_attr = (G.pInfo->file_attr & 0x000FFFFF) | (ftype<<20);
+ } else {
+ int type = mimemap(G.filename);
+ if (type == -1)
+ type = (G.crec.internal_file_attributes & 1) ? 0xFFF : 0xFFD;
+ G.pInfo->file_attr = (G.pInfo->file_attr & 0x000FFFFF) | (type<<20);
+ }
+
+ return 0;
+
+} /* end function mapattr() */
+
+
+
+/************************/
+/* Function mimemap() */
+/************************/
+
+static int mimemap(const char *name)
+{
+ const char *ext = name;
+ int type;
+
+ if (has_mimemap < 0)
+ has_mimemap =
+ !(SWI_OS_CLI("%RMEnsure MimeMap 0.05 RMLoad System:Modules.Network.MimeMap")
+ || SWI_OS_CLI("%RMEnsure MimeMap 0.05"));
+
+ if (!has_mimemap)
+ return -1; /* no MimeMap module; fall back on text flag test */
+
+ do {
+ while (*ext && *ext!='.')
+ ext++;
+ if (!*ext)
+ return -1; /* no suitable extension; fallback */
+ type = SWI_MimeMap_Translate(ext++);
+ } while (type == -1);
+
+ return type;
+}
+
+
+
+/************************/
+/* Function mapname() */
+/************************/
+
+int mapname(__G__ renamed)
+ __GDEF
+ int renamed;
+/*
+ * returns:
+ * MPN_OK - no problem detected
+ * MPN_INF_TRUNC - caution (truncated filename)
+ * MPN_INF_SKIP - info "skip entry" (dir doesn't exist)
+ * MPN_ERR_SKIP - error -> skip entry
+ * MPN_ERR_TOOLONG - error -> path is too long
+ * MPN_NOMEM - error (memory allocation failed) -> skip entry
+ * [also MPN_VOL_LABEL, MPN_CREATED_DIR]
+ */
+{
+ char pathcomp[FILNAMSIZ]; /* path-component buffer */
+ char *pp, *cp=(char *)NULL; /* character pointers */
+ char *lastsemi=(char *)NULL; /* pointer to last semi-colon in
pathcomp */
+ int error = MPN_OK;
+ register unsigned workch; /* hold the character being tested */
+ char *checkswap=NULL; /* pointer the the extension to
check */
+
+
+/*---------------------------------------------------------------------------
+ Initialize various pointers and counters and stuff.
+ ---------------------------------------------------------------------------*/
+
+ if (G.pInfo->vollabel)
+ return MPN_VOL_LABEL; /* can't set disk volume labels in
RISCOS */
+
+ /* can create path as long as not just freshening, or if user told
us */
+ G.create_dirs = (!uO.fflag || renamed);
+
+ created_dir = FALSE; /* not yet */
+
+ /* user gave full pathname: don't prepend rootpath */
+ renamed_fullpath = (renamed && (*G.filename == '/'));
+
+ if (checkdir(__G__ (char *)NULL, INIT) == MPN_NOMEM)
+ return MPN_NOMEM; /* initialize path buffer, unless no
memory */
+
+ *pathcomp = '\0'; /* initialize translation buffer */
+ pp = pathcomp; /* point to translation buffer */
+ if (uO.jflag) /* junking directories */
+ cp = (char *)strrchr(G.filename, '/');
+ if (cp == (char *)NULL) /* no '/' or not junking dirs */
+ cp = G.filename; /* point to internal zipfile-member
pathname */
+ else
+ ++cp; /* point to start of last component of
path */
+
+/*---------------------------------------------------------------------------
+ Begin main loop through characters in filename.
+ ---------------------------------------------------------------------------*/
+
+ while ((workch = (uch)*cp++) != 0) {
+
+ switch (workch) {
+ case '/': /* can assume -j flag not given */
+ *pp = '\0';
+ if (((error = checkdir(__G__ pathcomp, APPEND_DIR))
+ & MPN_MASK) > MPN_INF_TRUNC)
+ return error;
+ pp = pathcomp; /* reset conversion buffer for next
piece */
+ lastsemi = (char *)NULL; /* leave direct. semi-colons
alone */
+ checkswap=NULL; /* reset checking at start of new
leafname */
+ break;
+
+ case '.':
+ *pp++ = '/';
+ checkswap=pp;
+ break;
+
+ case ';': /* VMS version (or DEC-20 attrib?) */
+ lastsemi = pp;
+ *pp++ = ';'; /* keep for now; remove VMS ";##" */
+ break; /* later, if requested */
+
+ case ' ': /* change spaces to hard-spaces */
+ *pp++ = 160; /* (ISO 8859-1 Latin-1 codepage) */
+ break;
+
+ /* The following substitutions, unless stated otherwise, follow
+ * those for DOSFS. They translate special symbols into other
+ * characters which have no special meaning to RISC OS. */
+ case '#': *pp++ = '?'; break; /* single-char wildcard */
+ case '&': *pp++ = '+'; break;
+ case '@': *pp++ = '='; break;
+ case '%': *pp++ = ';'; break;
+ case '$': *pp++ = '<'; break;
+ case '^': *pp++ = '>'; break; /* parent-dir reference */
+
+ /* The following substitutions deal with the remaining special
+ * symbols. ('.' is handled above.) */
+ case '*': *pp++ = 0xD7; break; /* Latin-1 'multiply' */
+ case '"': *pp++ = '~'; break;
+ case ':': *pp++ = ';'; break;
+ case '\\': *pp++ = '/'; break;
+ case '|': *pp++ = 0xA6; break; /* Latin-1 'broken bar' */
+
+ default:
+ /* allow European characters in filenames: */
+ if (isprint(workch) || (128 <= workch && workch <= 254))
+ *pp++ = (char)workch;
+ } /* end switch */
+
+ } /* end while loop */
+
+/*---------------------------------------------------------------------------
+ Report if directory was created (and no file to create: filename ended
+ in '/'), check name to be sure it exists, and combine path and
name be-
+ fore exiting.
+ ---------------------------------------------------------------------------*/
+
+ if (G.filename[strlen(G.filename) - 1] == '/') {
+ checkdir(__G__ G.filename, GETPATH);
+ if (created_dir) {
+ if (QCOND2) {
+ Info(slide, 0, ((char *)slide, " creating: %s\n",
+ FnFilter1(G.filename)));
+ }
+ /* set dir time (note trailing '/') */
+ return (error & ~MPN_MASK) | MPN_CREATED_DIR;
+ }
+ /* dir existed already; don't look for data to extract */
+ return (error & ~MPN_MASK) | MPN_INF_SKIP;
+ }
+
+ *pp = '\0'; /* done with pathcomp: terminate it */
+
+ /* if not saving them, remove VMS version numbers
(appended ";###") */
+ if (!uO.V_flag && lastsemi) {
+ pp = lastsemi + 1;
+ while (isdigit((uch)(*pp)))
+ ++pp;
+ if (*pp == '\0') /* only digits between ';' and end:
nuke */
+ *lastsemi = '\0';
+ }
+
+ if (*pathcomp == '\0') {
+ Info(slide, 1, ((char *)slide, "mapname: conversion of %s failed\n",
+ FnFilter1(G.filename)));
+ return (error & ~MPN_MASK) | MPN_ERR_SKIP;
+ }
+
+ if (checkswap!=NULL) {
+ if (checkext(checkswap)) {
+ if ((error = checkdir(__G__ checkswap, APPEND_DIR)) > 1)
+ return error;
+ *(checkswap-1)=0; /* remove extension from pathcomp */
+ }
+ }
+
+ if (!uO.acorn_nfs_ext && has_NFS_ext(pathcomp)) {
+ /* remove the filetype extension unless requested otherwise */
+ /* the filetype should be already set by mapattr() */
+ pathcomp[strlen(pathcomp)-4]=0;
+ }
+
+ checkdir(__G__ pathcomp, APPEND_NAME); /* returns 1 if truncated:
care? */
+ checkdir(__G__ G.filename, GETPATH);
+
+ return error;
+
+} /* end function mapname() */
+
+
+
+
+/***********************/
+/* Function checkdir() */
+/***********************/
+
+int checkdir(__G__ pathcomp, flag)
+ __GDEF
+ char *pathcomp;
+ int flag;
+/*
+ * returns:
+ * MPN_OK - no problem detected
+ * MPN_INF_TRUNC - (on APPEND_NAME) truncated filename
+ * MPN_INF_SKIP - path doesn't exist, not allowed to create
+ * MPN_ERR_SKIP - path doesn't exist, tried to create and failed;
or path
+ * exists and is not a directory, but is supposed
to be
+ * MPN_ERR_TOOLONG - path is too long
+ * MPN_NOMEM - can't allocate memory for filename buffers
+ */
+{
+ static int rootlen = 0; /* length of rootpath */
+ static char *rootpath; /* user's "extract-to" directory */
+ static char *buildpath; /* full path (so far) to extracted file */
+ static char *end; /* pointer to end of buildpath ('\0') */
+
+# define FN_MASK 7
+# define FUNCTION (flag & FN_MASK)
+
+
+/*---------------------------------------------------------------------------
+ APPEND_DIR: append the path component to the path being built and check
+ for its existence. If doesn't exist and we are creating
directories, do
+ so for this one; else signal success or error as appropriate.
+ ---------------------------------------------------------------------------*/
+
+ if (FUNCTION == APPEND_DIR) {
+ int too_long = FALSE;
+#ifdef SHORT_NAMES
+ char *old_end = end;
+#endif
+
+ Trace((stderr, "appending dir segment [%s]\n", FnFilter1(pathcomp)));
+ while ((*end = *pathcomp++) != '\0')
+ ++end;
+#ifdef SHORT_NAMES /* path components restricted to 14 chars,
typically */
+ if ((end-old_end) > FILENAME_MAX) /* GRR: proper constant? */
+ *(end = old_end + FILENAME_MAX) = '\0';
+#endif
+
+ /* GRR: could do better check, see if overrunning buffer as
we go:
+ * check end-buildpath after each append, set warning variable if
+ * within 20 of FILNAMSIZ; then if var set, do careful check when
+ * appending. Clear variable when begin new path. */
+
+ /* next check: need to append '/', at least one-char
name, '\0' */
+ if ((end-buildpath) > FILNAMSIZ-3)
+ too_long = TRUE; /* check if extracting
dir? */
+ if (stat(buildpath, &G.statbuf)) { /* path doesn't exist */
+ if (!G.create_dirs) { /* told not to create (freshening) */
+ free(buildpath);
+ return MPN_INF_SKIP; /* path doesn't exist: nothing
to do */
+ }
+ if (too_long) {
+ Info(slide, 1, ((char *)slide,
+ "checkdir error: path too long: %s\n",
+ FnFilter1(buildpath)));
+ fflush(stderr);
+ free(buildpath);
+ /* no room for filenames: fatal */
+ return MPN_ERR_TOOLONG;
+ }
+ if (mkdir(buildpath, 0777) == -1) { /* create the
directory */
+ Info(slide, 1, ((char *)slide,
+ "checkdir error: cannot create %s\n\
+ unable to process %s.\n",
+ FnFilter2(buildpath), FnFilter1(G.filename)));
+ free(buildpath);
+ /* path didn't exist, tried to create, failed */
+ return MPN_ERR_SKIP;
+ }
+ created_dir = TRUE;
+ } else if (!S_ISDIR(G.statbuf.st_mode)) {
+ Info(slide, 1, ((char *)slide,
+ "checkdir error: %s exists but is not directory\n\
+ unable to process %s.\n",
+ FnFilter2(buildpath), FnFilter1(G.filename)));
+ free(buildpath);
+ /* path existed but wasn't dir */
+ return MPN_ERR_SKIP;
+ }
+ if (too_long) {
+ Info(slide, 1, ((char *)slide,
+ "checkdir error: path too long: %s\n", FnFilter1(buildpath)));
+ free(buildpath);
+ /* no room for filenames: fatal */
+ return MPN_ERR_TOOLONG;
+ }
+ *end++ = '.'; /************* was '/' *************/
+ *end = '\0';
+ Trace((stderr, "buildpath now = [%s]\n", FnFilter1(buildpath)));
+ return MPN_OK;
+
+ } /* end if (FUNCTION == APPEND_DIR) */
+
+/*---------------------------------------------------------------------------
+ GETPATH: copy full path to the string pointed at by pathcomp, and free
+ buildpath.
+ ---------------------------------------------------------------------------*/
+
+ if (FUNCTION == GETPATH) {
+ strcpy(pathcomp, buildpath);
+ Trace((stderr, "getting and freeing path [%s]\n",
+ FnFilter1(pathcomp)));
+ free(buildpath);
+ buildpath = end = (char *)NULL;
+ return MPN_OK;
+ }
+
+/*---------------------------------------------------------------------------
+ APPEND_NAME: assume the path component is the filename; append it and
+ return without checking for existence.
+ ---------------------------------------------------------------------------*/
+
+ if (FUNCTION == APPEND_NAME) {
+#ifdef SHORT_NAMES
+ char *old_end = end;
+#endif
+
+ Trace((stderr, "appending filename [%s]\n", FnFilter1(pathcomp)));
+ while ((*end = *pathcomp++) != '\0') {
+ ++end;
+#ifdef SHORT_NAMES /* truncate name at 14 characters, typically */
+ if ((end-old_end) > FILENAME_MAX) /* GRR: proper
constant? */
+ *(end = old_end + FILENAME_MAX) = '\0';
+#endif
+ if ((end-buildpath) >= FILNAMSIZ) {
+ *--end = '\0';
+ Info(slide, 0x201, ((char *)slide,
+ "checkdir warning: path too long; truncating\n\
+ %s\n -> %s\n",
+ FnFilter1(G.filename), FnFilter2(buildpath)));
+ return MPN_INF_TRUNC; /* filename truncated */
+ }
+ }
+ Trace((stderr, "buildpath now = [%s]\n", FnFilter1(buildpath)));
+ /* could check for existence here, prompt for new name... */
+ return MPN_OK;
+ }
+
+/*---------------------------------------------------------------------------
+ INIT: allocate and initialize buffer space for the file currently being
+ extracted. If file was renamed with an absolute path, don't
prepend the
+ extract-to path.
+ ---------------------------------------------------------------------------*/
+
+/* GRR: for VMS and TOPS-20, add up to 13 to strlen */
+
+ if (FUNCTION == INIT) {
+ Trace((stderr, "initializing buildpath to "));
+ if ((buildpath = (char *)malloc(strlen(G.filename)+rootlen+1))
+ == (char *)NULL)
+ return MPN_NOMEM;
+ if ((rootlen > 0) && !renamed_fullpath) {
+ strcpy(buildpath, rootpath);
+ end = buildpath + rootlen;
+ } else {
+ *buildpath = '\0';
+ end = buildpath;
+ }
+ Trace((stderr, "[%s]\n", FnFilter1(buildpath)));
+ return MPN_OK;
+ }
+
+/*---------------------------------------------------------------------------
+ ROOT: if appropriate, store the path in rootpath and create it if
+ necessary; else assume it's a zipfile member and return. This path
+ segment gets used in extracting all members from every zipfile specified
+ on the command line.
+ ---------------------------------------------------------------------------*/
+
+#if (!defined(SFX) || defined(SFX_EXDIR))
+ if (FUNCTION == ROOT) {
+ Trace((stderr, "initializing root path to [%s]\n",
+ FnFilter1(pathcomp)));
+ if (pathcomp == (char *)NULL) {
+ rootlen = 0;
+ return MPN_OK;
+ }
+ if (rootlen > 0) /* rootpath was already set, nothing
to do */
+ return MPN_OK;
+ if ((rootlen = strlen(pathcomp)) > 0) {
+ char *tmproot;
+
+ if ((tmproot = (char *)malloc(rootlen+2)) == (char *)NULL) {
+ rootlen = 0;
+ return MPN_NOMEM;
+ }
+ strcpy(tmproot, pathcomp);
+ if (tmproot[rootlen-1] == '.') { /****** was '/' ********/
+ tmproot[--rootlen] = '\0';
+ }
+ if (rootlen > 0 && (SSTAT(tmproot, &G.statbuf) ||
+ !S_ISDIR(G.statbuf.st_mode)))
+ { /* path does not exist */
+ if (!G.create_dirs /* || isshexp(tmproot) */ ) {
+ free(tmproot);
+ rootlen = 0;
+ /* skip (or treat as stored file) */
+ return MPN_INF_SKIP;
+ }
+ /* create the directory (could add loop here scanning tmproot
+ * to create more than one level, but why really
necessary?) */
+ if (mkdir(tmproot, 0777) == -1) {
+ Info(slide, 1, ((char *)slide,
+ "checkdir: cannot create extraction directory: %s\n",
+ FnFilter1(tmproot)));
+ free(tmproot);
+ rootlen = 0;
+ /* path didn't exist, tried to create, and failed: */
+ /* file exists, or 2+ subdir levels required */
+ return MPN_ERR_SKIP;
+ }
+ }
+ tmproot[rootlen++] = '.'; /*********** was '/' *************/
+ tmproot[rootlen] = '\0';
+ if ((rootpath = (char *)realloc(tmproot, rootlen+1)) ==
NULL) {
+ free(tmproot);
+ rootlen = 0;
+ return MPN_NOMEM;
+ }
+ Trace((stderr, "rootpath now = [%s]\n", FnFilter1(rootpath)));
+ }
+ return MPN_OK;
+ }
+#endif /* !SFX || SFX_EXDIR */
+
+/*---------------------------------------------------------------------------
+ END: free rootpath, immediately prior to program exit.
+ ---------------------------------------------------------------------------*/
+
+ if (FUNCTION == END) {
+ Trace((stderr, "freeing rootpath\n"));
+ if (rootlen > 0) {
+ free(rootpath);
+ rootlen = 0;
+ }
+ return MPN_OK;
+ }
+
+ return MPN_INVALID; /* should never reach */
+
+} /* end function checkdir() */
+
+
+
+
+
+/********************/
+/* Function mkdir() */
+/********************/
+
+int mkdir(path, mode)
+ const char *path;
+ int mode; /* ignored */
+/*
+ * returns: 0 - successful
+ * -1 - failed (errno not set, however)
+ */
+{
+ return (SWI_OS_File_8((char *)path) == NULL)? 0 : -1;
+}
+
+
+
+
+/*********************************/
+/* extra_field-related functions */
+/*********************************/
+
+static void setRISCOSexfield(ZCONST char *path, ZCONST void *ef_spark)
+{
+ if (ef_spark!=NULL) {
+ extra_block *block=(extra_block *)ef_spark;
+ SWI_OS_File_1((char *)path,block->loadaddr,block->execaddr,block->attr);
+ }
+}
+
+#ifdef DEBUG
+static void printRISCOSexfield(int isdir, ZCONST void *extra_field)
+{
+ extra_block *block=(extra_block *)extra_field;
+ printf("\n This file has RISC OS file informations in the local
extra field.\n");
+
+ if (isdir) {
+/* I prefer not to print this string... should change later... */
+/* printf(" The file is a directory.\n");*/
+ } else if ((block->loadaddr & 0xFFF00000) != 0xFFF00000) {
+ printf(" Load address: %.8X\n",block->loadaddr);
+ printf(" Exec address: %.8X\n",block->execaddr);
+ } else {
+ /************* should change this to use OS_FSControl 18 to get
filetype string ************/
+ char tmpstr[16];
+ char ftypestr[32];
+ int flen;
+ sprintf(tmpstr,"File$Type_%03x",(block->loadaddr & 0x000FFF00) >> 8);
+ if (SWI_OS_ReadVarVal(tmpstr,ftypestr,32,&flen)==NULL) {
+ ftypestr[flen]=0;
+ printf(" Filetype: %s (&%.3X)\n",ftypestr,(block->loadaddr &
0x000FFF00) >> 8);
+ } else {
+ printf(" Filetype: &%.3X\n",(block->loadaddr & 0x000FFF00) >> 8);
+ }
+ }
+ printf(" Access: ");
+ if (block->attr & (1<<3))
+ printf("L");
+ if (block->attr & (1<<0))
+ printf("W");
+ if (block->attr & (1<<1))
+ printf("R");
+ printf("/");
+ if (block->attr & (1<<4))
+ printf("w");
+ if (block->attr & (1<<5))
+ printf("r");
+ printf("\n\n");
+}
+#endif /* DEBUG */
+
+
+/**********************************************/
+/* internal help function for time conversion */
+/**********************************************/
+static int uxtime2acornftime(unsigned *pexadr, unsigned *pldadr,
time_t ut)
+{
+ unsigned timlo; /* 3 lower bytes of acorn file-time plus carry
byte */
+ unsigned timhi; /* 2 high bytes of acorn file-time */
+
+ timlo = ((unsigned)ut & 0x00ffffffU) * 100 + 0x00996a00U;
+ timhi = ((unsigned)ut >> 24);
+ timhi = timhi * 100 + 0x0000336eU + (timlo >> 24);
+ if (timhi & 0xffff0000U)
+ return 1; /* calculation overflow, do not change time */
+
+ /* insert the five time bytes into loadaddr and execaddr variables */
+ *pexadr = (timlo & 0x00ffffffU) | ((timhi & 0x000000ffU) << 24);
+ *pldadr = (*pldadr & 0xffffff00U) | ((timhi >> 8) & 0x000000ffU);
+
+ return 0; /* subject to future extension to signal
overflow */
+}
+
+
+/****************************/
+/* Function close_outfile() */
+/****************************/
+
+void close_outfile(__G)
+ __GDEF
+{
+ zvoid *spark_ef;
+
+ fclose(G.outfile);
+
+ if ((spark_ef = getRISCOSexfield(G.extra_field, G.lrec.extra_field_length))
+ != NULL) {
+ setRISCOSexfield(G.filename, spark_ef);
+ } else {
+ unsigned int loadaddr, execaddr;
+ int attr;
+ int mode=G.pInfo->file_attr&0xffff; /* chmod equivalent mode */
+
+ time_t m_time;
+#ifdef USE_EF_UT_TIME
+ iztimes z_utime;
+#endif
+
+#ifdef USE_EF_UT_TIME
+ if (G.extra_field &&
+#ifdef IZ_CHECK_TZ
+ G.tz_is_valid &&
+#endif
+ (ef_scan_for_izux(G.extra_field, G.lrec.extra_field_length, 0,
+ G.lrec.last_mod_dos_datetime, &z_utime, NULL)
+ & EB_UT_FL_MTIME))
+ {
+ TTrace((stderr, "close_outfile: Unix e.f. modif. time = %ld\n",
+ z_utime.mtime));
+ m_time = z_utime.mtime;
+ } else
+#endif /* USE_EF_UT_TIME */
+ m_time = dos_to_unix_time(G.lrec.last_mod_dos_datetime);
+
+ /* set the file's modification time */
+ SWI_OS_File_5(G.filename, NULL, &loadaddr, NULL, NULL, &attr);
+
+ uxtime2acornftime(&execaddr, &loadaddr, m_time);
+
+ loadaddr = (loadaddr & 0xfff000ffU) |
+ ((G.pInfo->file_attr&0xfff00000) >> 12);
+
+ attr=(attr&0xffffff00) | ((mode&0400) >> 8) | ((mode&0200) >> 6) |
+ ((mode&0004) << 2) | ((mode&0002) << 4);
+
+ SWI_OS_File_1(G.filename, loadaddr, execaddr, attr);
+ }
+
+} /* end function close_outfile() */
+
+
+
+
+#ifdef TIMESTAMP
+
+/***************************/
+/* Function stamp_file() */
+/***************************/
+
+int stamp_file(fname, modtime)
+ ZCONST char *fname;
+ time_t modtime;
+{
+ unsigned int loadaddr, execaddr;
+ int attr;
+
+ /* set the file's modification time */
+ if (SWI_OS_File_5((char *)fname, NULL, &loadaddr, NULL, NULL, &attr)
+ != NULL)
+ return -1;
+
+ if (uxtime2acornftime(&execaddr, &loadaddr, modtime) != 0)
+ return -1;
+
+ return (SWI_OS_File_1((char *)fname, loadaddr, execaddr, attr) == NULL) ?
+ 0 : -1;
+
+} /* end function stamp_file() */
+
+#endif /* TIMESTAMP */
+
+
+
+
+#ifndef SFX
+
+/************************/
+/* Function version() */
+/************************/
+
+void version(__G)
+ __GDEF
+{
+ sprintf((char *)slide, LoadFarString(CompiledWith),
+#ifdef __GNUC__
+ "gcc ", __VERSION__,
+#else
+# ifdef __CC_NORCROFT
+ "Norcroft ", "cc",
+# else
+ "cc", "",
+# endif
+#endif
+
+ "RISC OS",
+
+ " (Acorn Computers Ltd)",
+
+#ifdef __DATE__
+ " on ", __DATE__
+#else
+ "", ""
+#endif
+ );
+
+ (*G.message)((zvoid *)&G, slide, (ulg)strlen((char *)slide), 0);
+
+} /* end function version() */
+
+#endif /* !SFX */
Added: vendor/unzip/current/acorn/makefile
==============================================================================
--- (empty file)
+++ vendor/unzip/current/acorn/makefile Sun Jun 15 20:29:04 2008
@@ -0,0 +1,125 @@
+# Makefile for UnZip, UnZipSFX, ZipInfo and fUnZip (5.5 or later)
+# last modified: 01 Mar 2004
+
+# add -g to CC to debug
+# add -d to BIND to debug
+CC = cc
+BIND = link
+AS = $(CC) -c
+ASM = objasm
+SQUEEZE = squeeze -v
+E =
+
+# flags
+# CFLAGS flags for C compile
+# LFLAGS1 flags after output file spec, before obj file list
+# LFLAGS2 flags after obj file list (libraries, etc)
+#
+LIB =
+CBASE = -throwback -wn -DNO_STRNICMP
+CFLAGS = $(CBASE) -IC:,@.
+ASMFLAGS = -Throwback -Stamp -NoCache -CloseExec -quit
+LFLAGS1 =
+LFLAGS2 = $(LIB) C:o.Stubs
+
+# object file lists
+OBJS1 = unzip.o crc32.o crctab.o crypt.o envargs.o explode.o
+OBJS2 = extract.o fileio.o globals.o inflate.o list.o match.o
+OBJS3 = process.o ttyio.o unreduce.o unshrink.o zipinfo.o
+OBJS = $(OBJS1) $(OBJS2) $(OBJS3) riscos.o swiven.o acorn.o
+OBJF = funzip.o crc32.o cryptf.o globalsf.o inflatef.o ttyiof.o \
+ riscos.o swiven.o
+OBJX = unzipsfx.o crc32.o crctab.o crypt_.o extract_.o fileio_.o
globals.o \
+ inflate.o match.o process_.o ttyio.o acorn_.o swiven.o riscos_.o
+
+UNZIP_H = unzip.h unzpriv.h globals.h acorn/riscos.h acorn/swiven.h
+
+all: unzip funzip unzipsfx
+
+
+install: unzip funzip unzipsfx
+ $(SQUEEZE) unzip %.unzip
+ $(SQUEEZE) funzip %.funzip
+ $(SQUEEZE) unzipsfx unzipsfx
+ copy %.unzip %.zipinfo ~CVF
+
+# suffix rules
+.SUFFIXES: .o .c
+.c.o:
+ $(CC) $(CFLAGS) -c $<
+.s.o:
+ $(ASM) $(ASMFLAGS) -from @*.s -to @*.o
+
+# rules for unzip and funzip
+crc32.o: crc32.c $(UNZIP_H) zip.h
+crctab.o: crctab.c $(UNZIP_H) zip.h
+crypt.o: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
+envargs.o: envargs.c $(UNZIP_H)
+explode.o: explode.c $(UNZIP_H)
+extract.o: extract.c $(UNZIP_H) crypt.h
+fileio.o: fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
+funzip.o: funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
+globals.o: globals.c $(UNZIP_H)
+inflate.o: inflate.c inflate.h $(UNZIP_H)
+list.o: list.c $(UNZIP_H)
+match.o: match.c $(UNZIP_H)
+process.o: process.c $(UNZIP_H)
+ttyio.o: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
+unreduce.o: unreduce.c $(UNZIP_H)
+unshrink.o: unshrink.c $(UNZIP_H)
+unzip.o: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
+zipinfo.o: zipinfo.c $(UNZIP_H)
+
+crypt_.o: crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
+ $(CC) $(CFLAGS) -DSFX -c c.crypt -o o.crypt_
+extract_.o: extract.c $(UNZIP_H) crypt.h
+ $(CC) $(CFLAGS) -DSFX -c c.extract -o o.extract_
+fileio_.o: fileio.c $(UNZIP_H) crypt.h
+ $(CC) $(CFLAGS) -DSFX -c c.fileio -o o.fileio_
+globals_.o: globals.c $(UNZIP_H)
+ $(CC) $(CFLAGS) -DFUNZIP -c c.globals -o o.globals_
+inflate_.o: inflate.c inflate.h $(UNZIP_H) crypt.h
+ $(CC) $(CFLAGS) -DFUNZIP -c c.inflate -o o.inflate_
+process_.o: process.c $(UNZIP_H)
+ $(CC) $(CFLAGS) -DSFX -c c.process -o o.process_
+ttyio_.o: ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
+ $(CC) $(CFLAGS) -DFUNZIP -c c.ttyio -o o.ttyio_
+
+unzipsfx.o: unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
+ $(CC) $(CFLAGS) -DSFX -c c.unzip -o o.unzipsfx
+
+o.cryptf: c.crypt $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -DFUNZIP -c c.crypt -o o.cryptf
+o.globalsf: c.globals $(UNZIP_H)
+ $(CC) $(CFLAGS) -DFUNZIP -c c.globals -o o.globalsf
+o.inflatef: c.inflate h.inflate $(UNZIP_H) h.crypt
+ $(CC) $(CFLAGS) -DFUNZIP -c c.inflate -o o.inflatef
+o.ttyiof: c.ttyio $(UNZIP_H) h.zip h.crypt h.ttyio
+ $(CC) $(CFLAGS) -DFUNZIP -c c.ttyio -o o.ttyiof
+
+acorn.o: acorn/acorn.c $(UNZIP_H)
+ $(CC) $(CFLAGS) -c acorn/acorn.c
+acorn_.o: acorn/acorn.c $(UNZIP_H)
+ $(CC) $(CFLAGS) -c -DSFX -DSFX_EXDIR -o acorn_.o acorn/acorn.c
+
+riscos.o: acorn/riscos.c $(UNZIP_H)
+ $(CC) $(CFLAGS) -c acorn/riscos.c
+riscos_.o: acorn/riscos.c $(UNZIP_H)
+ $(CC) $(CFLAGS) -c -DSFX -DSFX_EXDIR -o riscos_.o acorn/riscos.c
+
+swiven.o: acorn/swiven.s
+ $(ASM) $(ASMFLAGS) -from acorn.s.swiven -to o.swiven
+
+unzip: $(OBJS)
+ $(BIND) -o unzip$(E) $(LFLAGS1) $(OBJS) $(LFLAGS2)
+funzip: $(OBJF)
+ $(BIND) -o funzip$(E) $(LFLAGS1) $(OBJF) $(LFLAGS2)
+unzipsfx: $(OBJX)
+ $(BIND) -o unzipsfx$(E) $(LFLAGS1) $(OBJX) $(LFLAGS2)
+
+clean: ;remove unzip; remove funzip;
+ remove zipinfo; remove unzipsfx;
+ create o.!fake! 0
+ wipe o.* ~cf
+
+# end of Makefile
Added: vendor/unzip/current/acorn/riscos.c
==============================================================================
--- (empty file)
+++ vendor/unzip/current/acorn/riscos.c Sun Jun 15 20:29:04 2008
@@ -0,0 +1,364 @@
+/*
+ Copyright (c) 1990-2002 Info-ZIP. All rights reserved.
+
+ See the accompanying file LICENSE, version 2000-Apr-09 or later
+ (the contents of which are also included in unzip.h) for terms of use.
+ If, for some reason, all these files are missing, the Info-ZIP license
+ also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
+*/
+/* riscos.c */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* #define NO_UNZIPH_STUFF */
+#define UNZIP_INTERNAL
+#include "unzip.h"
+#include "riscos.h"
+
+#define MAXEXT 16
+
+char *exts2swap = NULL; /* Extensions to swap (actually, directory
names) */
+
+int stat(char *filename,struct stat *res)
+{
+ int attr; /* object attributes */
+ unsigned int load; /* load address */
+ unsigned int exec; /* exec address */
+ int type; /* type: 0 not found, 1 file, 2 dir, 3 image */
+
+ if (!res)
+ return -1;
+
+ if (SWI_OS_File_5(filename,&type,&load,&exec,(int *)&res->st_size,&attr)!=NULL)
+ return -1;
+
+ if (type==0)
+ return -1;
+
+ res->st_dev=0;
+ res->st_ino=0;
+ res->st_nlink=0;
+ res->st_uid=1;
+ res->st_gid=1;
+ res->st_rdev=0;
+ res->st_blksize=1024;
+
+ res->st_mode = ((attr & 0001) << 8) | ((attr & 0002) << 6) |
+ ((attr & 0020) >> 2) | ((attr & 0040) >> 4);
+
+ switch (type) {
+ case 1: /* File */
+ res->st_mode |= S_IFREG;
+ break;
+ case 2: /* Directory */
+ res->st_mode |= S_IFDIR | 0700;
+ break;
+ case 3: /* Image file */
+ if (uO.scanimage)
+ res->st_mode |= S_IFDIR | 0700;
+ else
+ res->st_mode |= S_IFREG;
+ break;
+ }
+
+ if ((((unsigned int) load) >> 20) == 0xfff) { /* date stamped
file */
+ register unsigned int t1, t2, tc;
+
+ t1 = (unsigned int) (exec);
+ t2 = (unsigned int) (load & 0xff);
+
+ tc = 0x6e996a00U;
+ if (t1 < tc)
+ t2--;
+ t1 -= tc;
+ t2 -= 0x33; /* 00:00:00 Jan. 1 1970 = 0x336e996a00 */
+
+ t1 = (t1 / 100) + (t2 * 42949673U); /* 0x100000000 / 100 =
42949672.96 */
+ t1 -= (t2 / 25); /* compensate for .04 error */
+
+ res->st_atime = res->st_mtime = res->st_ctime = t1;
+ }
+ else
+ res->st_atime = res->st_mtime = res->st_ctime = 0;
+
+ return 0;
+}
+
+#ifndef SFX
+
+DIR *opendir(char *dirname)
+{
+ DIR *thisdir;
+ int type;
+ int attr;
+ os_error *er;
+
+ thisdir=(DIR *)malloc(sizeof(DIR));
+ if (thisdir==NULL)
+ return NULL;
+
+ thisdir->dirname=(char *)malloc(strlen(dirname)+1);
+ if (thisdir->dirname==NULL) {
+ free(thisdir);
+ return NULL;
+ }
+
+ strcpy(thisdir->dirname,dirname);
+ if (thisdir->dirname[s
==============================================================================
Diff truncated at 200k characters