.›~UNZ532X-VMS-VAX-VAXC-OBJ.BCKUNZ532X-VMS-VAX-VAXC-OBJ.BCK?BACKUP [...]*.* [-]UNZ532X-VMS-VAX-VAXC-OBJ.BCK/SAVE/LOG/DELETE SPIELER U/pG֛V6.1 _LINAC::  _$2$DUC0: V6.1 ~  4*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]00BINARY.VMS;1+,50. /U 4M -580@123KPWO 563ɛ73ɛ89GUHJAFirst information about the binary distribution of VMS UnZip 5.32A-----------------------------------------------------------------+This archive comes in different variations:, "unz532x-vms--{obj|exe}.exe", and& "unz532x-vms--obj.bck",G where is "axp", "vax-decc", or "vax-vaxc", depending on0 the environment used for creating the binaries.> ...-obj.exe denotes object library distributions that require" a link step on the local machine.E ...-exe.exe denotes "ready-to-run" executable distributions, that doI not require additional work. The caveat of these executable distributionG is that they do not run on VMS versions that are older than the systemE used for building the executables (typical error message: "shareable library mismatch").E ...-obj.bck are uncompressed VMS backup saveset distributions of theE object libraries. They are much larger than the self-extracting ZipE archives and are only supplied for people with (old) versions of VMSG where the supplied SFX archives do not work. Therefore, if you alreadyF have an old version of UnZip for VMS (5.0p1, better: 5.2), the betterF choice is to fetch the Zip SFX archive and extract it manually, using the older VMS UnZip program.E Note that backup savesets are 32256-bytes-fixed-length-record files;F when tranfered via binary FTP, the resulting file's record format isI usually 512-bytes-fixed-length. Before extracting them with BACKUP, theH record size of the saveset has to be restored to 32256 bytes (best doneI with the public domain "FILE" utility, available from DECUS; or found onF ftp.wku.edu.). The contents of these saveset are identically to the$ corresponding ...-obj.exe archives.:Contents of the "vms" executables self extracting archivesfor UnZip 5.32:%a) common files (documentation etc.): 00binary.vms this fileF readme.vms general VMS info about using UnZip and zipfiles9 readme what UnZip is; general information9 copying copyrights and distribution policy< where pointer to Zip/UnZip support archivesF makesfx.com command file to create self-extracting archives? unzip.doc UnZip manual page, human-readable formatB unzipsfx.doc UnZipSFX manual page, human-readable formatA zipinfo.doc ZipInfo manual page, human-readable format< 3rdparty.bug known bugs in PK[UN]ZIP, WinZip, etc.G unzip.hlp UnZip help module, for default command interfaceF unzip_cli.hlp UnZip help module, for VMSCLI command interface7 unzipsfx.hlp UnZipSFX pre-formatted help page b) object library distributions:= link_unz.com command procedure for the linking step@ vms/unzip.opt auxiliary files required for linking step vms/unzipsfx.opt ...J unzip._olb object libraries for UnZip and UnZipSFX< unzipsfx._olb (both command interfaces)L unzipcli._olb additional object libraries for UnZip andH unzsfxcli._olb UnZipSFX, VMSCLI (DCL like) interfacec) executable distributions:B unzip.exe UnZip executable, default command interfaceD unzipsfx.exe UnZipSFX executable, default command interaceA unzip_cli.exe UnZip executable, VMSCLI command interfaceG (To save space, unzipsfx_cli.exe has been omitted from the executableC distributions. The command interface of the SFX stubs is of minorF importance, anyway, since it cannot be used without first defining aE "foreign command" to run the SFX archive. In most cases, it is muchB easier to use "$run .exe" at the command prompt.)H The binary files "*.<...>_olb" and "*.exe" have been stored in the ZipI archives with VMS attributes saved! If you extract them using a non-VMS, port of UnZip, you may get unusable files.DIf you decided to fetch the object library distribution, you have toFlink the executables on your local site. This requires runtime supportCfor the C runtime library to be installed, which may not be present*on older VAX VMS systems (prior to VMS 6).LTo create the executables, just invoke the "link_unz.com" command procedure.MThis will generate all executables (both unzip with UNIX-style command syntaxBand with VMSCLI command interface), but note that the executable's#extension is "._exe"!GIn case your system is a VAX and your current working directory carriesFboth the DEC C and the VAX C object distributions, you have to specifyDeither "VAXC" or "DECC" to tell link_unz.com which binaries you want to build.HAdditionally, link_unz.com defines foreign commands for the newly linked;executables, so you can test them without any further work.BIn order to use the default (UNIX-like) command interface, you can8proceed straight ahead after unpacking the distribution.EIf you rather prefer to use the VMSCLI interface, you have to specifyIthe option "VMSCLI" (or just "CLI") to the command starting link_unz.com.EThe executables (object libraries) in this archive have been compiled#with the following options enabled: * [decription support])The environment used for compilation was:7a) On Alpha AXP : OpenVMS(AXP) 6.2; DEC C V 5.6-0033b1) On VAX : OpenVMS(VAX) 6.1; DEC C V 4.03b2) alternatively VAX C V 3.2One final note:LThe binary files of the distribution have been archived with "saving all VMSLattributes" enabled. Please do not repack the binary part of the archives on5a non-VMS system, to prevent corruption of the files."23 October 1997, Christian Spieler4*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]3RDPARTY.BUG;1+,50. /U 4O `-580@123KPWO 56xL7xL89GUHJ&Known, current PKZIP bugs/limitations:%-------------------------------------M - PKUNZIP 2.04g is reported to corrupt some files when compressing them withL the -ex option; when tested, the files fail the CRC check, and comparisonK with the original file shows bogus data (6K in one case) embedded in theF middle. PKWARE apparently characterized this as a "known problem."J - PKUNZIP 2.04g considers volume labels valid only if originated on a FATL file system, but other OSes and file systems (e.g., Amiga and OS/2 HPFS)  support volume labels, too.H - PKUNZIP 2.04g can restore volume labels created by Zip 2.x but not by% PKZIP 2.04g (OS/2 DOS box only??).L - PKUNZIP 2.04g gives an error message for stored directory entries createdM under other OSes (although it creates the directory anyway), and PKZIP -vtK does not report the directory attribute bit as being set, even if it is.L - PKZIP 2.04g mangles unknown extra fields (especially OS/2 extended attri-N butes) when adding new files to an existing zipfile [example: Walnut Creek4 Hobbes March 1995 CD-ROM, FILE_ID.DIZ additions].N - PKUNZIP 2.04g is unable to detect or deal with prepended junk in a zipfile,1 reporting CRC errors in valid compressed data.O - PKUNZIP 2.04g (registered version) incorrectly updates/freshens the AV extraO field in authenticated archives. The resultant extra block length and total' extra field length are inconsistent.L - [Windows version 2.01] Win95 long filenames (VFAT) are stored OK, but the4 file system is always listed as ordinary DOS FAT.I - [Windows version 2.50] NT long filenames (NTFS) are stored OK, but the4 file system is always listed as ordinary DOS FAT.K - PKZIP 2.04 for DOS encrypts using the OEM code page for 8-bit passwords,I while PKZIP 2.50 for Windows uses Latin-1 (ISO 8859-1). This means anN archive encrypted with an 8-bit password with one of the two PKZIP versions. cannot be decrypted with the other version.M - PKUNZIP 2.04g is reported to have problems with archives created on and/or. copied from Iomega ZIP drives (irony, eh?).'Known, current WinZip bugs/limitations:&--------------------------------------H - [16-bit version 6.1a] NT short filenames (FAT) are stored OK, but the( file system is always listed as NTFS.I - WinZip doesn't allow 8-bit passwords, which means it cannot decrypt anG archive created with an 8-bit password (by PKZIP or Info-ZIP's Zip).Possibly current PKZIP bugs:---------------------------L - PKZIP (2.04g?) can silently ignore read errors on network drives, storingJ the correct CRC and compressed length but an incorrect and inconsistent uncompressed length.H - PKZIP (2.04g?), when deleting files from within a zipfile on a NovellG drive, sometimes only zeros out the data while failing to shrink the zipfile.Other limitations:-----------------K - PKZIP 1.x and 2.x encryption has been cracked (known-plaintext approach;1 see http://www.cryptography.com/ for details).;[many other bugs in PKZIP 1.0, 1.1, 1.93a, 2.04c and 2.04e]0*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]COPYING.;1+,5:./U 4N-580@123KPWO56 a7 a89GUHJ.J__________________________________________________________________________G This is the Info-ZIP file COPYING (for UnZip), last updated 5 Oct 97.J__________________________________________________________________________C There are currently six explicit copyrights on portions of UnZipG code (at least, of which Info-ZIP is aware): the original Sam SmithE copyright on unzip 2.0, upon which Info-ZIP's UnZip 3.0 was based;H Igor Mandrichenko's copyright on his routines in vms.c; Greg Roelofs'I copyright on zipinfo.c and the new version of unshrink.c; Mike White'sB copyright on the Windows DLL code (windll/*); Steve P. Miller'sF copyright on the Pocket UnZip GUI (wince/*); and Norbert Pueschel'sE copyright on the Amiga time.lib code. In addition, Mark Adler hasF placed inflate.h, inflate.c, explode.c and funzip.c into the publicH domain; i.e., these files may be used without any restrictions beyondF those of simple courtesy (credit where it's due). All of these areH discussed immediately below. The remaining code is covered by an im-G plicit copyright under US law. Frequently Asked Questions regardingC (re)distribution of Zip and UnZip are near the end of this file.B There are no known patents on any of the code in UnZip. UnisysG claims a patent on LZW encoding and on LZW decoding _in an apparatusI that performs LZW encoding_, but the patent appears to exempt a stand-I alone decoder (as in UnZip's unshrink.c). Unisys has publicly claimedG otherwise, but the issue has never been tested in court. Since thisF point is unclear, unshrinking is not enabled by default. It is theF responsibility of the user to make his or her peace with Unisys andF its licensing requirements. (unshrink.c may be removed from future releases altogether.)J__________________________________________________________________________C The original unzip source code has been extensively modified andC almost entirely rewritten (changes include random zipfile accessE rather than sequential; replacement of unimplode() with explode();E replacement of old unshrink() with new (unrelated) unshrink(); re-B placement of output routines; addition of inflate(), wildcards,D filename-mapping, text translation, ...; etc.). As far as we canA tell, the only remaining code that is substantially similar toC Mr. Smith's is that in the file unreduce.c, which now by defaultC is NOT compiled. The following copyright applies to unreduce.c:; * Copyright 1989 Samuel H. Smith; All rights reserved *A * Do not distribute modified versions without my permission.H * Do not remove or alter this notice or any other copyright notice.K * If you use this in your own program you must distribute source code.6 * Do not use any of this in a commercial product.J Regarding the first stipulation, Mr. Smith was tracked down in southernI California some years back [Samuel H. Smith, The Tool Shop; as of mid-J May 1994, (213) 851-9969 (voice), (213) 887-2127(?) (subscription BBS), 71150.2731@compuserve.com]:F "He says that he thought that whoever contacted him understood thatF he has no objection to the Info-ZIP group's inclusion of his code.I His primary concern is that it remain freely distributable, he said."F Despite the fact that our "normal" code has been entirely rewrittenF and by default no longer contains any of Mr. Smith's code, Info-ZIPH remains indebted and grateful to him. We hope he finds our contribu-" tions as useful as we have his.F Note that the third and fourth stipulations still apply to any com-G pany that wishes to incorporate the unreduce code into its products;F if you wish to do so, you must contact Mr. Smith directly regarding licensing.D The following copyright applies to most of the VMS code in vms.c,0 distributed with UnZip version 4.2 and later:, * Copyright (c) 1992 Igor Mandrichenko.E * Permission is granted to any individual or institution to use,F * copy, or redistribute this software so long as all of the orig-B * inal files are included unmodified, that it is not sold for: * profit, and that this copyright notice is retained.D The following copyright applies to the new version of unshrink.c,0 distributed with UnZip version 5.2 and later:' * Copyright (c) 1994 Greg Roelofs.D * Permission is granted to any individual/institution/corporateD * entity to use, copy, redistribute or modify this software forE * any purpose whatsoever, subject to the conditions noted in theD * Frequently Asked Questions section below, plus one additionalF * condition: namely, that my name not be removed from the sourceD * code. (Other names may, of course, be added as modificationsD * are made.) Corporate legal staff (like at IBM :-) ) who haveE * problems understanding this can contact me through Zip-Bugs...F The following copyright applies to the Windows DLL code (windll/*),0 distributed with UnZip version 5.2 and later:% * Copyright (c) 1996 Mike White.E * Permission is granted to any individual or institution to use,I * copy, or redistribute this software so long as all of the originalH * files are included, that it is not sold for profit, and that this$ * copyright notice is retained.G The following copyright applies to the Windows CE GUI port, ``Pocket9 UnZip,'' distributed with UnZip version 5.3 and later:C * All the source files for Pocket UnZip, except for componentsF * written by the Info-ZIP group, are copyrighted 1997 by Steve P.D * Miller. The product "Pocket UnZip" itself is property of theF * author and cannot be altered in any way without written consent * from Steve P. Miller.M The following copyright applies to the Amiga time code (amiga/time_lib.c),1 distributed with UnZip version 5.32 and later:6 * This source is copyrighted by Norbert Pueschel,* * .B * From 'clockdaemon.readme' (available from Aminet, includingC * ftp://ftp.wustl.edu/pub/aminet/util/time/clockdaemon.lha):G * "The original SAS/C functions gmtime, localtime, mktime and timeI * do not work correctly. The supplied link library time.lib contains' * replacement functions for them."F * Permission is granted to the Info-ZIP group to redistribute theL * time.lib source. The use of time.lib functions in own, noncommericalJ * programs is permitted. It is only required to add the timezone.docH * to such a distribution. Using the time.lib library in commericalC * software (including shareware) is only permitted after prior" * consultation of the author.D The remaining code was written by many people associated with theF Info-ZIP group, with large contributions from (but not limited to):C Greg Roelofs (overall program logic, ZipInfo, unshrink, filenameE mapping/portability, etc.), Mark Adler (inflate, explode, funzip),E Kai Uwe Rommel (OS/2), John Bush and Paul Kienitz (Amiga), AntoineH Verheijen (Macintosh), Hunter Goatley (more VMS), Mike White (WindowsH DLLs), Christian Spieler (overall logic, optimization, VMS, etc.) andG others. See the file CONTRIBS in the source distribution for a muchD more complete list of contributors. As noted above, Mark Adler'sE inflate.[ch], explode.c and funzip.c are in the public domain, andD everything that isn't otherwise accounted for is implicitly copy-G righted by Info-ZIP. In other words, use it with our blessings, but# it's still our code. Thank you!J--------------------------------------------------------------------------? Frequently Asked Questions about distributing Zip and UnZip:@ Q. Can I distribute Zip and UnZip sources and/or executables?D A. You may redistribute the latest official distributions withoutB any modification, and without even asking us for permission.E (Note that an "executable distribution" includes documentation,_B even if it's in a separate zipfile; plain executables do NOTE count.) You can charge for the cost of the media (CDROM, disk-_B ettes, etc.), the compilation (e.g., of a software archive),B and a small copying fee. Distributed archives should followC the naming conventions used in the `WHERE' file. If you wanth; to distribute modified versions, please contact us atcA Zip-Bugs@lists.wku.edu first. You must not distribute betai4 versions without explicit permission to do so.H Q. Can I use the executables (or DLLs) of Zip and UnZip to distribute my software?B A. Yes, so long as it is clear that Zip and UnZip are not beingD sold, that the source code is freely available, and that thereE are no extra or hidden charges resulting from its use by or in-eC clusion with the commercial product. Here is an example of ae suitable notice:A NOTE: is packaged on this CD using Info-ZIP'smB compression utility. The installation program uses UnZipB to read zip files from the CD. Info-ZIP's software (Zip,A UnZip and related utilities) is free and can be obtaineda? as source code or executables from Internet/WWW sites, 6 including http://www.cdrom.com/pub/infozip/ .F If the distribution is being done with UnZipSFX instead of a DLLH or stand-alone copy of UnZip (i.e., as one or more self-extractingE archives), no notice is required as long as the normal UnZipSFX" banner has not been removed.A Q. Can I use the source code of Zip and UnZip in my commercialm application?F A. Yes, so long as you include in your product an acknowledgment; aH pointer to the original, free compression sources; and a statementI making it clear that there are no extra or hidden charges resultingcI from the use of our compression code in your product (see below foreK an example). The acknowledgment should appear in at least one piece nH of human-readable documentation (e.g., a README file or man page),G although additionally putting it in the executable(s) is OK, too.fK In other words, you are allowed to sell only your own work, not ours,rG and we'd like a little credit. (Note the additional restrictionsrI above on the code in unreduce.c, unshrink.c, vms.c, time_lib.c, andH everything in the wince and windll subdirectories.) Contact us atG Zip-Bugs@lists.wku.edu if you have special requirements. We also*J like to hear when our code is being used, but we don't require that.I incorporates compression code from the Info-ZIP group. I There are no extra charges or costs due to the use of this code,sG and the original compression sources are freely available fromiN http://www.cdrom.com/pub/infozip/ or ftp://ftp.cdrom.com/pub/infozip/ on the Internet.aH If you only need compression capability, not full zipfile support,G you might want to look at zlib instead; it has fewer restrictions F on commercial use. See http://www.cdrom.com/pub/infozip/zlib/ .J__________________________________________________________________________ain freely distributable, he said."F Despite the fact that our "normal" code has been entirely rewrittenF and by default no longer contains any of Mr. Smith's code, Info-ZIPH remains indebted and grateful to him.4*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]LINK_UNZ.COM;1+,7,./U 4O *-580123KPWO56L7L89GUHJ$ ! LINK_UNZ.COM$ !5$ ! Command procedure to (re)link the VMS versions of$ ! UnZip/ZipInfo and UnZipSFX$ !$$ ! last updated: 11 September 1997$ !$ ! Command args:9$ ! - select compiler environment: "VAXC", "DECC", "GNUC"<$ ! - select installation of CLI interface version of unzip:$ ! "VMSCLI" or "CLI";$ ! - force installation of UNIX interface version of unzip?$ ! (override LOCAL_UNZIP environment): "NOVMSCLI" or "NOCLI"$ !$ !$ on error then goto error$ on control_y then goto error$ OLD_VERIFY = f$verify(0)$!$ say := write sys$outputO$!##################### Read settings from environment ########################$!$ if f$type(LOCAL_UNZIP).eqs.""$ then$ local_unzip = ""0$ else ! Trim blanks and append comma if missing+$ local_unzip = f$edit(local_unzip, "TRIM")F$ if f$extract(f$length(local_unzip)-1, 1, local_unzip).nes."," then -! local_unzip = local_unzip + ","$ endifL$! Check for the presence of "VMSCLI" in local_unzip. If yes, we will defineG$! the foreign command for "unzip" to use the executable containing the$! CLI interface.*$ pos_cli = f$locate("VMSCLI",local_unzip))$ len_local_unzip = f$length(local_unzip)$ if pos_cli.ne.len_local_unzip$ then$ CLI_IS_DEFAULT = 1L$ ! Remove "VMSCLI" macro from local_unzip. The UnZip executable including7$ ! the CLI interface is now created unconditionally.8$ local_unzip = f$extract(0, pos_cli, local_unzip) + -A$ f$extract(pos_cli+7, len_local_unzip-(pos_cli+7), local_unzip)$ else$ CLI_IS_DEFAULT = 0$ endif$ delete/symbol/local pos_cli%$ delete/symbol/local len_local_unzipI$!##################### Customizing section #############################$!$ unzx_unx = "unzip"$ unzx_cli = "unzip_cli"$ unzsfx_unx = "unzipsfx"$ unzsfx_cli = "unzipsfx_cli"$!$ MAY_USE_DECC = 1$ MAY_USE_GNUC = 0$!@$! Process command line parameters requesting optional features: $ arg_cnt = 1 $ argloop:#$ current_arg_name = "P''arg_cnt'"1$ curr_arg = f$edit('current_arg_name',"UPCASE")-$ IF curr_arg .eqs. "" THEN GOTO argloop_out$ IF curr_arg .eqs. "VAXC"$ THEN MAY_USE_DECC = 0$ MAY_USE_GNUC = 0$ ENDIF$ IF curr_arg .eqs. "DECC"$ THEN MAY_USE_DECC = 1$ MAY_USE_GNUC = 0$ ENDIF$ IF curr_arg .eqs. "GNUC"$ THEN MAY_USE_DECC = 0$ MAY_USE_GNUC = 1$ ENDIF;$ IF (curr_arg .eqs. "VMSCLI") .or. (curr_arg .eqs. "CLI")$ THEN$ CLI_IS_DEFAULT = 1$ ENDIF?$ IF (curr_arg .eqs. "NOVMSCLI") .or. (curr_arg .eqs. "NOCLI")$ THEN$ CLI_IS_DEFAULT = 0$ ENDIF$ arg_cnt = arg_cnt + 1$ GOTO argloop$ argloop_out:$!$ if CLI_IS_DEFAULT$ then$ UNZEXEC = unzx_cli$ else$ UNZEXEC = unzx_unx$ endif$!I$!#######################################################################$!:$ ! Find out current disk, directory, compiler and options$ !$ my_name = f$env("procedure")$ workdir = f$env("default")E$ here = f$parse(workdir,,,"device") + f$parse(workdir,,,"directory")$$ axp = f$getsyi("HW_MODEL").ge.1024$ if axp$ then $ ! Alpha AXP$ ARCH_NAME == "Alpha"$ ARCH_PREF = "AXP_"$ HAVE_DECC_VAX = 0$ USE_DECC_VAX = 0:$ IF (f$search("SYS$DISK:[]UNZIP.''ARCH_PREF'OLB").eqs."")$ THEN7$ say "Cannot find any AXP object library for UnZip."E$ say " You must keep all binary files of the object distribution"&$ say " in the current directory !"$ goto error$ ENDIF$ if MAY_USE_GNUC:$ then say "GNU C has not yet been ported to OpenVMS AXP."/$ say "You must use DEC C to build UnZip."$ goto error$ endif$ ARCH_CC_P = ARCH_PREF $ opts = """$ say "Linking on AXP using DEC C"$ else$ ! VAX$ ARCH_NAME == "VAX"$ ARCH_PREF = "VAX_"3$ ! check which object libraries are present:$ HAVE_DECC_VAX = -< (f$search("SYS$DISK:[]UNZIP.''ARCH_PREF'DECC_OLB").nes."")$ HAVE_VAXC_VAX = -< (f$search("SYS$DISK:[]UNZIP.''ARCH_PREF'VAXC_OLB").nes."")$ HAVE_GNUC_VAX = -< (f$search("SYS$DISK:[]UNZIP.''ARCH_PREF'GNUC_OLB").nes."")I$ IF .not.HAVE_DECC_VAX .and. .not.HAVE_VAXC_VAX .and. .not.HAVE_GNUC_VAX$ THEN7$ say "Cannot find any VAX object library for UnZip."E$ say " You must keep all binary files of the object distribution"&$ say " in the current directory !"$ goto error$ ENDIF%$ IF HAVE_DECC_VAX .AND. MAY_USE_DECC$ THEN$! We use DECC:$ USE_DECC_VAX = 1#$ ARCH_CC_P = "''ARCH_PREF'DECC_" $ opts = ""$$ say "Linking on VAX using DEC C"$ ELSE$! We use VAXC (or GNU C):$ USE_DECC_VAX = 00$ opts = ",SYS$DISK:[.VMS]VAXCSHR.OPT/OPTIONS"A$ if HAVE_GNUC_VAX .and. (.not.HAVE_VAXC_VAX .or. MAY_USE_GNUC)$ then"$ ARCH_CC_P = "''ARCH_PREF'GNUC_"2$ opts = ",GNU_CC:[000000]GCCLIB.OLB/LIB ''opts'"#$ say "Linking on VAX using GNU C"$ else"$ ARCH_CC_P = "''ARCH_PREF'VAXC_"#$ say "Linking on VAX using VAX C" $ endif$ ENDIF$ endif$ LFLAGS = "/notrace"C$ if (opts .nes. "") .and. (f$search("[.vms]vaxcshr.opt") .eqs. "")$ then create [.vms]vaxcshr.opt#$ open/append tmp [.vms]vaxcshr.opt)$ write tmp "SYS$SHARE:VAXCRTL.EXE/SHARE" $ close tmp$ endif:$ tmp = f$verify(1) ! Turn echo on to see what's happening$ !.$ link'LFLAGS'/exe='unzx_unx'.'ARCH_CC_P'exe -) unzip.'ARCH_CC_P'olb;/incl=(unzip)/lib - 'opts', [.VMS]unzip.opt/opt$ !.$ link'LFLAGS'/exe='unzx_cli'.'ARCH_CC_P'exe -- unzipcli.'ARCH_CC_P'olb;/incl=(unzip)/lib, - unzip.'ARCH_CC_P'olb;/lib - 'opts', [.VMS]unzip.opt/opt$ !0$ link'LFLAGS'/exe='unzsfx_unx'.'ARCH_CC_P'exe -* unzipsfx.'ARCH_CC_P'olb;/lib/incl=unzip - 'opts', [.VMS]unzipsfx.opt/opt$ !0$ link'LFLAGS'/exe='unzsfx_cli'.'ARCH_CC_P'exe -+ unzsxcli.'ARCH_CC_P'olb;/lib/incl=unzip, - unzipsfx.'ARCH_CC_P'olb;/lib - 'opts', [.VMS]unzipsfx.opt/opt$ !M$ ! Next line: put similar lines (full pathname for unzip.'ARCH_CC_P'exe) inE$ ! login.com. Remember to include the leading "$" before disk name.$ !1$ unzip == "$''here'''UNZEXEC'.''ARCH_CC_P'exe"8$ zipinfo == "$''here'''UNZEXEC'.''ARCH_CC_P'exe ""-Z"""$ !$error:$ tmp = f$verify(OLD_VERIFY)$ exit3*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]MAKESFX.COM;1+,5(./U 4L-580@123KPWO56v,7v,89GUHJ$!J$! MAKESFX.COM: command-procedure to create self-extracting ZIP archives>$! usage: @MAKESFX foo (foo.zip -> foo.exe)$!$! Martin P.J. Zinser 940804$!$!L$! For this to work a symbol unzipsfx has to be defined which contains the K$! location of the unzip stub (e.g., unzipsfx:== device:[dir]unzipsfx.exe)$!J$! The zipfile given in p1 will be concatenated with unzipsfx and given aJ$! filename extension of .exe. The default file extension for p1 is .zip$!J$! Use at your own risk, there is no guarantee here. If it doesn't work,=$! blame me (m.zinser@gsi.de), not the people from Info-ZIP.$!$!$ inf = "''p1'"%$ usfx = f$parse("''unzipsfx'") - ";"K$ file = f$parse("''inf'",,,"DEVICE") + f$parse("''inf'",,,"DIRECTORY") + - f$parse("''inf'",,,"NAME") 8$ finf = "''file'" +f$parse("''inf'",".ZIP",,"TYPE") + - f$parse("''inf'",,,"VERSION")$!J$! [GRR 940810: what is the point of 'name'? example? commented out...]C$! $ name = f$extract(12,2,f$time()) + f$extract(15,2,f$time()) + -8$! f$extract(18,2,f$time()) + f$extract(21,1,f$time())$!$ copy 'usfx','finf' 'file'.exe$ exit/*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]README.;1+,53./U 4N-580@123KPWO56إ˛7إ˛89GUHJ{+~UNZ532X-VMS-VAX-VAXC-OBJ.BCK5358/[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]README.;1N EThis is the README file for the 3 November 1997 public release of theGInfo-ZIP group's portable UnZip zipfile-extraction program (and related utilities).Hunzip532.zip portable UnZip, version 5.32, source code distribution:unzip532.tar.Z same as above, but compress'd tar format6unzip532.tar.gz same as above, but gzip'd tar formatJ__________________________________________________________________________HBEFORE YOU ASK: UnZip, its companion utility Zip, and related utilitiesHand support files can be found in many places; read the file "WHERE" forGfurther details. To contact the authors with suggestions, bug reports,Gor fixes, continue reading this file (README) and, if this is part of aIsource distribution, the file "ZipPorts" in the proginfo directory. AlsoHin source distributions: read "BUGS" for a list of known bugs, non-bugsIand possible future bugs; INSTALL for instructions on how to build UnZip;Dand "Contents" for a commented listing of all the distributed files.J__________________________________________________________________________ GENERAL INFO ------------KUnZip is an extraction utility for archives compressed in .zip format (alsoHcalled "zipfiles"). Although highly compatible both with PKWARE's PKZIPIand PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip program, ourEprimary objectives have been portability and non-MSDOS functionality.IThis version of UnZip has been ported to a stupendous array of hardware--Kfrom micros to supercomputers--and operating systems: Unix (many flavors),KVMS, OS/2 (including DLL version), Windows NT and Windows 95 (including DLLHversion), Windows CE (GUI version), Windows 3.x (including DLL version),JMS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Macintosh (GUI version),MSMS/QDOS, MVS, VM/CMS, FlexOS, Tandem NSK, Human68k (mostly), AOS/VS (partly)Iand TOPS-20 (partly). UnZip features not found in PKUNZIP include sourceJcode; default extraction of directory trees (with a switch to defeat this,Krather than the reverse); system-specific extended file attributes; and, ofIcourse, the ability to run under most of your favorite operating systems.Plus, it's free. :-)IFor source distributions, see the main Contents file for a list of what'sGincluded, and read INSTALL for instructions on compiling (including OS-Jspecific comments). The individual operating systems' Contents files (forIexample, vms/Contents) may list important compilation info in addition toKexplaining what files are what, so be sure to read them. Some of the portsHhave their own, special README files, so be sure to look for those, too.KSee unzip.1 or unzip.doc for usage (or the corresponding UnZipSFX, ZipInfo,JfUnZip and ZipGrep docs). For VMS, unzip_def.rnh or unzip_cli.help may beEcompiled into unzip.hlp and installed as a normal VMS help entry; seevms/descrip.mms.CHANGES AND NEW FEATURES------------------------IThe 5.32 release adds two new ports and a fix for at least one relatively serious bug: - new FlexOS port - new Tandem NSK portC - new Visual BASIC support (compatibility with the Windows DLLs)B - new -T option (set zipfile timestamp) for virtually all portsL - fix for timestamps beyond 2038 (e.g., 2097; crashed under DOS/Win95/NT)D - fix for undetected "dangling" symbolic links (i.e., no pointee)M - fix for VMS indexed-file extraction problem (stored with Zip 2.0 or 2.1)& - further performance optimizationsKThe 5.31 release included nothing but small bug-fixes and typo corrections,4with the exception of some minor performance tweaks.JThe 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 testedJ - updated Windows DLL port, with WiZ GUI spun off to a separate packageL - full Universal Time (UTC or GMT) support for trans-timezone consistencyN - cross-platform support for 8-bit characters (ISO Latin-1, OEM code pages)/ - support for NT security descriptors (ACLs)B - support for overwriting OS/2 directory EAs if -o option given* - updated Solaris/SVR4 package facilityJWhat is (still!) not added is multi-part archive support (a.k.a. "disketteHspanning") and a unified and more powerful DLL interface. These are theJtwo highest priorities for the 6.x releases. Work on the former is almostKcertain to have commenced by the time you read this. This time  we mean it!You betcha. :-)KAlthough the DLLs are still basically a mess, the Windows DLLs (16- and 32-Lbit) now have some documentation and a small example application. Note thatKthey should now be compatible with C/C++, Visual BASIC and Delphi. Weirder1languages (FoxBase, etc.) are probably Right Out.NFinally, note that support for unshrinking has now been turned OFF by default,Kalthough the source code is still available (as with unreducing). This wasIdone 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------------------LInfo-ZIP's web site is at http://www.cdrom.com/pub/infozip/ and contains theImost up-to-date information about coming releases, links to binaries, andHcommon problems. (See http://www.cdrom.com/pub/infozip/FAQ.html for theLlatter.) Files may also be retrieved via ftp://ftp.cdrom.com/pub/infozip/ .;Thanks to Walnut Creek CD-ROM for hosting our primary site. DISTRIBUTION ------------LIf you have a question regarding redistribution of Info-ZIP software, eitherIas is, as packaging for a commercial product, or as an integral part of aLcommercial product, please read the Frequently Asked Questions (FAQ) sectionof the included COPYING file.KInsofar as C compilers are rare on some platforms and the authors only haveKdirect access to a subset of the supported systems, others may wish to pro-Lvide ready-to-run executables for new systems. In general there is no prob-Jlem with this; we require only that such distributions include this READMEIfile, the WHERE file, the COPYING file (contains copyright/redistributionGinformation), and the appropriate documentation files (unzip.doc and/orKunzip.1 for UnZip, etc.). If the local system provides a way to make self-Gextracting archives in which both the executables and text files can beMstored together, that's best (in particular, use UnZipSFX if at all possible,Heven if it's a few kilobytes bigger than the alternatives); otherwise weIsuggest a bare UnZip executable and a separate zipfile containing the re-Hmaining text and binary files. If another archiving method is in commonJuse on the target system (for example, Zoo or LHa), that may also be used.(BUGS AND NEW PORTS: CONTACTING INFO-ZIP(----------------------------------------FAll bug reports and patches (context diffs only, please!) should go toDZip-Bugs@lists.wku.edu, which is the e-mail address for the Info-ZIPGauthors. (Note that a few rare systems require the Zip-Bugs part to beEcapitalized as shown; most systems work OK with lowercase "zip-bugs,"Ghowever.) DO NOT MAIL US LARGE BINARIES--EVER. If you need to send usHa problem archive that happens to be large (> 20K), contact us first for instructions.E"Dumb questions" that aren't adequately answered in the documentationFshould also be directed to Zip-Bugs rather than to a global forum suchGas Usenet. (Kindly make certain that your question *isn't* an swered byGthe documentation, however--a great deal of effort has gone into makingit clear and complete.)HSuggestions for new features can be discussed on Info-ZIP@lists.wku.edu,Ia mailing list for Info-ZIP beta testers and interested parties; you needKto subscribe first, however (see below). We make no promises to act on allJsuggestions or even all patches, but if it is something that is manifestlyEuseful, sending the required patches to Zip-Bugs directly (as per theJinstructions in the ZipPorts file) is likely to produce a quicker responseKthan asking us to do it--the authors are always ridiculously short on time.rE(Please do NOT send patches or encoded zipfiles to the Info-ZIP list.sJPlease DO read the ZipPorts file before sending any large patch. It would-be difficult to over-emphasize this point...)bJIf you are considering a port, not only should you read the ZipPorts file,Hbut also please check in with Zip-Bugs BEFORE getting started, since theKcode is constantly being updated behind the scenes. (For example, VxWorks,rKVMOS and Netware ports were once claimed to be under construction, althoughsLwe have yet to see any up-to-date patches.) We will arrange to send you theLlatest sources. The alternative is the possibility that your hard work willJbe tucked away in a subdirectory and mostly ignored, or completely ignoredKif someone else has already done the port (and you'd be surprised how oftenithis has happened).eBETA TESTING: JOINING INFO-ZIPh-------------------------------_KIf you'd like to keep up to date with our UnZip (and companion Zip utility)NKdevelopment, join the ranks of beta testers, add your own thoughts and con-zGtributions, or simply lurk, send a two-line mail message containing thetIcommands HELP and LIST (on separate lines in the body of the message, notZLon the subject line) to mxserver@lists.wku.edu. You'll receive two messagesIlisting the various Info-ZIP mailing-list formats that are available (andfIalso various unrelated lists) and instructions on how to subscribe to onemIor more of them (courtesy of Hunter Goatley). As of 1997, subscribing to55the announcements list required a command of the formi( SUBSCRIBE Info-ZIP-announce "Joe Isuzu"JThe discussion list is called Info-ZIP; it can be set for either normal ordigest-style delivery.I-- Greg Roelofs (sometimes known as Cave Newt), principal UnZip developeru. guy, with inspiration from David Kirschbaumfault extraction of directory trees (with a switch to defeat this,2*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]README.VMS;1+,5-. /U 4N -580@123KPWO 562C 72C 89GUHJ4VMS README for UnZip 5.3 and later, 25 February 19974----------------------------------------------------LNotes about using UnZip and zipfiles under VMS (see INSTALL for instructionson compiling):? - Install UnZip as foreign symbol by adding this to login.com:' $ unzip == "$disk:[dir]unzip.exe"0 $ zipinfo == "$disk:[dir]unzip.exe ""-Z"""J where "disk" and "dir" are location of UnZip executable; the "$" beforeI the disk name is important. Some people, including the author, preferK a short alias such as "ii" instead of "zipinfo"; edit to taste. (All ofM the quotes around the -Z are necessary, but don't ask us to explain it...)I - Optionally install UnZipSFX for use with the MAKESFX.COM command file:+ $ unzipsfx :== disk:[dir]unzipsfx.exeJ Thereafter an archive "foo.zip" may be converted to "foo.exe" simply byL typing "@makesfx foo" (assuming MAKESFX.COM is in the current directory).4 Note that there is *no* leading "$" in this case.J - After proper installation, the default version of UnZip is invoked justK as in Unix or MS-DOS: "unzip -opts archive files". The hyphen ('-') isK the switch character, not the slash ('/') as in native VMS commands. AnI alternative is available if VMSCLI is defined during compilation; thisL version does provide a native VMS-style command interface (e.g., /ZIPINFOJ instead of -Z). Both versions accept the command "unzip -v", which canJ be used to check whether VMSCLI was defined or not; but an even simplerL method is to type "unzip" and look at the help screen. Note that optionsK placed in an environment variable (UNZIP_OPTS) must be of the short, hy-6 phenated form regardless of how UnZip was compiled.J - The VMS C runtime library translates all command-line text to lowercaseH unless it is quoted, making some options and/or filenames not work as intended. For example: unzip -V zipfile vms/README;* is translated to unzip -v zipfile vms/readme;*G which may not match the contents of the zipfile and definitely won'tE extract the file with its version number as intended. This can beF avoided by use of the -C option (/CASE_INSENSITIVE) or by enclosing! the uppercase stuff in quotes:" unzip "-V" zipfile "vms/README;*"G Note that quoting the whole line probably won't work, since it would8 be interpreted as a single argument by the C library.I - Wildcards that refer to files internal to the archive behave like UnixH wildcards, not VMS ones (assuming UnZip was not compiled with VMSWILDJ defined). This is both a matter of consistency (see above) and power--G full Unix regular expressions are supported, so that one can specifyH "all .c and .h files that start with a, b, c or d and do not have a 2L before the dot" as "[a-d]*[^2].[ch]". Of course, "*.[ch]" is a much moreH common wildcard specification, but the power is there if you need it.K Note that "*" matches zipfile directory separators ('/'), too. If UnZipL *was* compiled with VMSWILD defined (do "unzip -v" to check), the single-I character wildcard is "%" rather than "?", and character sets (ranges)? are delimited with () instead of [] (for example, "*.(ch)").J - Wildcards that refer to zipfiles (i.e., external VMS files) behave likeI normal VMS wildcards regardless of whether VMSWILD was defined or not.J Ranges are not supported. Thus "unzip *font-%.zip" is about as much as/ one can do for specifying wildcard zipfiles.L - Created files get whatever permissions were stored in the archive (mappedG to VMS and/or masked with your default permissions, depending on theJ originating operating system), but created directories additionally in-M herit the (possibly more restrictive) permissions of the parent directory.K And obviously things won't work if you don't have permission to write to the extraction directory.I - When transferring files, particularly via Kermit, pay attention to theH settings! In particular, zipfiles must be transferred in some binaryJ mode, which is NOT Kermit's default mode, and this mode must usually beL set on BOTH sides of the transfer (e.g., both VAX and PC). See the notes below for details.=From Info-ZIP Digest (Wed, 6 Nov 1991), Volume 91, Issue 290: Date: Tue, 5 Nov 91 15:31 CDT* From: Hugh Schmidt @ ****************************************************@ *** VMS ZIP and PKZIP compatibility using KERMIT ***@ ****************************************************H Many use Procomm's kermit to transfer zipped files between PC and VMSH VAX. The following VMS kermit settings make VMS Zip/UnZip compatible& with PC Zip/UnZip or PKZIP/PKUNZIP:K VMS kermit Procomm kermitN ------------------- --------------------N Uploading PC zipfile to VMS: set file type fixed set file type binaryN Downloading VMS zipfile to PC: set file type block set file type binaryH "Block I/O lets you bypass the VMS RMS record-processing capabilitiesH entirely", (Guide to VMS file applications, Section 8.5). The kermit guys must have known this!1*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]UNZIP.DOC;1+,5(.]/U 4A][2-580@123KPWO^563˛73˛89GUHJ$AUNZIP(1L) UNZIP(1L)NAMEA unzip - list, test and extract compressed files in a ZIP archiveSYNOPSISA unzip [-Z] [-cflptuvz[abjnoqsCLMVX$]] file[.zip]2 [file(s) ...] [-x xfile(s) ...] [-d exdir] DESCRIPTIONA unzip will list, test, or extract files from a ZIPA archive, commonly found on MS-DOS systems. The defaultA behavior (with no options) is to extract into the currentA directory (and subdirectories below it) all files from theA specified ZIP archive. A companion program, zip(1L), cre-A ates ZIP archives; both programs are compatible withA archives created by PKWARE's PKZIP and PKUNZIP for MS-DOS,A but in many cases the program options or default behaviors differ. ARGUMENTS file[.zip]A Path of the ZIP archive(s). If the file specifica-A tion is a wildcard, each matching file is processedA in an order determined by the operating system (orA file system). Only the filename can be a wildcard;A the path itself cannot. Wildcard expressions areA similar to Unix egrep(1) (regular) expressions and may contain:? * matches a sequence of 0 or more characters0 ? matches exactly 1 characterA [...] matches any single character found insideA the brackets; ranges are specified by aA beginning character, a hyphen, and an endingA character. If an exclamation point or aA caret (`!' or `^') follows the left bracket,A then the range of characters within theA brackets is complemented (that is, anythingA except the characters inside the brackets is) considered a match).A (Be sure to quote any character that might other-A wise be interpreted or modified by the operatingA system, particularly under Unix and VMS.) If noA matches are found, the specification is assumed toA be a literal filename; and if that also fails, theA suffix .zip is appended. Note that self-extractingA ZIP files are supported, as with any other ZIPA archive; just specify the .exe suffix (if any) explicitly.AInfo-ZIP 3 November 1997 (v5.32) 1AUNZIP(1L) UNZIP(1L) [file(s)]A An optional list of archive members to be pro-A cessed, separated by spaces. (VMS versions com-A piled with VMSCLI defined must delimit files withA commas instead. See -v in OPTIONS below.) RegularA expressions (wildcards) may be used to match multi-A ple members; see above. Again, be sure to quoteA expressions that would otherwise be expanded or/ modified by the operating system. [-x xfile(s)]A An optional list of archive members to be excludedA from processing. Since wildcard characters matchA directory separators (`/'), this option may be usedA to exclude any files that are in subdirectories.A For example, ``unzip foo *.[ch] -x */*'' wouldA extract all C source files in the main directory,A but none in any subdirectories. Without the -xA option, all C source files in all directories4 within the zipfile would be extracted. [-d exdir]A An optional directory to which to extract files.A By default, all files and subdirectories are recre-A ated in the current directory; the -d option allowsA extraction in an arbitrary directory (always assum-A ing one has permission to write to the directory).A This option need not appear at the end of the com-A mand line; it is also accepted before the zipfileA specification (with the normal options), immedi-A ately after the zipfile specification, or betweenA the file(s) and the -x option. The option andA directory may be concatenated without any whiteA space between them, but note that this may causeA normal shell behavior to be suppressed. In partic-A ular, ``-d ~'' (tilde) is expanded by Unix C shellsA into the name of the user's home directory, butA ``-d~'' is treated as a literal subdirectory ``~''' of the current directory.OPTIONSA Note that, in order to support obsolescent hardware,A unzip's usage screen is limited to 22 or 23 lines andA should therefore be considered only a reminder of theA basic unzip syntax rather than an exhaustive list of all4 possible flags. The exhaustive list follows:A -Z zipinfo(1L) mode. If the first option on the com-A mand line is -Z, the remaining options are taken toA be zipinfo(1L) options. See the appropriate manual6 page for a description of these options.A -A [OS/2, Unix DLL] print extended help for the DLL's* programming interface (API).AInfo-ZIP 3 November 1997 (v5.32) 2AUNZIP(1L) UNZIP(1L)A -c extract files to stdout/screen (``CRT''). ThisA option is similar to the -p option except that theA name of each file is printed as it is extracted,A the -a option is allowed, and ASCII-EBCDIC conver-A sion is automatically performed if appropriate.A This option is not listed in the unzip usage screen.A -f freshen existing files, i.e., extract only thoseA files that already exist on disk and that are newerA than the disk copies. By default unzip queriesA before overwriting, but the -o option may be usedA to suppress the queries. Note that under manyA operating systems, the TZ (timezone) environmentA variable must be set correctly in order for -f andA -u to work properly (under Unix the variable isA usually set automatically). The reasons for thisA are somewhat subtle but have to do with the differ-A ences between DOS-format file times (always localA time) and Unix-format times (always in GMT/UTC) andA the necessity to compare the two. A typical TZA value is ``PST8PDT'' (US Pacific time with auto-A matic adjustment for Daylight Savings Time or ``summer time'').A -l list archive files (short format). The names,A uncompressed file sizes and modification dates andA times of the specified files are printed, alongA with totals for all files specified. If UnZip wasA compiled with OS2_EAS defined, the -l option alsoA lists columns for the sizes of stored OS/2 extendedA attributes (EAs) and OS/2 access control listsA (ACLs). In addition, the zipfile comment and indi-A vidual file comments (if any) are displayed. If aA file was archived from a single-case file systemA (for example, the old MS-DOS FAT file system) andA the -L option was given, the filename is converted < to lowercase and is prefixed with a caret (^).A -p extract files to pipe (stdout). Nothing but thezA file data is sent to stdout, and the files areiA always extracted in binary format, just as they arez& stored (no conversions).A -t test archive files. This option extracts each A specified file in memory and compares the CRCtA (cyclic redundancy check, an enhanced checksum) offA the expanded file with the original file's stored  CRC value.A -T [most OSes] set the timestamp on the archive(s) toiA that of the newest file in each one. This corre-iA sponds to zip's -go option except that it can beeA used on wildcard zipfiles (e.g., ``unzip -T AInfo-ZIP 3 November 1997 (v5.32) 3dAUNZIP(1L)  UNZIP(1L)i+ \*.zip'') and is much faster. A -u update existing files and create new ones ifhA needed. This option performs the same function asiA the -f option, extracting (with query) files thataA are newer than those with the same name on disk,cA and in addition it extracts those files that do not A already exist on disk. See -f above for informa- 4 tion on setting the timezone properly.A -v be verbose or print diagnostic version info. ThisnA option has evolved and now behaves as both antA option and a modifier. As an option it has twobA purposes: when a zipfile is specified with nohA other options, -v lists archive files verbosely,aA adding to the basic -l info the compression method,cA compressed size, compression ratio and 32-bit CRC. A When no zipfile is specified (that is, the complete A command is simply ``unzip -v''), a diagnostic A screen is printed. In addition to the normal A header with release date and version, unzip lists A the home Info-ZIP ftp site and where to find a list A of other ftp and non-ftp sites; the target operat- A ing system for which it was compiled, as well as A (possibly) the hardware on which it was compiled, A the compiler and version used, and the compilation A date; any special compilation options that might A affect the program's operation (see also DECRYPTION A below); and any options stored in environment vari-aA ables that might do the same (see ENVIRONMENTVA OPTIONS below). As a modifier it works in conjunc-dA tion with other options (e.g., -t) to produce morewA verbose or debugging output; this is not yet fullys9 implemented but will be in future releases.s/ -z display only the archive comment. MODIFIERSiA -a convert text files. Ordinarily all files are A extracted exactly as they are stored (as ``binary'' A files). The -a option causes files identified by A zip as text files (those with the `t' label in zip- A info listings, rather than `b') to be automatically A extracted as such, converting line endings, end-of- A file characters and the character set itself as A necessary. (For example, Unix files use line feeds A (LFs) for end-of-line (EOL) and have no end-of-file A (EOF) marker; Macintoshes use carriage returns A (CRs) for EOLs; and most PC operating systems use A CR+LF for EOLs and control-Z for EOF. In addition, A IBM mainframes and the Michigan Terminal System use A EBCDIC rather than the more common ASCII character A set, and NT supports Unicode.) Note that zip's A identification of text files is by no means AInfo-ZIP 3 November 1997 (v5.32) 4 AUNZIP(1L) UNZIP(1L) A perfect; some ``text'' files may actually be binary A and vice versa. unzip therefore prints ``[text]'' A or ``[binary]'' as a visual check for each file it A extracts when using the -a option. The -aa option A forces all files to be extracted as text, regard- - less of the supposed file type.CA -b [non-VMS] treat all files as binary (no text con-,6 versions). This is a shortcut for ---a.A -b [VMS] auto-convert binary files (see -a above) toNA fixed-length, 512-byte record format. Doubling theeA option (-bb) forces all files to be extracted inn this format.A -B [Unix only, and only if compiled with UNIXBACKUPaA defined] save a backup copy of each overwrittenhA file with a tilde appended (e.g., the old copy ofhA ``foo'' is renamed to ``foo~''). This is similarmA to the default behavior of emacs(1) in many loca-  tions.A -C match filenames case-insensitively. unzip's phi- A losophy is ``you get what you ask for'' (this is A also responsible for the -L/-U change; see the rel-vA evant options below). Because some file systems A are fully case-sensitive (notably those under the A Unix operating system) and because both ZIP A archives and unzip itself are portable across plat- A forms, unzip's default behavior is to match both A wildcard and literal filenames case-sensitively. A That is, specifying ``makefile'' on the commandpA line will only match ``makefile'' in the archive,A not ``Makefile'' or ``MAKEFILE'' (and similarly forsA wildcard specifications). Since this does not cor-eA respond to the behavior of many other operat-eA ing/file systems (for example, OS/2 HPFS, whicheA preserves mixed case but is not sensitive to it),nA the -C option may be used to force all filenamenA matches to be case-insensitive. In the examplenA above, all three files would then match ``make-iA file'' (or ``make*'', or similar). The -C optioniA affects files in both the normal file list and ther) excluded-file list (xlist).fA -j junk paths. The archive's directory structure is A@&~UNZ532X-VMS-VAX-VAXC-OBJ.BCK5(581[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]UNZIP.DOC;1A]&z not recreated; all files are deposited in theeA extraction directory (by default, the current one). A -L convert to lowercase any filename originating on angA uppercase-only operating system or file system.-A (This was unzip's default behavior in releases A prior to 5.11; the new default behavior is identi- A cal to the old behavior with the -U option, which AInfo-ZIP 3 November 1997 (v5.32) 5 AUNZIP(1L) UNZIP(1L) A is now obsolete and will be removed in a future A release.) Depending on the archiver, files A archived under single-case file systems (VMS, old A MS-DOS FAT, etc.) may be stored as all-uppercase A names; this can be ugly or inconvenient when A extracting to a case-preserving file system such as A OS/2 HPFS or a case-sensitive one such as under A Unix. By default unzip lists and extracts suchrA filenames exactly as they're stored (exceptingeA truncation, conversion of unsupported characters,aA etc.); this option causes the names of all filesrA from certain systems to be converted to lowercase.oA -M pipe all output through an internal pager similardA to the Unixmore(1) command. At the end of ahA screenful of output, unzip pauses with aiA ``--More--'' prompt; the next screenful may besA viewed by pressing the Enter (Return) key or thetA space bar. unzip can be terminated by pressing thenA ``q'' key and, on some systems, the Enter/ReturndA key. Unlike Unix more(1), there is no forward- A searching or editing capability. Also, unzip A doesn't notice if long lines wrap at the edge of A the screen, effectively resulting in the printing A of two or more lines and the likelihood that sometA text will scroll off the top of the screen beforetA being viewed. On some systems the number of avail- A able lines on the screen is not detected, in whicht8 case unzip assumes the height is 24 lines.A -n never overwrite existing files. If a file alreadyeA exists, skip the extraction of that file withoutiA prompting. By default unzip queries before A extracting any file that already exists; the user.A may choose to overwrite only the current file,zA overwrite all files, skip extraction of the currenttA file, skip extraction of all existing files, orl& rename the current file.A -N [Amiga] extract file comments as Amiga filenotes. A File comments are created with the -c option of A zip(1L), or with the -N option of the Amiga port of : zip(1L), which stores filenotes as comments.A -o overwrite existing files without prompting. This A is a dangerous option, so use it with care. (It is A often used with -f, however, and is the only way to 2 overwrite directory EAs under OS/2.) -P passwordA use password to decrypt encrypted zipfile entries A (if any). THIS IS INSECURE! Many multi-user oper- A ating systems provide ways for any user to see the AInfo-ZIP 3 November 1997 (v5.32) 6 AUNZIP(1L) UNZIP(1L) A current command line of any other user; even onPA stand-alone systems there is always the threat ofiA over-the-shoulder peeking. Storing the plaintexteA password as part of a command line in an automatedmA script is even worse. Whenever possible, use the A non-echoing, interactive prompt to enter passwords.xA (And where security is truly important, use strongxA encryption such as Pretty Good Privacy instead ofhA the relatively weak encryption provided by standard ! zipfile utilities.)zA -q perform operations quietly (-qq = even quieter).lA Ordinarily unzip prints the names of the files it'sfA extracting or testing, the extraction methods, anyaA file or zipfile comments that may be stored in thedA archive, and possibly a summary when finished withlA each archive. The -q[q] options suppress then8 printing of some or all of these messages.A -s [OS/2, NT, MS-DOS] convert spaces in filenames to A underscores. Since all PC operating systems allowSA spaces in filenames, unzip by default extracts A filenames with spaces intact (e.g.,tA ``EA DATA. SF''). This can be awkward, however,nA since MS-DOS in particular does not gracefully sup- A port spaces in filenames. Conversion of spaces to A underscores can eliminate the awkwardness in somet cases.A -U (obsolete; to be removed in a future release) leave A filenames uppercase if created under MS-DOS, VMS, ! etc. See -L above.oA -V retain (VMS) file version numbers. VMS files canaA be stored with a version number, in the formateA file.ext;##. By default the ``;##'' version num-cA bers are stripped, but this option allows them to A be retained. (On file systems that limit filenames A to particularly short lengths, the version numbers A may be truncated or stripped regardless of this  option.)A -X [VMS, Unix, OS/2, NT] restore owner/protection infoA (UICs) under VMS, or user and group info (UID/GID)A under Unix, or access control lists (ACLs) underA certain network-enabled versions of OS/2 (WarpA Server with IBM LAN Server/Requester 3.0 to 5.0;A Warp Connect with IBM Peer 1.0), or security ACLsiA under Windows NT. In most cases this will require A special system privileges, and doubling the optionUA (-XX) under NT instructs unzip to use privilegeseA for extraction; but under Unix, for example, a useroA who belongs to several groups can restore files A owned by any of those groups, as long as the user AInfo-ZIP 3 November 1997 (v5.32) 7 AUNZIP(1L) UNZIP(1L) A IDs match his or her own. Note that ordinary fileoA attributes are always restored--this option applies A only to optional, extra ownership info available onnA some operating systems. [NT's access control listsiA do not appear to be especially compatible with A OS/2's, so no attempt is made at cross-platformOA portability of access privileges. It is not clearsA under what conditions this would ever be usefulr anyway.]A -$ [MS-DOS, OS/2, NT] restore the volume label if the A extraction medium is removable (e.g., a diskette). A Doubling the option (-$$) allows fixed media (hard A disks) to be labelled as well. By default, volume ! labels are ignored.ENVIRONMENT OPTIONStA unzip's default behavior may be modified via optionscA placed in an environment variable. This can be done withiA any option, but it is probably most useful with the -a,rA -L, -C, -q, -o, or -n modifiers: make unzip auto-convertcA text files by default, make it convert filenames from A uppercase systems to lowercase, make it match names case- A insensitively, make it quieter, or make it always over-tA write or never overwrite files as it extracts them. For A example, to make unzip act as quietly as possible, only A reporting errors, one would use one of the following com- mands: 7 UNZIP=-qq; export UNZIP Unix Bourne shell.2 setenv UNZIP -qq Unix C shell4 set UNZIP=-qq OS/2 or MS-DOS@ define UNZIP_OPTS "-qq" VMS (quotes for lowercase)A Environment options are, in effect, considered to be just A like any other command-line options, except that they areuA effectively the first options on the command line. To A override an environment option, one may use the ``minussA operator'' to remove it. For instance, to override one ofe< the quiet-flags in the example above, use the command+ unzip --q[other options] zipfilecA The first hyphen is the normal switch character, and the A second is a minus sign, acting on the q option. Thus theoA effect here is to cancel one quantum of quietness. To)A cancel both quiet flags, two (or more) minuses may bep used: unzip -t--q zipfile unzip ---qt zipfileA (the two are equivalent). This may seem awkward or con-uA fusing, but it is reasonably intuitive: just ignore theeAInfo-ZIP 3 November 1997 (v5.32) 8hAUNZIP(1L) UNZIP(1L)iA first hyphen and go from there. It is also consistentl) with the behavior of Unix nice(1). A As suggested by the examples above, the default variabletA names are UNZIP_OPTS for VMS (where the symbol used tolA install unzip as a foreign command would otherwise be con-oA fused with the environment variable), and UNZIP for all A other operating systems. For compatibility with zip(1L), A UNZIPOPT is also accepted (don't ask). If both UNZIP andsA UNZIPOPT are defined, however, UNZIP takes precedence. A unzip's diagnostic option (-v with no zipfile name) can beoA used to check the values of all four possible unzip andt% zipinfo environment variables. A The timezone variable (TZ) should be set according to the A local timezone in order for the -f and -u to operate cor- A rectly. See the description of -f above for details. A This variable may also be necessary in order for times- A tamps on extracted files to be set correctly. Under Win-eA dows 95/NT unzip should know the correct timezone even iftA TZ is unset, assuming the timezone is correctly set in thep Control Panel.o DECRYPTIONA Encrypted archives are fully supported by Info-ZIP soft-vA ware, but due to United States export restrictions, thesA encryption and decryption sources are not packaged withfA the regular unzip and zip distributions. Since the cryptvA sources were written by Europeans, however, they are A freely available at sites throughout the world; see the A file ``WHERE'' in any Info-ZIP source or binary distribu- 9 tion for locations both inside and outside the US.A Because of the separate distribution, not all compiledA versions of unzip support decryption. To check a versionA for crypt support, either attempt to test or extract anPA encrypted archive, or else check unzip's diagnostic screeniA (see the -v option above) for ``[decryption]'' as one ofe' the special compilation options.mA As noted above, the -P option may be used to supply aeA password on the command line, but at a cost in security.oA The preferred decryption method is simply to extract nor-lA mally; if a zipfile member is encrypted, unzip will promptoA for the password without echoing what is typed. unzipiA continues to use the same password as long as it appears A to be valid, by testing a 12-byte header on each file. A The correct password will always check out against the A header, but there is a 1-in-256 chance that an incorrect A password will as well. (This is a security feature of the A PKWARE zipfile format; it helps prevent brute-force A attacks that might otherwise gain a large speed advantage A by testing only the header.) In the case that an incor- A rect password is given but it passes the header test AInfo-ZIP 3 November 1997 (v5.32) 9 AUNZIP(1L) UNZIP(1L)iA anyway, either an incorrect CRC will be generated for theAA extracted data or else unzip will fail during the extrac-cA tion because the ``decrypted'' bytes do not constitute at$ valid compressed data stream.A If the first password fails the header check on some file, A unzip will prompt for another password, and so on untilmA all files are extracted. If a password is not known,eA entering a null password (that is, just a carriage returnoA or ``Enter'') is taken as a signal to skip all furtheraA prompting. Only unencrypted files in the archive(s) willaA thereafter be extracted. (In fact, that's not quite true;mA older versions of zip(1L) and zipcloak(1L) allowed nulltA passwords, so unzip checks each encrypted file to see ifeA the null password works. This may result in ``false posi-r6 tives'' and extraction errors, as noted above.)A Archives encrypted with 8-bit passwords (for example,SA passwords with accented European characters) may not beVA portable across systems and/or other archivers. This A problem stems from the use of multiple encoding methodsoA for such characters, including Latin-1 (ISO 8859-1) and A OEM code page 850. DOS PKZIP 2.04g uses the OEM codewA page; Windows PKZIP 2.50 uses Latin-1 (and is thereforesA incompatible with DOS PKZIP); Info-ZIP uses the OEM codemA page on DOS, OS/2 and Win3.x ports but Latin-1 everywhere A else; and Nico Mak's WinZip 6.x does not allow 8-bit pass-nA words at all. UnZip 5.3 attempts to use the default char- A acter set first (e.g., Latin-1), followed by the alternateoA one (e.g., OEM code page) to test passwords. On EBCDICvA systems, if both of these fail, EBCDIC encoding will be A tested as a last resort. (Since there are no knowntA archivers that encrypt using EBCDIC encoding, EBCDIC istA not tested on non-EBCDIC systems.) ISO character encod- 1 ings other than Latin-1 are not supported. EXAMPLESA To use unzip to extract all members of the archive let- A ters.zip into the current directory and subdirectories2: below it, creating any subdirectories as necessary: unzip lettersA To extract all members of letters.zip into the currents directory only: unzip -j letters A To test letters.zip, printing only a summary message indi- / cating whether the archive is OK or not:  unzip -tq lettersA To test all zipfiles in the current directory, printing)AInfo-ZIP 3 November 1997 (v5.32) 10aAUNZIP(1L) UNZIP(1L)o only the summaries: unzip -tq \*.zipoA (The backslash before the asterisk is only required if thetA shell expands wildcards, as in Unix; double quotes couldnA have been used instead, as in the source examplesaA below.) To extract to standard output all members of let- A ters.zip whose names end in .tex, auto-converting to the A local end-of-line convention and piping the output intor more(1):x* unzip -ca letters \*.tex | moreA To extract the binary file paper1.dvi to standard outputo) and pipe it to a printing program: / unzip -p articles paper1.dvi | dvips A To extract all FORTRAN and C source files--*.f, *.c, *.h,e- and Makefile--into the /tmp directory:o6 unzip source.zip "*.[fch]" Makefile -d /tmpA (the double quotes are necessary only in Unix and only ifdA globbing is turned on). To extract all FORTRAN and CtA source files, regardless of case (e.g., both *.c and *.C,o8 and any makefile, Makefile, MAKEFILE or similar):9 unzip -C source.zip "*.[fch]" makefile -d /tmpFA To extract any such files but convert any uppercase MS-DOSlA or VMS names to lowercase and convert the line-endings offA all of the files to the local standard (without respect tod2 any files that might be marked ``binary''):< unzip -aaCL source.zip "*.[fch]" makefile -d /tmpA To extract only newer versions of the files already in the(A current directory, without querying (NOTE: be careful ofpA unzipping in one timezone a zipfile created ineA another--ZIP archives other than those created by Zip 2.1rA or later contain no timezone information, and a ``newer''v= file from an eastern timezone may, in fact, be older):  unzip -fo sourcesA To extract newer versions of the files already in the cur-sA rent directory and to create any files not already there ) (same caveat as previous example):d unzip -uo sourcesA To display a diagnostic screen showing which unzip anduAInfo-ZIP 3 November 1997 (v5.32) 11 AUNZIP(1L) UNZIP(1L)tA zipinfo options are stored in environment variables,sA whether decryption support was compiled in, the compiler + with which unzip was compiled, etc.: unzip -viA In the last five examples, assume that UNZIP or UNZIP_OPTSh3 is set to -q. To do a singly quiet listing:n unzip -l file.zip$ To do a doubly quiet listing: unzip -ql file.ziplA (Note that the ``.zip'' is generally not necessary.) Toc do a standard listing:- unzip --ql file.zip orl unzip -l-q file.zip ors@ unzip -l--q file.zip (extra minuses don't hurt)TIPSA The current maintainer, being a lazy sort, finds it very A useful to define a pair of aliases: tt for ``unzip -tq'' A and ii for ``unzip -Z'' (or ``zipinfo''). One may then A simply type ``tt zipfile'' to test an archive, somethingSA that is worth making a habit of doing. With luck unzipiA will report ``No errors detected in compressed data ofpA zipfile.zip,'' after which one may breathe a sigh ofb relief.A The maintainer also finds it useful to set the UNZIP envi-wA ronment variable to ``-aL'' and is tempted to add ``-C''b7 as well. His ZIPINFO variable is set to ``-z''.n DIAGNOSTICSSA The exit status (or error level) approximates the exitiA codes defined by PKWARE and takes on the following values,s except under VMS:< 0 normal; no errors or warnings detected.A 1 one or more warning errors were encountered,vA but processing completed successfully any-lA way. This includes zipfiles where one or A more files was skipped due to unsupportedaA compression method or encryption with ans& unknown password.A 2 a generic error in the zipfile format was A detected. Processing may have completedsAInfo-ZIP 3 November 1997 (v5.32) 12lAUNZIP(1L) UNZIP(1L)pA successfully anyway; some broken zipfilestA created by other archivers have simple work-a arounds.aA 3 a severe error in the zipfile format wasrA detected. Processing probably failed imme-  diately. A 4 unzip was unable to allocate memory for oneiA or more buffers during program initializa-  tion.A 5 unzip was unable to allocate memory or A unable to obtain a tty to read the decryp-b& tion password(s).A 6 unzip was unable to allocate memory duringe+ decompression to disk.tA 7 unzip was unable to allocate memory duringd- in-memory decompression.u) 8 [currently not used] ; 9 the specified zipfiles were not found. A 10 invalid options were specified on the com-a mand line.'2 11 no matching files were found.A 50 the disk is (or was) full during extraction. A 51 the end of the ZIP archive was encounteredo! prematurely.cA 80 the user aborted unzip prematurely with con-t( trol-C (or similar)A 81 testing or extraction of one or more filestA failed due to unsupported compression meth- 3 ods or unsupported decryption. A 82 no files were found due to bad decryptionoA password(s). (If even one file is success-mA fully processed, however, the exit status isr 1.)A VMS interprets standard Unix (or PC) return values as A other, scarier-looking things, so unzip instead maps themaA into VMS-style status codes. The current mapping is as A follows: 1 (success) for normal exit, 0x7fff0001 foraA warning errors, and (0x7fff000? + 16*nor- A mal_unzip_exit_status) for all other errors, where the `?' AInfo-ZIP 3 November 1997 (v5.32) 13bAUNZIP(1L) UNZIP(1L).A is 2 (error) for unzip values 2, 9-11 and 80-82, and 4dA (fatal error) for the remaining ones (3-8, 50, 51). IneA addition, there is a compilation option to expand upongA this behavior: defining RETURN_CODES results in a human-c; readable explanation of what the error status means.dBUGSA Multi-part archives are not yet supported, except in con-eA junction with zip. (All parts must be concatenatedtA together in order, and then ``zip -F'' must be performedA on the concatenated archive in order to ``fix'' it.) Thisl> will definitely be corrected in the next major release.A Archives read from standard input are not yet supported,uA except with funzip (and then only the first member of thet! archive can be extracted).A Archives encrypted with 8-bit passwords (e.g., passwordsA with accented European characters) may not be portableaA across systems and/or other archivers. See the discussionL in DECRYPTION above.eA unzip's -M (``more'') option is overly simplistic in itseA handling of screen output; as noted above, it fails tosA detect the wrapping of long lines and may thereby causedA lines at the top of the screen to be scrolled off beforetA being read. unzip should detect and treat each occurrence A of line-wrap as one additional line printed. ThiseA requires knowledge of the screen's width as well as itsuA height. In addition, unzip should detect the true screen  geometry on all systems.A Dates, times and permissions of stored directories are noti" restored except under Unix.A [MS-DOS] When extracting or testing files from an archivedA on a defective floppy diskette, if the ``Fail'' option is A chosen from DOS's ``Abort, Retry, Fail?'' message, olderrA versions of unzip may hang the system, requiring a reboot.oA This problem appears to be fixed, but control-C (or con-s8 trol-Break) can still be used to terminate unzip.A Under DEC Ultrix, unzip would sometimes fail on long zip-hA files (bad CRC, not always reproducible). This was appar-tA ently due either to a hardware bug (cache memory) or antA operating system bug (improper handling of page faults?).rA Since Ultrix has been abandoned in favor of Digital Unixa1 (OSF/1), this may not be an issue anymore.]A [Unix] Unix special files such as FIFO buffers (namedlA pipes), block devices and character devices are notTA restored even if they are somehow represented in the zip-iA file, nor are hard-linked files relinked. Basically thecA only file types restored by unzip are regular files,,AInfo-ZIP 3 November 1997 (v5.32) 14,AUNZIP(1L) UNZIP(1L)e- directories and symbolic (soft) links. A [OS/2] Extended attributes for existing directories are A only updated if the -o (``overwrite all'') option issA given. This is a limitation of the operating system;nA because directories only have a creation time associated A with them, unzip has no way to determine whether theIA stored attributes are newer or older than those on disk.rA In practice this may mean a two-pass approach is required:cA first unpack the archive normally (with or without fresh- A ening/updating existing files), then overwrite just ther5 directory entries (e.g., ``unzip -o foo */'').tA [VMS] When extracting to another directory, only theuA [.foo] syntax is accepted for the -d option; the simpletA Unix foo syntax is silently ignored (as is the less commona VMS foo.dir syntax).zA [VMS] When the file being extracted already exists,oA unzip's query only allows skipping, overwriting or renam-)A ing; there should additionally be a choice for creating aiA new version of the file. In fact, the ``overwrite''iA choice does create a new version; the old version is nota overwritten or deleted.SEE ALSOA funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zip-i* info(1L), zipnote(1L), zipsplit(1L)URLrA The Info-ZIP home page is currently atp* http://www.cdrom.com/pub/infozip/ .AUTHORS A The primary Info-ZIP authors (current semi-active membersNA of the Zip-Bugs workgroup) are: Greg ``Cave Newt''dA Roelofs (UnZip); Onno van der Linden (Zip); Jean-loupnA Gailly (compression); Mark Adler (decompression, fUnZip);xA Christian Spieler (VMS, MS-DOS, Windows 95, NT, sharedoA code, general Zip and UnZip integration and optimization);nA Mike White (Windows GUI, Windows DLLs); Kai Uwe RommeloA (OS/2); Paul Kienitz (Amiga, Windows 95); Chris HerborthpA (BeOS, QNX, Atari); Jonathan Hudson (SMS/QDOS); Sergio A Monesi (Acorn RISC OS); Harald Denker (Atari, MVS); John A Bush (Solaris, Amiga); Hunter Goatley (VMS); Steve Salis-rA bury (Windows 95, NT); Steve Miller (Windows CE GUI),oA Johnny Lee (MS-DOS, Windows 95, NT); and Dave Smith (Tan-eA dem NSK). The author of the original unzip code uponaA which Info-ZIP's was based is Samuel H. Smith; Carl Mas- A cott did the first Unix port; and David P. Kirschbaum A organized and led Info-ZIP in its early days with KeithmA Petersen hosting the original mailing list at WSMR-Sim-rA Tel20. The full list of contributors to UnZip has grown A quite large; please refer to the CONTRIBS file in the AInfo-ZIP 3 November 1997 (v5.32) 15 AUNZIP(1L) UNZIP(1L) A UnZip source distribution for a relatively complete ver-a sion.VERSIONS) v1.2 15 Mar 89 Samuel H. Smithz) v2.0 9 Sep 89 Samuel H. Smith2 v2.x fall 1989 many Usenet contributors6 v3.0 1 May 90 Info-ZIP (DPK, consolidator)6 v3.1 15 Aug 90 Info-ZIP (DPK, consolidator)4 v4.0 1 Dec 90 Info-ZIP (GRR, maintainer)" v4.1 12 May 91 Info-ZIP; v4.2 20 Mar 92 Info-ZIP (Zip-Bugs subgroup, GRR)i; v5.0 21 Aug 92 Info-ZIP (Zip-Bugs subgroup, GRR)o; v5.01 15 Jan 93 Info-ZIP (Zip-Bugs subgroup, GRR)n; v5.1 7 Feb 94 Info-ZIP (Zip-Bugs subgroup, GRR)f; v5.11 2 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR) ; v5.12 28 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR) ; v5.2 30 Apr 96 Info-ZIP (Zip-Bugs subgroup, GRR) ; v5.3 22 Apr 97 Info-ZIP (Zip-Bugs subgroup, GRR); v5.31 31 May 97 Info-ZIP (Zip-Bugs subgroup, GRR)e; v5.32 3 Nov 97 Info-ZIP (Zip-Bugs subgroup, GRR) AInfo-ZIP 3 November 1997 (v5.32) 16oe or more filestA failed due to unsupported compression meth- 3 ods or unsupported decryption. A 82 no files were found due to bad decryptionoA password(s). (If even one file is success-mA fully processed, however, the exit status isr 1.)A VMS interprets standard Unix (or PC) return values as A other, sc1*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]UNZIP.HLP;1+,56./U 4N-580@123KPWO56zϛ7zϛ89GUHJt)~UNZ532X-VMS-VAX-VAXC-OBJ.BCK56581[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]UNZIP.HLP;1N(1 UNZIPH UnZip is used to extract files compressed and packaged by Zip (see% HELP ZIP for information on ZIP).H For a brief help on Zip and Unzip, run each without specifying anyH parameters on the command line, or specify the -h flag (but not in UnZip's Zipinfo mode).H UNZIP will list, test, or extract from a ZIP archive. ZIP archivesH are commonly found on MS-DOS systems; a VMS version of ZIP can also be found here.H Archive member extraction is implied by the absence of the -c, -p,H -t, -l, -v or -z options. All archive members are processed unlessH a filespec is provided to specify a subset of the archive members. Format:N UNZIP [-cfhlptuvxz[ajnoqCLMVX]] file[.zip] [list] [-x xlist] [-d out_dir] 2 Parameters file[.zip]H File specification for the ZIP archive(s) with optional wildcards.H UnZip will perform actions specified for every zipfile matching theH specification. Default file specification is SYS$DISK:[].ZIP. NoteH that self-extracting ZIP files are supported; just specify the .EXE suffix yourself.[list]H An optional list of archive members to be processed; if no list isH given, all archive members are processed. Expressions may be usedH to match multiple members. Expressions should be enclosed inH double-quotes to prevent interpretation by DCL. Multiple filenamesH should be separated by blanks. Each file specification is similar/ to a Unix egrep expression and may contain:; * matches a sequence of 0 or more characters, ? matches exactly 1 characterH [...] matches any single character found inside the brackets;? ranges are specified by a beginning character,D a hyphen, and an ending character. If a '!' or '^'I immediately follows the left bracket, then any character3 not in the given range is matched. [-x xlist]H An optional list of archive members to be excluded from processing.> The xlist overrides any files included in the normal list. [-d out_dir]H Optional directory specification to be used as target root directoryH for files to be extracted. Directory should be specified in; "[.foo]" format rather than "foo.dir" or "foo/" format. 2 OptionsH The default action of UnZip is to extract all zipfile entries. The4 following options and modifiers can be provided: -Z ZipInfo mode2 -c extract files to SYS$OUTPUT (terminal)B -f freshen existing files (replace if newer); create none3 -h show brief help screen and exit quietly- -l list archive files (short format)B -p extract files to SYS$OUTPUT; no informational messages -t test archive files< -u update existing files; create new ones if needed/ -v list archive files (verbose format), -z display only the archive comment MODIFIERS? -a extract text files in standard VMS text file format% -aa extract all files as textN -b auto-extract only binary files in VMS fixed 512-byte record formatK -bb extract all files as binary in VMS fixed 512-byte record formatE -j junk paths (don't recreate archive's directory structure)8 -n never overwrite existing files; don't prompt3 -o OK to overwrite files without prompting< -q perform operations quietly (-qq => even quieter). -C match filenames case-insensitivelyJ -L convert filenames to lowercase if created under DOS, VMS, etc.< -M feed screen output through built-in "more" pagerN -P supply decryption password on the command line (insecure!)- -V retain (VMS) file version numbersB -X restore owner/protection info (may require privileges)H Note that uppercase options (-C, -L, -M, -P, -V and -X) must be& specified in quotes. For example: unzip "-VX" -a zipfileH The output conversion options -b and -a may be combined to performH binary conversions on binary files and text conversion on textH files. But note: For compatibility with implementation on otherH systems, -b cancels any -a option; to get the intended result, -aH must be specified AFTER -b. And, in combination, "text" recognitionH takes precedence; this means that -bb has the same effect as -b, and2 -aa overrides binary conversion for ALL files.H Please note that using the "-P" option is higly insecure,H the plaintext password may be seen by others. For this reason (andH because of lack of space), the "-P" option is not- advertised on UnZip's online help screen. 2 Exit_CodesH On VMS, UnZip's UNIX style exit values are mapped into proper VMS status codes:> 1 (success) normal exit,3 (0x7fff0000 + 16*UnZip_errnum) -W- warnings8 (0x7fff0002 + 16*UnZip_errnum) -E- normal errors7 (0x7fff0004 + 16*UnZip_errnum) -F- fatal errorsH The UnZip error level (or exit code) approximates the exit codes8 defined by PKWARE and takes on the following values:& VMS UnZip Type of error severity errcode@ - 0 normal; no errors or warnings detected.E W 1 one or more warning errors were encountered,E but processing completed successfully any-E way. This includes zipfiles where one orE more files was skipped due to unsupportedE compression method or encryption with an* unknown password.E E 2 a generic error in the zipfile format wasE detected. Processing may have completedE successfully anyway; some broken zipfilesE created by other archivers have simple work-! arounds.E F 3 a severe error in the zipfile format wasE detected. Processing probably failed imme-! diately.E F 4 unzip was unable to allocate memory for oneE or more buffers during program initializa- tion.E F 5 unzip was unable to allocate memory orE unable to obtain a tty to read the decryp-* tion password(s).E F 6 unzip was unable to allocate memory during/ decompression to disk.E F 7 unzip was unable to allocate memory during1 in-memory decompression.- F 8 [currently not used]? E 9 the specified zipfiles were not found.E E 10 invalid options were specified on the com-# mand line.6 E 11 no matching files were found.E F 50 the disk is (or was) full during extraction.E F 51 the end of the ZIP archive was encountered% prematurely.E E 80 the user aborted unzip prematurely with con-, trol-C (or similar)E E 81 no files were found due to unsupported com-E pression methods or unsupported decryption.E (If even one additional file is successfullyC processed, however, the exit status is 1.)E E 82 no files were found due to bad decryptionE password(s). This is also the exit statusE if no files were found due to a combinationE of unsupported compression and bad pass-E words. As in the previous case, however, asE single successful file will result in ani3 exit status of 1 instead.)aH In addition, there is a compilation option to expand upon thisH behavior: An executable compiled with the option RETURN_CODESH defined displays a human-readable explanation of what the error status means.o2 Logical_NamesrH UnZip allows to modify its default behaviour by specifying optionH defaults via the UNZIP_OPTS logical name. For example, theH following will cause UnZip to restore owner/protection information; and perform all operations at quiet-level 1 by default:l define UNZIP_OPTS "-qX"iH Note that the quotation marks here are required to preserveH lowercase options (opposite of the command-line behavior). ToH negate a default option on the command line, add one or more minusH signs before the option letter, in addition to the leading switch character `-': unzip --ql zipfile or unzip -l-q zipfileH At present it is not possible to decrement an option below: zero--that is, more than a few minuses have no effect.H UNZIP_OPTS may be defined as a symbol rather than a logical name,? but if both are defined, the logical name takes precedence. 2 Authors H Info-ZIP; currently maintained by Greg Roelofs. VMS supportH maintained by Christian Spieler and Hunter Goatley. Originally+ based on a program by Samuel H. Smith.t= VMS on-line help ported from UNZIP.DOC by Hunter Goatley.rter found inside the brackets;? ranges are specified by a beginning character,D a hyphen, and an ending character. If a '!' or '^'I immediately follows the left bracket, then any character3 not in the given range is matched. [-x xlist]H An:*[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]UNZIP.VAX_VAXC_OLB;1+,A7O.b/U 4bc-580H123 KPWOc5(6  CHECKDIR CHECK_FORMATCHECK_FOR_NEWER CLOSE_OUTFILE3CRC329DECRYPT9 DECRYPT_BYTE'DEFER_LEFTOVER_INPUTDOS_TO_UNIX_TIME' DO_STRINGDO_WILDECHO?ENVARGSCEXPLODEVEXTRACT_OR_TEST_FILESFIND_VMS_ATTRSFLUSHVFNFILTERFNPRINT6FREE_CRC_TABLEFREE_G_BUFFERSGETP GET_CDIR_ENT6 GET_CRC_TABLEGET_TIME_STAMP GLOBALSCTOR'HANDLER HUFT_BUILD3CRC326CRCTAB9CRYPT?ENVARGSCEXPLODEVEXTRACT'FILEIOGLOBALSINFLATELISTMATCHPROCESSTTYIOUNREDUCEHUNSHRINKUNZIPVMSZIPINFOUNZIP9 UPDATE_KEYSUSAGE'UZPINPUT'UZPMESSAGEPRNT' UZPMOREPAUSE' UZPPASSWORDUZ_END_CENTRALUZ_OPTSVERSIONZGETCHZIPINFOZI_END_CENTRALZI_OPTS' ZSTRNICMPD HUFT_BUILDMAKELONG UNDEFER_INPUT ZSTRNICMPO'MAKEWORDMAPATTRMAPNAMEMATCHV MEMEXTRACTVMEMFLUSH'OPEN_INPUT_FILE OPEN_OUTFILEPROCESS_CDIR_FILE_HDRPROCESS_LOCAL_FILE_HDRPROCESS_ZIPFILESRATIO'READBUF'READBYTE RETURN_VMS SCREENLINES STAMP_FILE'STR2OEM' UNDEFER_INPUT HUFT_FREEINFLATE INFLATE_CODES INFLATE_FREE9 INIT_KEYSISWILD LIST_FILESMAIN'MAKELONG  !"#$%&'()*'-~UNZ532X-VMS-VAX-VAXC-OBJ.BCKA7O58:[TEXMF.SOURCE.PROGS.INFO-ZIP.DIST.BCK]UNZIP.VAX_VAXC_OLB;1b|*+,-