home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume29 / unzip / part09 < prev    next >
Encoding:
Text File  |  1992-04-02  |  54.3 KB  |  1,217 lines

  1. Newsgroups: comp.sources.misc
  2. From: info-zip@cs.ucla.edu (Info-Zip)
  3. Subject:  v29i039:  unzip - Info-ZIP's portable UnZip v4.2, Part09/12
  4. Message-ID: <1992Apr3.063326.29116@sparky.imd.sterling.com>
  5. X-Md4-Signature: e03539e4c76bacee0b10a4469c7eef54
  6. Date: Fri, 3 Apr 1992 06:33:26 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: info-zip@cs.ucla.edu (Info-Zip)
  10. Posting-number: Volume 29, Issue 39
  11. Archive-name: unzip/part09
  12. Environment: Unix, VMS, OS/2, MS-DOS, Amiga, Macintosh
  13. Supersedes: unzip, Volume 19, Issues 96-101
  14.  
  15. #! /bin/sh
  16. # This is a shell archive.  Remove anything before this line, then feed it
  17. # into a shell via "sh file" or similar.  To overwrite existing files,
  18. # type "sh file -c".
  19. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  20. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  21. # Contents:  COPYING MAC/macstat.c MSDOS/bcc/unzip.prj.uu
  22. #   MSDOS/bcc/zipinfo.prj.uu VMS/bilf/bilf.exe.uu zipinfo.1
  23. #   zipinfo.man
  24. # Wrapped by kent@sparky on Mon Mar 30 01:45:55 1992
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. echo If this archive is complete, you will see the following message:
  27. echo '          "shar: End of archive 9 (of 12)."'
  28. if test -f 'COPYING' -a "${1}" != "-c" ; then 
  29.   echo shar: Will not clobber existing file \"'COPYING'\"
  30. else
  31.   echo shar: Extracting \"'COPYING'\" \(6168 characters\)
  32.   sed "s/^X//" >'COPYING' <<'END_OF_FILE'
  33. X===============================================================================
  34. X   The following copyrights are claimed on portions of the UnZip source code.
  35. X   Further comments are at the bottom.
  36. X===============================================================================
  37. X
  38. X  Copyright in unzip.c, originally from unzip version 1.2 (?):
  39. X
  40. X     * Copyright 1989 Samuel H. Smith;  All rights reserved
  41. X     *
  42. X     * Do not distribute modified versions without my permission.
  43. X     * Do not remove or alter this notice or any other copyright notice.
  44. X     * If you use this in your own program you must distribute source code.
  45. X     * Do not use any of this in a commercial product.
  46. X
  47. X-------------------------------------------------------------------------------
  48. X
  49. X  Copyright in match.c, originally from arcmatch.c, version 1.1 (?):
  50. X
  51. X     * ARC - Archive utility - ARCMATCH
  52. X     * Version 2.17, created on 12/17/85) at 20:32:18
  53. X     * (C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED
  54. X
  55. X-------------------------------------------------------------------------------
  56. X
  57. X  Copyright in misc.c, applying to UpdateCRC() and crc_32_tab[]:
  58. X
  59. X     COPYRIGHT (C) 1986 Gary S. Brown.  You may use this program, or code
  60. X     or tables extracted from it, as desired without restriction.
  61. X
  62. X-------------------------------------------------------------------------------
  63. X
  64. X  Copyright in unimplod.c (and UnZip in general?), claimed retroactively by 
  65. X  Carl Mascott, cmascott@world.std.com, 7 November 1991:
  66. X
  67. X     Portions copyright (C) 1989 Carl Mascott.  All rights reserved.
  68. X     Permission is granted to any individual or institution to use,
  69. X     copy, or redistribute this software so long as it is not sold for
  70. X     profit or included with other software that is sold for profit,
  71. X     provided this copyright notice is retained.
  72. X
  73. X  Also noted by Carl Mascott:
  74. X
  75. X     The following routines in unimplod.c were written entirely by me:
  76. X          SortLengths
  77. X          GenerateTrees
  78. X          ReadTree
  79. X
  80. X  Original notes from unzip 2.0a:
  81. X
  82. X     * 12/14/89  C. Mascott  2.0a   adapt for UNIX
  83. X     *              ifdef HIGH_LOW swap bytes in time, date, CRC,
  84. X     *                version needed, bit flag
  85. X     *              implement true s-f trees instead of table
  86. X     *              don't pre-allocate output file space
  87. X     *              implement -t, -v, member file specs
  88. X     *              buffer all input
  89. X     *              change hsize_array_integer to short
  90. X     *              overlap storage used by different comp. methods
  91. X     *              speed up unImplode
  92. X     *              use insertion sort in SortLengths
  93. X     *              define zipfile header structs in a way that
  94. X     *                avoids structure padding on 32-bit machines
  95. X     *              fix "Bad CRC" msg: good/bad CRCs were swapped
  96. X     *              check for write error on output file
  97. X
  98. X-------------------------------------------------------------------------------
  99. X
  100. X  Copyright in vms.c, distributed with UnZip versions 4.2 and later:
  101. X
  102. X     * Copyright (C) 1992 Igor Mandrichenko.
  103. X     * Permission is granted to any individual or institution to use, copy,
  104. X     * or redistribute this software so long as all of the original files
  105. X     * are included unmodified, that it is not sold for profit, and that
  106. X     * this copyright notice is retained.
  107. X
  108. X-------------------------------------------------------------------------------
  109. X
  110. X  Additional copyright information:
  111. X
  112. X     BILF (distributed with the VMS stuff) is copyrighted by Rahul Dhesi,
  113. X     but it is freely distributable.
  114. X
  115. X     The functions extract_or_test_files() and store_info() in extract.c,
  116. X     do_string() and return_VMS() in misc.c, VMS version of echo() in
  117. X     file_io.c, and find_end_central_dir() in unzip.c, were written by
  118. X     Greg Roelofs and subsequently modified by many others via Info-ZIP.
  119. X     I do not claim a copyright on these routines, but I do ask that no
  120. X     one else do so either, :-) and that anyone using them in other pro-
  121. X     grams note their source.
  122. X
  123. X     The function decrypt_member() in extract.c and the password functions
  124. X     in file_io.c were written by Mark Adler.
  125. X
  126. X     The function mapped_name() in mapname.c was written by David Kirschbaum,
  127. X     based on the XXU program by Frank Da Cruz.
  128. X
  129. X     Most of the remaining routines have contributions from all of us, and
  130. X     show it. :-)
  131. X
  132. X===============================================================================
  133. X
  134. X   Info-ZIP comments:
  135. X
  136. X   Info-ZIP has very little interest in legal matters, aside from the usual
  137. X   "CYA" sense.  In particular, Info-ZIP makes no claim as to the validity of
  138. X   the fourth copyright notice, which did not appear in any of the original 
  139. X   source code in question.  We do NOT, however, dispute the fact that Mr.
  140. X   Mascott made contributions to unzip--in fact, he was apparently responsi-
  141. X   ble for the original port to Unix on which Info-ZIP UnZip is based.  As
  142. X   an author, his wishes should be honored, regardless of any copyrights.
  143. X
  144. X   Regarding the original copyright by Mr. Smith:  Info-ZIP has attempted to
  145. X   contact Mr. Smith at the BBS formerly listed in the usage screen, in order
  146. X   to comply with his first stipulation; no response was ever received, and 
  147. X   as of early 1992 the number no longer exists (hence was removed from the 
  148. X   usage screen lest it be reassigned to someone else by the phone company).
  149. X   Since the current incarnation of UnZip can be considered "our own"--it
  150. X   bears very little resemblance to his original program, in either content
  151. X   or size :-) --and since we freely distribute the source code, we feel that
  152. X   we are within the bounds of his third stipulation.  In any case, Info-ZIP
  153. X   has acted in good faith, and we hope we are not overstepping our authority.
  154. X
  155. X   Info-ZIP would *like* UnZip to be distributed with minimal restrictions,
  156. X   and to that end, the authors are working to rewrite portions of the code
  157. X   where time permits.  This is a slow business, however, and it is not a
  158. X   primary concern for most of us.  So don't hold your breath. :-)
  159. X
  160. X===============================================================================
  161. END_OF_FILE
  162.   if test 6168 -ne `wc -c <'COPYING'`; then
  163.     echo shar: \"'COPYING'\" unpacked with wrong size!
  164.   fi
  165.   # end of 'COPYING'
  166. fi
  167. if test -f 'MAC/macstat.c' -a "${1}" != "-c" ; then 
  168.   echo shar: Will not clobber existing file \"'MAC/macstat.c'\"
  169. else
  170.   echo shar: Extracting \"'MAC/macstat.c'\" \(5884 characters\)
  171.   sed "s/^X//" >'MAC/macstat.c' <<'END_OF_FILE'
  172. X#ifdef THINK_C
  173. X#define MACOS
  174. X#include    <pascal.h>
  175. X#endif
  176. X#ifdef MPW
  177. X#define MACOS
  178. X#include    <Files.h>
  179. X#include    <Errors.h>
  180. X#define FSFCBLen    (*(short *)0x3F6)
  181. X#define CtoPstr c2pstr
  182. X#define PtoCstr p2cstr
  183. X#endif
  184. X
  185. X#ifdef MACOS
  186. X#include    <string.h>
  187. X#include    "macstat.h"
  188. Xint stat(char *path, struct stat *buf);
  189. X
  190. X/* assume that the path will contain a Mac-type pathname, i.e. ':'s, etc. */
  191. Xint stat(path, buf)
  192. Xchar *path;
  193. Xstruct stat *buf;
  194. X{
  195. X    char    temp[256];
  196. X    short   curVolume;
  197. X    long    curDir;
  198. X    short   fIsHFS = false;
  199. X    OSErr   err;
  200. X
  201. X    if (buf == (struct stat *)0L || path == (char *)0L) {
  202. X        SysBeep(1);
  203. X        return -1;
  204. X    }
  205. X    
  206. X    if (path[0] == '\0' || strlen(path)>255) {
  207. X        return -1;
  208. X    }
  209. X
  210. X    if (GetVol((StringPtr)&temp[0], &curVolume) != noErr) {
  211. X        SysBeep(1);
  212. X        return -1;
  213. X    }
  214. X    
  215. X    /* get info about the specified volume */
  216. X    if (FSFCBLen > 0)   /* HFS Disk? */
  217. X    {
  218. X        WDPBRec wdpb;
  219. X        HParamBlockRec    hpbr;
  220. X        Str255 st;
  221. X
  222. X        wdpb.ioCompletion = 0;
  223. X        wdpb.ioNamePtr = (StringPtr)temp;
  224. X        err = PBHGetVol(&wdpb, 0);
  225. X        if (err == noErr)
  226. X        {
  227. X            hpbr.volumeParam.ioCompletion = 0;
  228. X            hpbr.volumeParam.ioNamePtr = st;
  229. X            hpbr.volumeParam.ioVRefNum = wdpb.ioVRefNum;
  230. X            hpbr.volumeParam.ioVolIndex = 0;
  231. X            err = PBHGetVInfo(&hpbr, 0);
  232. X
  233. X            if (err == noErr && hpbr.volumeParam.ioVFSID == 0
  234. X                && hpbr.volumeParam.ioVSigWord == 0x4244) {
  235. X                    fIsHFS = true;
  236. X            }
  237. X        }
  238. X    }
  239. X
  240. X
  241. X    /* number of links, at least in System 6.0x, 0 */
  242. X    buf->st_nlink = 0;
  243. X    /* user id */
  244. X    buf->st_uid = 0;
  245. X    /* group id */
  246. X    buf->st_gid = 0;
  247. X
  248. X    if (fIsHFS == true)   /* HFS? */
  249. X    {
  250. X        CInfoPBRec  cPB;
  251. X        HParamBlockRec  wPB;
  252. X        
  253. X        wPB.wdParam.ioCompletion = (ProcPtr)0L;
  254. X        wPB.wdParam.ioNamePtr = (StringPtr)temp;
  255. X        err = PBHGetVol((WDPBPtr)&wPB, false);
  256. X        if (err != noErr) {
  257. X            SysBeep(1);
  258. X            return -1;
  259. X        }
  260. X
  261. X        curVolume = wPB.wdParam.ioWDVRefNum;
  262. X        buf->st_dev = curDir = wPB.wdParam.ioWDDirID;
  263. X        
  264. X        /* get information about file */
  265. X        cPB.hFileInfo.ioCompletion = (ProcPtr)0L;
  266. X        CtoPstr(path);
  267. X        strncpy(temp,path, path[0]+1);
  268. X        PtoCstr(path);
  269. X        cPB.hFileInfo.ioNamePtr = (StringPtr)temp;
  270. X        cPB.hFileInfo.ioVRefNum = 0;
  271. X        cPB.hFileInfo.ioDirID = 0;
  272. X        cPB.hFileInfo.ioFDirIndex = 0;
  273. X        
  274. X        err = PBGetCatInfo(&cPB, false); 
  275. X        
  276. X        if (err != noErr) {
  277. X            if (err != fnfErr) {
  278. X                SysBeep(1);
  279. X            }
  280. X            return -1;
  281. X        }
  282. X        
  283. X        /* Type of file: directory or regular file */
  284. X        buf->st_mode = (cPB.hFileInfo.ioFlAttrib & ioDirMask) ? S_IFDIR : S_IFREG;
  285. X        
  286. X        /* last access time, modification time and creation time(?) */
  287. X        buf->st_atime = buf->st_mtime = cPB.hFileInfo.ioFlMdDat;
  288. X        buf->st_ctime = cPB.hFileInfo.ioFlCrDat;
  289. X        /* inode number */
  290. X        buf->st_ino = cPB.hFileInfo.ioDirID + ((long)curVolume)<<16;
  291. X        /* size of file - use only the data fork */
  292. X        buf->st_size = cPB.hFileInfo.ioFlLgLen;
  293. X        /* size of disk block */
  294. X        if (cPB.hFileInfo.ioFlClpSiz == 0) {
  295. X            HParamBlockRec hPB;
  296. X            
  297. X            hPB.volumeParam.ioCompletion = (ProcPtr)0L;
  298. X            hPB.volumeParam.ioNamePtr = (StringPtr)temp;
  299. X            hPB.volumeParam.ioVRefNum = 0;
  300. X            hPB.volumeParam.ioVolIndex = 0;
  301. X            
  302. X            err = PBHGetVInfo(&hPB, false);
  303. X            
  304. X            if (err != noErr) {
  305. X                SysBeep(1);
  306. X                return -1;
  307. X            }
  308. X            
  309. X            buf->st_blksize = hPB.volumeParam.ioVClpSiz;
  310. X        }
  311. X        else
  312. X            buf->st_blksize = cPB.hFileInfo.ioFlClpSiz;
  313. X    
  314. X        buf->st_blocks = cPB.hFileInfo.ioFlPyLen/ buf->st_blksize;
  315. X    }
  316. X    else    /* MFS? */
  317. X    {
  318. X        ParamBlockRec   pPB;
  319. X        
  320. X        buf->st_dev = 0;
  321. X        
  322. X        CtoPstr(path);
  323. X        strncpy(temp, path, path[0]+1);
  324. X        PtoCstr(path);
  325. X        pPB.fileParam.ioCompletion = (ProcPtr)0;
  326. X        pPB.fileParam.ioNamePtr = (StringPtr)temp;
  327. X        pPB.fileParam.ioVRefNum = curVolume;
  328. X        pPB.fileParam.ioFVersNum = 0;
  329. X        pPB.fileParam.ioFDirIndex = 0;
  330. X        
  331. X        err = PBGetFInfo(&pPB, false);   
  332. X        
  333. X        if (err != noErr) {
  334. X            SysBeep(1);
  335. X            return -1;
  336. X        }
  337. X        
  338. X        /* Type of file: either directory or regular file */
  339. X        buf->st_mode = (pPB.fileParam.ioFlAttrib & ioDirMask) ? S_IFDIR : S_IFREG;
  340. X        
  341. X        /* last access time, modification time and creation time(?) */
  342. X        buf->st_atime = buf->st_mtime = pPB.fileParam.ioFlMdDat;
  343. X        buf->st_ctime = pPB.fileParam.ioFlCrDat;
  344. X        /* inode number */
  345. X        buf->st_ino = pPB.fileParam.ioFlNum + ((long)curVolume)<<16;
  346. X        /* size of file - use only the data fork */
  347. X        buf->st_size = pPB.fileParam.ioFlLgLen;
  348. X        /* size of disk block */
  349. X        {
  350. X            ParamBlockRec hPB;
  351. X            
  352. X            hPB.volumeParam.ioCompletion = (ProcPtr)0;
  353. X            hPB.volumeParam.ioNamePtr = (StringPtr)temp;
  354. X            hPB.volumeParam.ioVRefNum = curVolume;
  355. X            hPB.volumeParam.ioVolIndex = 0;
  356. X            
  357. X            err = PBGetVInfo(&hPB, false);
  358. X            
  359. X            if (err != noErr) {
  360. X                SysBeep(1);
  361. X                return -1;
  362. X            }
  363. X            
  364. X            buf->st_blksize = hPB.volumeParam.ioVClpSiz;
  365. X        }
  366. X    
  367. X        /* number of disk blocks used by file - includes resource fork */
  368. X        buf->st_blocks = pPB.fileParam.ioFlPyLen/ buf->st_blksize +
  369. X                            pPB.fileParam.ioFlRPyLen/buf->st_blksize;
  370. X    }
  371. X
  372. X    return 0;
  373. X}
  374. X#else
  375. X#error 1
  376. X#endif
  377. END_OF_FILE
  378.   if test 5884 -ne `wc -c <'MAC/macstat.c'`; then
  379.     echo shar: \"'MAC/macstat.c'\" unpacked with wrong size!
  380.   fi
  381.   # end of 'MAC/macstat.c'
  382. fi
  383. if test -f 'MSDOS/bcc/unzip.prj.uu' -a "${1}" != "-c" ; then 
  384.   echo shar: Will not clobber existing file \"'MSDOS/bcc/unzip.prj.uu'\"
  385. else
  386.   echo shar: Extracting \"'MSDOS/bcc/unzip.prj.uu'\" \(9234 characters\)
  387.   sed "s/^X//" >'MSDOS/bcc/unzip.prj.uu' <<'END_OF_FILE'
  388. Xbegin 666 MSDOS/bcc/unzip.prj
  389. XM5'5R8F\@0R!0<F]J96-T($9I;&4@&@ !#1(7 1H  0<R $ 'R0 "  $ R@ "
  390. XM    RP "  $ S  "  $ S0 "  ( S@ "    SP "    T  "    T0 "    
  391. XMT@ "  $ TP "  $ U  "  , U@ " $  UP "  $ \0 !  #R  $  /,  0 !
  392. XM]  !  'U  $  ?8  @  @/<  0  ^  !  #Y  $  /H  @  (+ $ @   OL 
  393. XM 0  _  !  ']  $  /X  0  _P !     0$  0$! 0   P$!  $$ 0$   4!
  394. XM 0  !@$!  $' 0$ &0@! 0!D"0$! " * 0$   L! 0  # $!   - 0$   X!
  395. XM 0  #P$!   0 0$  !$! 0  $@$!   3 0$  !0! 0  %0$!  $6 0$  !<!
  396. XM @  @!@! 0  &0$"    &@$!   ; 0$  !P! 0 !'0$!   > 0$  Q\! 0 !
  397. XM( $!   B 0$  ",! 0  ) $!   E 0$  "8! @#_?R<!   K 0(   !9 @$ 
  398. XM 6L" 0  6@(!  %; @$  5P" 0 !70(!  %> @$  5\" 0 !8 (!  %A @$ 
  399. XM 6(" 0 !8P(!  %D @$  64" 0 !9@(!  %G @$  6@" 0  :0(!  %L @$ 
  400. XM 6T" 0 !;@(!  %O @$  7 " 0 !<0(!  %R @$  7," 0 != (!  %U @$ 
  401. XM '8" 0 !=P(!  %X @$  7D" 0 !>@(!  %[ @$  7P" 0  C@(!  %] @$ 
  402. XM 7X" 0 !?P(!  &  @$  8$" 0 !@@(!  &# @$  80" 0 !A0(!  && @$ 
  403. XM 8<" 0 !B (!  &) @$  8H" 0 !BP(!  &, @$  8T" 0 !CP(!  &0 @$ 
  404. XM 9$" 0 !D@(!  &3 @$  2T!1                                   
  405. XM                                                         "X!
  406. XM@ !#.EQ"3U),04Y$7$E.0TQ51$4                                 
  407. XM                                                            
  408. XM                                                     "\!@ !#
  409. XM.EQ"3U),04Y$7$Q)0@                                          
  410. XM                                                            
  411. XM                                                 # !!  S,@  
  412. XM,0$% #(U    ,@$% #$P,   ,P%_  !?35-#                        
  413. XM                                                            
  414. XM                                                            
  415. XM                   T 1X *@                                  
  416. XM    -0$> "H                                      #8!'@ J    
  417. XM                                   W 1X *@                  
  418. XM                    . $> "H                                 
  419. XM     #D!'@ J                                       Z 1X *@  
  420. XM                                    .P$> "H                 
  421. XM                     #P!'@ J                                
  422. XM       ] 1X *@                                      /@$> "H 
  423. XM                                     #\!'@ J                
  424. XM                      !  8                                  
  425. XM                                                            
  426. XM                                                            
  427. XM                  !$ 0@ ,S(W-C<   !% 0@ .#$Y,@    !& 7\     
  428. XM                                                            
  429. XM                                                            
  430. XM                                             $,!!0 N0P   /__
  431. XM   S  8  0# 6&<8"@#5" !^1U)%4                               
  432. XM                9W)E<                                       
  433. XM                                                            
  434. XM   M;BL@)$U%32@V-"D@)$Y/4U=!4" D4%)/35!4("1#05 @35-'*$=215 R
  435. XM35-'*79O:60@*BYC(                                           
  436. XM                                                            
  437. XM                                                            
  438. XM                             ,C_ 7Y4=7)B;R!!<W-E;6)L97(     
  439. XM                          !405--                            
  440. XM                                                            
  441. XM             "]-6" O6DD@+T\@)%1!4TT                         
  442. XM                                                            
  443. XM                                                            
  444. XM                                                            
  445. XM                                        R?\ 5'5R8F\@?D1E8G5G
  446. XM9V5R                                 '1D                    
  447. XM                                                            
  448. XM                        )$5814Y!344                         
  449. XM                                                            
  450. XM                                                            
  451. XM                                                            
  452. XM                                                  #*_P!4=7)B
  453. XM;R!^4')O9FEL97(                                 ='!R;V8     
  454. XM                                                            
  455. XM                                   D15A%3D%-10              
  456. XM                                                            
  457. XM                                                            
  458. XM                                                            
  459. XM                                                            
  460. XM ,O_ 5)^97-O=7)C92!#;VUP:6QE<@                            !2
  461. XM0P                                                          
  462. XM                                             "120P          
  463. XM                                                            
  464. XM                                                            
  465. XM                                                            
  466. XM                                                            
  467. XM            S/\!?DEM<&]R="!,:6)R87)I86X                     
  468. XM         $E-4$Q)0@                                          
  469. XM                                                        )$E-
  470. XM4$Q)0@                                                      
  471. XM                                                            
  472. XM                                                            
  473. XM                                                            
  474. XM                      #-____                                
  475. XM                                                            
  476. XM                                                            
  477. XM                                                            
  478. XM                                                            
  479. XM                                                            
  480. XM                                                            
  481. XM                                    -0#. P  $@ E<D@8S1D  )25
  482. XM  "[!@  54Y:25 N0P!53EI)4"Y#                                
  483. XM                                                       "  , 
  484. XM!  *    (0 C5F<8X 0   H!  #] @  1DE,15])3RY# $Q%7TE/+D,     
  485. XM                                                            
  486. XM                   %  8 !P )    (  H5F<89 (  )8    Y 0  34%0
  487. XM3D%-12Y# %!.04U%+D,                                         
  488. XM                                           +  P #0 (    %  L
  489. XM5F<82 (  !<   #+    34%40T@N0P!-051#2"Y#                    
  490. XM                                                            
  491. XM       .  \ $  '    %@ S5F<8P@0  $\$  "9 @  34E30RY# %Q-25-#
  492. XM+D,                                                         
  493. XM                               1 !( $P &    &  X5F<88 4  !@&
  494. XM  "  0  54Y)35!,3T0N0P!-4$Q/1"Y#                            
  495. XM                                                       4 !4 
  496. XM%@ %    &@ ]5F<8H ,  "(#  "^    54Y214150T4N0P!%1%5#12Y#    
  497. XM                                                            
  498. XM                   7 !@ &0 $    ' !$5F<8:@,   @   "S    54Y3
  499. XM2%))3DLN0P!(4DE.2RY#                                        
  500. XM                                           : !L '  #        
  501. XM    __________\     15A44D%#5"Y# %1204-4+D,                 
  502. XM                                                            
  503. XM       = !X 'P "  " -@"1!2(   #__X0%=P57!3<%%P7W!-,$L 2,!&\$
  504. XM4 0P! \$[@/- VD#6@/6 4L#<@$^ PX!,@.J "(#1@ 2 ___ @,Z IX"1@  
  505. XM !  'P!P7(05!  EF&48!0  $! 7!@  $! 7!P  $! 7"   $! 7"0  $$T6
  506. XM"@  $! 7"P  $! 7#   $! 7#0  $! 7#@  $! 7#P  $! 7$   $! 7$0  
  507. XM$! 7__],(" @   0 !T ]J)B%P0 )9AE& 4  ! 0%P8  ! 0%P<  ! 0%P@ 
  508. XM ! 0%PD  !!-%@H  ! 0%PL  ! 0%PP  ! 0%PT  ! 0%PX  ! 0%P\  ! 0
  509. XM%Q   ! 0%Q$  ! 0%___3" @(   $  ; *6%01@$ "6891@%   0$!<&   0
  510. XM$!<'   0$!<(   0$!<)   0318*   0$!<+   0$!<,   0$!<-   0$!<.
  511. XM   0$!</   0$!<0   0$!<1   0$!?__TP@("   !  &0!,CF,8!  EF&48
  512. XM!0  $! 7!@  $! 7!P  $! 7"   $! 7"0  $$T6"@  $! 7"P  $! 7#   
  513. XM$! 7#0  $! 7#@  $! 7#P  $! 7$   $! 7$0  $! 7__],(" @   0 !< 
  514. XM;(Y!& 0 )9AE& 4  ! 0%P8  ! 0%P<  ! 0%P@  ! 0%PD  !!-%@H  ! 0
  515. XM%PL  ! 0%PP  ! 0%PT  ! 0%PX  ! 0%P\  ! 0%Q   ! 0%Q$  ! 0%___
  516. XM3" @(   $  5 -!\91@$ "6891@%   0$!<&   0$!<'   0$!<(   0$!<)
  517. XM   0318*   0$!<+   0$!<,   0$!<-   0$!<.   0$!</   0$!<0   0
  518. XM$!<1   0$!?__TP@("   !  $P!8F&08!  EF&48!0  $! 7!@  $! 7!P  
  519. XM$! 7"   $! 7"0  $$T6"@  $! 7"P  $! 7#   $! 7#0  $! 7#@  $! 7
  520. XM#P  $! 7$   $! 7$0  $! 7__],(" @_W!<A!553E-(4DE.2RY# /_VHF(7
  521. XM54Y214150T4N0P#_I85!&%5.24U03$]$+D, _TR.8QA-25-#+D, _VR.01A-
  522. XM051#2"Y# /_0?&4834%03D%-12Y# /]8F&081DE,15])3RY#    $  #  %R
  523. XM2!@$ /EK2!@%   0$!<&   0$!<'   0$!<(   0$!<)   0318*   0$!<+
  524. XM   0$!<,   0$!<-   0$!<.   0$!</   0$!<0   0$!<1   0$!?__P  
  525. XM  /_ ! 0%RXN7$)/4DQ!3D1<24Y#3%5$15Q,24U)5%,N2 #_ ! 0%RXN7$)/
  526. XM4DQ!3D1<24Y#3%5$15Q35%))3D<N2 #_ ! 0%RXN7$)/4DQ!3D1<24Y#3%5$
  527. XM15Q35$1,24(N2 #_ ! 0%RXN7$)/4DQ!3D1<24Y#3%5$15Q&0TY43"Y( /\ 
  528. XM$! 7+BY<0D]23$%.1%Q)3D-,541%7%1)344N2 #_ ! 0%RXN7$)/4DQ!3D1<
  529. XM24Y#3%5$15Q)3RY( /\ $! 7+BY<0D]23$%.1%Q)3D-,541%7%-94UQ424U%
  530. XM0BY( /\ $! 7+BY<0D]23$%.1%Q)3D-,541%7%-94UQ35$%4+D@ _P 0318N
  531. XM+EQ"3U),04Y$7$E.0TQ51$5<4UE37%194$53+D@ _P 0$!<N+EQ"3U),04Y$
  532. XM7$E.0TQ51$5<15)23D\N2 #_ ! 0%RXN7$)/4DQ!3D1<24Y#3%5$15Q#5%E0
  533. XM12Y( /\ $! 7+BY<0D]23$%.1%Q)3D-,541%7%]$1493+D@ _P 0$!<N+EQ"
  534. XM3U),04Y$7$E.0TQ51$5<4U1$24\N2 #_)9AE&%5.6DE0+D@ _WFV9AA53EI)
  535. XM4"Y# #< 70 @    7 !; %H 60!8 %< ________5@!5 %0 4P!2 %$ 4 !/
  536. XM $X 30!, $L 2@!) $@ 1P!& $4 1 !# $( 0@                      
  537. X/              #__P  
  538. Xend
  539. END_OF_FILE
  540.   if test 9234 -ne `wc -c <'MSDOS/bcc/unzip.prj.uu'`; then
  541.     echo shar: \"'MSDOS/bcc/unzip.prj.uu'\" unpacked with wrong size!
  542.   else
  543.     echo shar: Uudecoding \"'MSDOS/bcc/unzip.prj.uu'\"
  544.     cat MSDOS/bcc/unzip.prj.uu | uudecode
  545.     if [ -f MSDOS/bcc/unzip.prj.uu ]; then
  546.        rm MSDOS/bcc/unzip.prj.uu
  547.     fi
  548.   fi
  549.   # end of 'MSDOS/bcc/unzip.prj.uu'
  550. fi
  551. if test -f 'MSDOS/bcc/zipinfo.prj.uu' -a "${1}" != "-c" ; then 
  552.   echo shar: Will not clobber existing file \"'MSDOS/bcc/zipinfo.prj.uu'\"
  553. else
  554.   echo shar: Extracting \"'MSDOS/bcc/zipinfo.prj.uu'\" \(7442 characters\)
  555.   sed "s/^X//" >'MSDOS/bcc/zipinfo.prj.uu' <<'END_OF_FILE'
  556. Xbegin 666 MSDOS/bcc/zipinfo.prj
  557. XM5'5R8F\@0R!0<F]J96-T($9I;&4@&@ !#1(7 1H  0<R $ 'R0 "  $ R@ "
  558. XM    RP "  $ S  "  $ S0 "  ( S@ "    SP "    T  "    T0 "    
  559. XMT@ "  $ TP "  $ U  "  , U@ " $  UP "  $ \0 !  #R  $  /,  0 !
  560. XM]  !  'U  $  ?8  @  @/<  0  ^  !  #Y  $  /H  @  (+ $ @   OL 
  561. XM 0  _  !  ']  $  /X  0  _P !     0$  0$! 0   P$!  $$ 0$  04!
  562. XM 0  !@$!  $' 0$ &0@! 0!D"0$! " * 0$   L! 0  # $!   - 0$   X!
  563. XM 0  #P$!   0 0$  !$! 0  $@$!   3 0$  !0! 0  %0$!  $6 0$  1<!
  564. XM @  @!@! 0  &0$"    &@$!   ; 0$  !P! 0 !'0$!   > 0$  Q\! 0 !
  565. XM( $!   B 0$  ",! 0  ) $!   E 0$  "8! @#_?R<!   K 0(   !9 @$ 
  566. XM 6L" 0  6@(!  %; @$  5P" 0 !70(!  %> @$  5\" 0 !8 (!  %A @$ 
  567. XM 6(" 0 !8P(!  %D @$  64" 0 !9@(!  %G @$  6@" 0  :0(!  %L @$ 
  568. XM 6T" 0 !;@(!  %O @$  7 " 0 !<0(!  %R @$  7," 0 != (!  %U @$ 
  569. XM 78" 0 !=P(!  %X @$  7D" 0 !>@(!  %[ @$  7P" 0 !C@(!  %] @$ 
  570. XM 7X" 0 !?P(!  &  @$  8$" 0 !@@(!  &# @$  80" 0 !A0(!  && @$ 
  571. XM 8<" 0 !B (!  &) @$  8H" 0 !BP(!  &, @$  8T" 0 !CP(!  &0 @$ 
  572. XM 9$" 0 !D@(!  &3 @$  2T!1                                   
  573. XM                                                         "X!
  574. XM@ !#.EQ"3U),04Y$7$E.0TQ51$4                                 
  575. XM                                                            
  576. XM                                                     "\!@ !#
  577. XM.EQ"3U),04Y$7$Q)0@                                          
  578. XM                                                            
  579. XM                                                 # !!  S,@  
  580. XM,0$% #(U    ,@$% #$P,   ,P%_ %I)4$E.1D\ 7U]-4T,             
  581. XM                                                            
  582. XM                                                            
  583. XM                   T 1X *@                                  
  584. XM    -0$> "H                                      #8!'@ J    
  585. XM                                   W 1X *@                  
  586. XM                    . $> "H                                 
  587. XM     #D!'@ J                                       Z 1X *@  
  588. XM                                    .P$> "H                 
  589. XM                     #P!'@ J                                
  590. XM       ] 1X *@                                      /@$> "H 
  591. XM                                     #\!'@ J                
  592. XM                      !  8                                  
  593. XM                                                            
  594. XM                                                            
  595. XM                  !$ 0@ ,S(W-C<   !% 0@ .#$Y,@    !& 7\     
  596. XM                                                            
  597. XM                                                            
  598. XM                                             $,!!0 N0P   /__
  599. XM   S  8  0!K6V<8"@#5" !^1U)%4                               
  600. XM                9W)E<                                       
  601. XM                                                            
  602. XM   M;BL@)$U%32@V-"D@)$Y/4U=!4" D4%)/35!4("1#05 @35-'*$=215 R
  603. XM35-'*79O:60@*BYC(                                           
  604. XM                                                            
  605. XM                                                            
  606. XM                             ,C_ 7Y4=7)B;R!!<W-E;6)L97(     
  607. XM                          !405--                            
  608. XM                                                            
  609. XM             "]-6" O6DD@+T\@)%1!4TT                         
  610. XM                                                            
  611. XM                                                            
  612. XM                                                            
  613. XM                                        R?\ 5'5R8F\@?D1E8G5G
  614. XM9V5R                                 '1D                    
  615. XM                                                            
  616. XM                        )$5814Y!344                         
  617. XM                                                            
  618. XM                                                            
  619. XM                                                            
  620. XM                                                  #*_P!4=7)B
  621. XM;R!^4')O9FEL97(                                 ='!R;V8     
  622. XM                                                            
  623. XM                                   D15A%3D%-10              
  624. XM                                                            
  625. XM                                                            
  626. XM                                                            
  627. XM                                                            
  628. XM ,O_ 5)^97-O=7)C92!#;VUP:6QE<@                            !2
  629. XM0P                                                          
  630. XM                                             "120P          
  631. XM                                                            
  632. XM                                                            
  633. XM                                                            
  634. XM                                                            
  635. XM            S/\!?DEM<&]R="!,:6)R87)I86X                     
  636. XM         $E-4$Q)0@                                          
  637. XM                                                        )$E-
  638. XM4$Q)0@                                                      
  639. XM                                                            
  640. XM                                                            
  641. XM                                                            
  642. XM                      #-____                                
  643. XM                                                            
  644. XM                                                            
  645. XM                                                            
  646. XM                                                            
  647. XM                                                            
  648. XM                                                            
  649. XM                                    -0!& 0  %P!26V<8X!<  +L4
  650. XM  !0!0  6DE024Y&3RY# %!)3D9/+D,                             
  651. XM                                                       "  , 
  652. XM!  $    $P!:6V<83 (  !<   #+    34%40T@N0P!-051#2"Y#        
  653. XM                                                            
  654. XM                   %  8 !P #    %0!D6V<8]@,  &H   "Q @  34E3
  655. XM0RY# %Q-25-#+D,                                             
  656. XM                                           (  D "@ "  " -@ ]
  657. XM Q@   #__RX#(0,! ^$"P0*A GT"6@(V O__&0+Z =H!N0&8 7<!E@!J 3( 
  658. XM7@'Z #(    0 !8 3(YC& 0 )9AE& 4  ! 0%P8  ! 0%P<  ! 0%P@  ! 0
  659. XM%PD  !!-%@H  ! 0%PL  ! 0%PT  ! 0%PX  ! 0%P\  ! 0%Q   ! 0%Q$ 
  660. XM ! 0%Q(  ! 0%___     P  $  4 &R.01@$ "6891@%   0$!<&   0$!<'
  661. XM   0$!<(   0$!<)   0318*   0$!<+   0$!<-   0$!<.   0$!</   0
  662. XM$!<0   0$!<1   0$!<2   0$!?__P    ,  !   P *%608!  EF&48!0  
  663. XM$! 7!@  $! 7!P  $! 7"   $! 7"0  $$T6"@  $! 7"P  $! 7#0  $! 7
  664. XM#@  $! 7#P  $! 7$   $! 7$0  $! 7$@  $! 7__\    #______]-25-#
  665. XM+D, ______]-051#2"Y# /______+BY<0D]23$%.1%Q)3D-,541%7$Q)34E4
  666. XM4RY( /______+BY<0D]23$%.1%Q)3D-,541%7%-44DE.1RY( /______+BY<
  667. XM0D]23$%.1%Q)3D-,541%7%-41$Q)0BY( /______+BY<0D]23$%.1%Q)3D-,
  668. XM541%7$9#3E1,+D@ ______\N+EQ"3U),04Y$7$E.0TQ51$5<5$E-12Y( /__
  669. XM____+BY<0D]23$%.1%Q)3D-,541%7$E/+D@ ______\N+EQ"3U),04Y$7$E.
  670. XM0TQ51$5<4UE37%1)345"+D@ ______\N+EQ"3U),04Y$7$E.0TQ51$5<4UE3
  671. XM7%-4050N2 #______RXN7$)/4DQ!3D1<24Y#3%5$15Q365-<5%E015,N2 #_
  672. XM_____RXN7$)/4DQ!3D1<24Y#3%5$15Q%4E).3RY( /______+BY<0D]23$%.
  673. XM1%Q)3D-,541%7$-465!%+D@ ______\N+EQ"3U),04Y$7$E.0TQ51$5<7T1%
  674. XM1E,N2 #______RXN7$)/4DQ!3D1<24Y#3%5$15Q35$1)3RY( /______54Y:
  675. XM25 N2 #______UI)4$E.1D\N0P W "$ "P   "  'P > !T '  ; !H &0 8
  676. X0 !@             __\  $\N
  677. Xend
  678. END_OF_FILE
  679.   if test 7442 -ne `wc -c <'MSDOS/bcc/zipinfo.prj.uu'`; then
  680.     echo shar: \"'MSDOS/bcc/zipinfo.prj.uu'\" unpacked with wrong size!
  681.   else
  682.     echo shar: Uudecoding \"'MSDOS/bcc/zipinfo.prj.uu'\"
  683.     cat MSDOS/bcc/zipinfo.prj.uu | uudecode
  684.     if [ -f MSDOS/bcc/zipinfo.prj.uu ]; then
  685.        rm MSDOS/bcc/zipinfo.prj.uu
  686.     fi
  687.   fi
  688.   # end of 'MSDOS/bcc/zipinfo.prj.uu'
  689. fi
  690. if test -f 'VMS/bilf/bilf.exe.uu' -a "${1}" != "-c" ; then 
  691.   echo shar: Will not clobber existing file \"'VMS/bilf/bilf.exe.uu'\"
  692. else
  693.   echo shar: Extracting \"'VMS/bilf/bilf.exe.uu'\" \(7798 characters\)
  694.   sed "s/^X//" >'VMS/bilf/bilf.exe.uu' <<'END_OF_FILE'
  695. Xbegin 666 VMS/bilf/bilf.exe
  696. XMJ  P $0 6       ,#(P-0$!  #__________P     H   !/6@O20      
  697. XM$@  :-_^?P (                   +          $               1"
  698. XM24Q&                                               $5C$N,   
  699. XM            8! ]:"])E  %,#4M,#4             $  #  $   "*    
  700. XM @   !  !0 $    @     4    0  $ "0    H$   *    #  4 .S_/P",
  701. XM  #](  $       A   #      ,   0+5D%80U)43%\P,#$? +X      "$ 
  702. XM  ,     #@   0I,24)25$Q?,# Q'P".       A   #      R  ($*351(
  703. XM4E1,7S P,0  ________________________________________________
  704. XM____________________________________________________________
  705. XM____________________________________________________________
  706. XM____________________________________________________________
  707. XM______________________]"24Q&('9E<G-I;VX@,2XP,"!F;W(@5D%8+U9-
  708. XM4R!B>2!286AU;"!$:&5S:2 H,3DX-R\P-R\R-2D*"@ H0RD@0V]P>7)I9VAT
  709. XM(#$Y.#<@4F%H=6P@1&AE<VDL("!!;&P@4FEG:'1S(%)E<V5R=F5D"@!097)M
  710. XM:7-S:6]N('1O('5S92!A;F0@9&ES=')I8G5T92!I<R!G<F%N=&5D('!R;W9I
  711. XM9&5D('1H:7,@8V]P>7)I9VAT"@!N;W1I8V4@:7,@<')E<V5R=F5D(&%N9"!I
  712. XM;F-L=61E9"!I;B!A;&P@8V]P:65S+@H* %5S86=E.B @0DE,1B![;&)](&EN
  713. XM9FEL92!;(&]U=&9I;&4@70H* $-H;V]S92!O;F4@8VAA<F%C=&5R(&9R;VT@
  714. XM=VET:&EN(&)R86-E<RX@($EF(&]U=&9I;&4@:7,@;F]T('-U<'!L:65D"@!I
  715. XM="!H87,@=&AE('-A;64@;F%M92!A<R!I;F9I;&4@8G5T(&$@:&EG:&5R('9E
  716. XM<G-I;VX@;G5M8F5R+@H 3W!T:6]N<R!A<F4Z"@H ;#H@(%=R:71E(&]U='!U
  717. XM="!F:6QE(&EN('-T<F5A;2U,1B!F;W)M870N("!4:&ES(&ES('1H92!F;W)M
  718. XM870@=&AA= H (" @('IO;R!E>'!E8W1S(&%L;"!Z;V\@87)C:&EV97,@=&\@
  719. XM8F4@:6XN("!)9B!A('IO;R!A<F-H:79E('=A<PH (" @('5P;&]A9&5D('1O
  720. XM(&$@5D%8+U9-4R!S>7-T96TL(&ET('=I;&P@;F5E9"!T;R!B92!C;VYV97)T
  721. XM960@=&\* " @("!S=')E86TM3$8@9F]R;6%T(&)E9F]R92!M86YI<'5L871I
  722. XM;F<@=VET:"!Z;V\N"@H 8CH@(%=R:71E(&]U='!U="!F:6QE(&EN(&9I>&5D
  723. XM+6QE;F=T:" U,3(M8GET92!B:6YA<GD@<F5C;W)D(&9O<FUA="X@($)E9F]R
  724. XM90H (" @(&$@>F]O(&%R8VAI=F4@8V%N(&)E(&1O=VYL;V%D960@9G)O;2!A
  725. XM(%9!6"]635,@<WES=&5M('1O(&$* " @("!M:6-R;V-O;7!U=&5R('5S:6YG
  726. XM(%9!6"]635,@2V5R;6ET+"!I="!M=7-T(&)E(&-O;G9E<G1E9"!T;PH (" @
  727. XM('1H:7,@8FEN87)Y(&9O<FUA="X@($9A:6QU<F4@=&\@9&\@<V\@=VEL;"!R
  728. XM97-U;'0@:6X@82!C;W)R=7!T960* " @("!D;W=N;&]A9"X* $]P=&EO;B E
  729. XM<R!I<R!I;G9A;&ED"@!!;B!E<G)O<B!O8V-U<G)E9" M+2!O=71P=70@9FEL
  730. XM92!M87D@8F4@8V]R<G5P=&5D"@!R $-O=6QD(&YO="!O<&5N(&EN<'5T(&9I
  731. XM;&4@)7,* '< 0V]U;&0@;F]T(&]P96X@;W5T<'5T(&9I;&4@)7,* $-O=6QD
  732. XM(&YO="!O<&5N(&EN<'5T(&9I;&4@)7,* ')F;3UF:7@ ;7)S/34Q,@!#;W5L
  733. XM9"!N;W0@;W!E;B!O=71P=70@9FEL92 E<PH 0DE,1CH@ $524D]2.B  5T%2
  734. XM3DE.1SH@ $9!5$%,.B  26YT97)N86P@97)R;W(@:6X@<')T97)R;W(H*0H 
  735. XM                                                            
  736. XM                                                            
  737. XM                                                            
  738. XM                                                            
  739. XM                                                            
  740. XM                                                            
  741. XM                              #\ 9ZNB%X6_SP*  ">[^[Y__]3T:P$
  742. XM QD)T:P$!!0#,8, WV.>_U(*  !2^P%BWZ,\^P%BWZ-R^P%BW\.W /L!8M_#
  743. XMZ0#[ 6+?PQ !^P%BW\-6 ?L!8M_#DP'[ 6+?PZ(!^P%BW\/G ?L!8M_#*0+[
  744. XM 6+?PVP"^P%BW\.A OL!8M_#[P+[ 6+?PR\#^P%BW\-P _L!8M_#M@/[ 6+=
  745. XM ?L!_\<)  #0K A5T*4(5M"E!%?1K 0#$D'05E3=5/L!_YT)  #64-U0^P'_
  746. XMC@D  -!04A,-W53=4OL"_X8)   1 M12T%)4W3O=5/L"_Y )  #54!,(E& 1
  747. XM!-"E#%219X]L$A+=5MU4^P+O"P$  -!06#'?  &19X]B$A+=5MU4^P+O5P, 
  748. XM -!06#''  &:CV:N<-[#Q0-4T%=2D:YPCV43#I&N<(]W$P>1KG"/9A(+W\.<
  749. XM!/L!_R,)  "8KG!0SU"/90   !(S %, 8P!C &, 8P!C &, 8P!C &, 8P!C
  750. XM &, 8P!C &, 8P!# !$[U5 !%^]J_O\_U5#?PZ,$^P'_V0@  !$RU5 !W\.K
  751. XM!/L!_\D(   1(M50 =_#M03[ ?^Y"   $1+54 '?P[T$FH]F?OL"[^$%  #=
  752. XM4MU4^P+_F@@  )&N<(]F$@G=+/L!_WH(  #16(______$@_?P]L#FH]W?OL"
  753. XM[ZX%  #= ?L!_UD(  "8CP%0!'P GLZTWUZ>[]OW__]3W\,.!-VL"/L"_SP(
  754. XM  #04%43 S'& )J/9JY$WL,0!%30K A2D:Y$CV43#I&N1(]W$P>1KD2/9A(+
  755. XMW\.<!/L!_Q((  "8KD10SU"/90   !(R %( 8@!B &( 8@!B &( 8@!B &( 
  756. XM8@!B &( 8@!B &( 8@!" !$ZU5 7[UK]_S_54-_#HP3[ ?_)!P  $3+54 '?
  757. XMPZL$^P'_N0<  !$BU5 !W\.U!/L!_ZD'   1$M50 =_#O02:CV9^^P+OT00 
  758. XM -U2W53[ O^*!P  D:Y$CV82"=TL^P'_:@<  -_#+@3=K 3[ O]@!P  T%!4
  759. XM$P,QQ@":CV:N0-[#, 16T*P$4I&N0(]E$PZ1KD"/=Q,'D:Y CV82"]_#G 3[
  760. XM ?\V!P  F*Y 4,]0CV4    2,@!2 &( 8@!B &( 8@!B &( 8@!B &( 8@!B
  761. XM &( 8@!B &( 0@ 1.M50%^]^_/\_U5#?PZ,$^P'_[08  !$RU5 !W\.K!/L!
  762. XM_]T&   1(M50 =_#M03[ ?_-!@  $1+54 '?P[T$FH]F?OL"[_4#  #=4MU6
  763. XM^P+_K@8  )&N0(]F$@G=+/L!_XX&  #=53R/ "!^W0'?S?S?^P3_@@8  -!0
  764. XM4A4N =U4W5+= =_-_-_[!/]O!@  T%!2W54\CP @?MT!W\W\W_L$_U0&  #0
  765. XM4%(4T]U5^P'_.@8  -U4^P'_,08  -%2C_____\2!,X!4 344 0!! #""%[=
  766. XMK 3[ ?\)!@  UE#=4/L!__H%  #04%(3$-VL!-U2^P+_\04  -!24 344 35
  767. XM4'P GJZT7I[O>/7__U/= -VL"/L"_[\%  #04%;15H______$P,QQ@":CV:N
  768. XM1-[#3P14T*P(4I&N1(]E$PZ1KD2/=Q,'D:Y$CV82"]_#G 3[ ?^J!0  F*Y$
  769. XM4,]0CV4    2,@!2 &( 8@!B &( 8@!B &( 8@!B &( 8@!B &( 8@!B &( 
  770. XM0@ 1.M50%^_R^O\_U5#?PZ,$^P'_804  !$RU5 !W\.K!/L!_U$%   1(M50
  771. XM =_#M03[ ?]!!0  $1+54 '?P[T$FH]F?OL"[VD"  #=4MU4^P+_(@4  )&N
  772. XM1(]F$@G=+/L!_P(%  #?PW4$W\-M!-T W:P$^P3_V@0  -!05-%4C_____\3
  773. XM S'% )J/9JY WL-]!%70K 12D:Y CV43#I&N0(]W$P>1KD"/9A(+W\.<!/L!
  774. XM_\$$  "8KD!0SU"/90   !(Q %$ 80!A &$ 80!A &$ 80!A &$ 80!A &$ 
  775. XM80!A &$ 80!! !$Y 1?O"OK_/]50W\.C!/L!_WD$   1,M50 =_#JP3[ ?]I
  776. XM!   $2+54 '?P[4$^P'_600  !$2U5 !W\.]!)J/9G[[ N^! 0  W5+=5?L"
  777. XM_SH$  "1KD"/9A()W2S[ ?\:!   W5;=5/L"[QL   #04%+=5OL!__\#  #=
  778. XM5/L!__8#  #04E $U5#\ Y[.^/U>U%B>_\4#  !7T*P(5M[-_/UNWFY9/(\ 
  779. XM E744M55%48!PU)55-U4GT*^!-U6^P-GT%!3$@[=5)]"O@3=5OL#9]!04]53
  780. XM$Q_14X______$@7. 5(1 \!34M%2C_____\3!=%251F[T%)4%4[15(\  @  
  781. XM&!_05%#14(\  @  &!$!E$#-_/W64-%0CP "   9\-98/(\  G[?S?S]W:P$
  782. XM^P/_*P,  -!05-%4C_____\3!]58$@,Q4/_15(______$@3. 5 $U% $_ '"
  783. XM!%[44]ZL#%714V486=ZL"%30I !8WLP$ %>>_^$"  !6PU-E?I]#:-UG^P-F
  784. XMT%!2$A##4V5^GT.T -UG^P-FT%!2U5(3(-%2C_____\2!LX!4Q$$ <!24]%3
  785. XMC_____\3!=%391F[T%-0!-50 00 PB!>GN\]\O__4I"L!%"14(]E$PR14(]W
  786. XM$P:14(]F$@O?PIP$^P'_EP(  )BL!%#/4(]E    $C, 4P!C &, 8P!C &, 
  787. XM8P!C &, 8P!C &, 8P!C &, 8P!C $, $3O54 $7[][W_S_54-_"HP3[ ?]-
  788. XM @  $3+54 '?PJL$^P'_/0(  !$BU5 !W\*U!/L!_RT"   1$M50 =_"O02:
  789. XMCV9^^P+O5?___]VL#-VL"/L"_PP"  "1K 2/9A()W2S[ ?_L 0  !       
  790. XM                                                            
  791. XM                                                            
  792. XM                                                            
  793. XM                                                            
  794. XM                                                            
  795. XM                                                            
  796. XM                                                            
  797. XM                                                            
  798. XM                                  !     0         "(    E   
  799. XM  0                                               \    !    
  800. XM"@   "0!  !D 0  ]    !P   #\ P  G (  (P"   4    S $  &P   ",
  801. XM    M     0!  #$ @        $     $    0 -                    
  802. XM  !                                                         
  803. XM                                       '5D%80U)43           
  804. XM                                                            
  805. XM    !DQ)0E)43                                               
  806. XM                              9-5$A25$P                     
  807. XM                                                            
  808. XM                                                            
  809. XM                                               +O  '    !$))
  810. XM3$8+O@  "   !&UA:6X&OP 8 @  $+X & H   EC=G1S=')E86T&OP O @  
  811. XM#;X 2 P   9S=')D=7 &OP R    #;X ? P   9C=G1B:6X&OP#Z 0  #KX 
  812. XM> X   =C;VYV97)T!K\ T     Z^ $@/   '=FUS<F5A9 :_ &T    /O@"X
  813. XM#P  "'!R=&5R<F]R!K\ R0    FY"8<#$  (  "TN0 "!^WQ]/KZ^?GY^?GY
  814. XM^?GY^?GY^?GW @$ ^ (!_ (!^M+U_/[^ @'\^O+V\OP!Q@#W\?<"!?L"!?+O
  815. XM^P'& ._[ @$!Q@#F @'3[O?\ /T"!?\" OOH_O3\ /T"(/X" O/Q] '& .GT
  816. XM <4 \O?W_ ('_@(#^?[YH/X  @'W\_#^ .KW /GW_ #] @8  @7[_N/Q_O#\
  817. XM /?]_?WR_ ("_0("].H" ?7!\/#P\0(! //Y]PX! ;T                 
  818. XM                                                            
  819. XM                                                            
  820. XM                                                            
  821. X'            
  822. Xend
  823. END_OF_FILE
  824.   if test 7798 -ne `wc -c <'VMS/bilf/bilf.exe.uu'`; then
  825.     echo shar: \"'VMS/bilf/bilf.exe.uu'\" unpacked with wrong size!
  826.   else 
  827.     echo shar: Uudecoding \"'VMS/bilf/bilf.exe.uu'\" 
  828.     cat VMS/bilf/bilf.exe.uu | uudecode 
  829.     if [ -f VMS/bilf/bilf.exe.uu ]; then 
  830.        rm VMS/bilf/bilf.exe.uu 
  831.     fi 
  832.   fi
  833.   # end of 'VMS/bilf/bilf.exe.uu'
  834. fi
  835. if test -f 'zipinfo.1' -a "${1}" != "-c" ; then 
  836.   echo shar: Will not clobber existing file \"'zipinfo.1'\"
  837. else
  838.   echo shar: Extracting \"'zipinfo.1'\" \(5963 characters\)
  839.   sed "s/^X//" >'zipinfo.1' <<'END_OF_FILE'
  840. X.TH unzip 1 "ZipInfo version 0.96"
  841. X.SH NAME
  842. Xzipinfo - list detailed information about a ZIP archive file
  843. X.SH SYNOPSIS
  844. Xzipinfo [-1lv] file[.zip] [filespec...]
  845. X.SH ARGUMENTS
  846. X.in +12
  847. X.ti -12
  848. Xfile[.zip]  Path of the ZIP archive.  The suffix ``.zip'' is applied
  849. Xif the file specified does not exist.  Note that
  850. Xself-extracting ZIP files are supported; just specify
  851. Xthe ``.exe'' suffix yourself.
  852. X.sp 1
  853. X.ti -12
  854. X[filespec]  An optional list of archive members to be processed.
  855. XExpressions may be used to match multiple members; be sure to quote
  856. Xexpressions that contain characters interpreted by the UNIX shell. See
  857. XPATTERN MATCHING (below) for more details.
  858. X.SH OPTIONS
  859. X.nf
  860. X   -1  list filenames only, one per line (useful for pipes)
  861. X   -l  list files in Unix "ls -l" format:  default
  862. X   -v  list files in verbose, multi-page format
  863. X.fi
  864. X.SH DESCRIPTION
  865. X.B ZipInfo
  866. Xlists technical information about a ZIP archive, including information
  867. Xfile access permissions, encryption status, type of compression, version
  868. Xand operating system of compressing program, and the like.  The default
  869. Xoption is to list files in the following format:
  870. X.sp 1
  871. X.nf
  872. X.ti -5
  873. X-rw-rwl---  1.5 unx    2802 t-     538 defX 11-Aug-91 13:48 perms.2660
  874. X.fi
  875. X.sp 1
  876. XThe last three fields are clearly the modification date and time of
  877. Xthe file, and its name.  The case of the filename is respected; thus
  878. Xfiles which come from MS-DOS are always capitalized.  If the file was
  879. Xzipped with a stored directory name, that is also displayed as part of
  880. Xthe filename.
  881. X.sp 1
  882. XThe second and third fields indicate that the file was zipped under
  883. XUnix with version 1.5 of zip (not available, so don't ask--this is
  884. Xjust an example).  Since it comes from Unix, the file permissions at
  885. Xthe beginning of the line are printed in Unix format.  The uncompressed
  886. Xfile-size (2802 in this example) is the fourth field, and the compressed
  887. Xfile-size is the sixth (538).
  888. X.sp 1
  889. XThe fifth field consists of two characters, either of which may take
  890. Xon several values.  The first character may be either `t' or `b', indicating
  891. Xthat zip believes the file to be text or binary, respectively; but if the
  892. Xfile is encrypted,
  893. X.B ZipInfo
  894. Xnotes this fact by capitalizing the character (`T' or `B').  The second
  895. Xcharacter may also take on four values, depending on whether there is
  896. Xan extended local header and/or an ``extra field'' associated with the
  897. Xfile (explained in PKWare's APPNOTE.TXT).  If neither exists, the character
  898. Xwill be a hyphen (`-'); if there is an extended local header but no extra
  899. Xfield, `l'; if the reverse, `x'; and if both exist, `X'.  Thus the
  900. Xfile in this example is (apparently) a text file, is not encrypted, and
  901. Xhas neither an extra field nor an extended local header associated with it.
  902. XThe example below, on the other hand, is an encrypted binary file with an 
  903. Xextra field:
  904. X.sp 1
  905. X.nf
  906. X.ti -5
  907. XRWD,R,R     0.9 vms     168 Bx     165 shrk  9-Aug-91 19:15 perms.0644
  908. X.fi
  909. X.sp 1
  910. XExtra fields are used by PKWare for authenticity verification (?) and
  911. Xpossibly other purposes, and by an upcoming release of Info-ZIP's zip
  912. Xfor VMS (to store file attributes).  This example presumably falls into
  913. Xthe latter class, then.  Note that the file attributes are listed in
  914. XVMS format.  Other possibilities for the host operating system are
  915. XOS/2 with High Performance File System
  916. X(HPFS), and DOS or OS/2 with File Allocation Table (FAT) file system, denoted
  917. Xas follows:
  918. X.sp 1
  919. X.nf
  920. X.ti -5
  921. Xarc,hid,rdo,sys dos    4096 b-    2334 i4:2 14-Jul-91 12:58 EA DATA. SF
  922. X.ti -5
  923. Xarc,,rw,    1.0 os2    5358 Tl    1914 i4:3  4-Dec-91 11:33 longfilename.hpfs
  924. X.fi
  925. X.sp 1
  926. XFile attributes in both of these cases are indicated in a DOS-like format,
  927. Xwhere the file may or may not have its archive bit set; may be hidden or not;
  928. Xmay be read-write or read-only; and may be a system file or not.  If the
  929. Xattributes are too long, the version number of the encoding software is
  930. Xomitted.  (The information is still available in the verbose listing, 
  931. Xhowever.)
  932. X.sp 1
  933. XFinally, the seventh field indicates
  934. Xthe compression method and possible sub-method used.  There are six methods
  935. Xknown at present:  storing (no compression), reducing, shrinking, imploding,
  936. Xtokenizing, and deflating.  In addition, there are four levels of reducing
  937. X(1 through 4); four types of imploding (4K or 8K sliding dictionary, and
  938. X2 or 3 Shannon-Fano trees); and three levels of deflating (fast, normal,
  939. Xmaximum compression).
  940. X.B ZipInfo
  941. Xrepresents these methods and their sub-methods as follows:  ``stor'';
  942. X``re:1,'' ``re:2,'' etc.; ``shrk''; ``i4:2,'' ``i8:3,'' etc.; ``tokn'';
  943. Xand ``defF,'' ``defN,'' and ``defX.''
  944. X.sp 1
  945. XThe verbose listing is self-explanatory.  It also lists file comments and
  946. Xthe zipfile comment, if any.
  947. X.SH PATTERN MATCHING
  948. XAll archive members are listed unless a
  949. X.B filespec
  950. Xis provided to specify a subset of the archive members.
  951. XThe
  952. X.B filespec
  953. Xis similar to an egrep expression, and may contain:
  954. X.sp 1
  955. X.in +8
  956. X.ti -8
  957. X*       matches a sequence of 0 or more characters
  958. X.ti -8
  959. X?       matches exactly 1 character
  960. X.ti -8
  961. X\\nnn    matches the character having octal code nnn
  962. X.ti -8
  963. X[...]   matches any single character found inside the brackets; ranges
  964. Xare specified by a beginning character, a hyphen, and an ending
  965. Xcharacter.  If a '!' follows the left bracket, then the range
  966. Xof characters matched is complemented with respect to the ASCII
  967. Xcharacter set.
  968. X.SH TIPS
  969. XThe author finds it convenient to set up an alias ``ii'' for 
  970. X.B ZipInfo
  971. Xon systems which allow aliases, or else to set up a batch file ``ii.bat''
  972. Xor to rename the executable to ``ii.exe'' on systems such as MS-DOS which
  973. Xhave no provision for aliases.  The ``ii'' usage parallels the common
  974. X``ll'' alias for long listings in Unix, and the similarity between the
  975. Xoutputs of the two commands was intentional.
  976. X.SH AUTHOR
  977. XGreg Roelofs (also known as Cave Newt).
  978. X.B ZipInfo
  979. Xis partly based on
  980. XS. H. Smith's unzip and contains pattern-matching code from Thom
  981. XHenderson, but mostly it was written from scratch.
  982. END_OF_FILE
  983.   if test 5963 -ne `wc -c <'zipinfo.1'`; then
  984.     echo shar: \"'zipinfo.1'\" unpacked with wrong size!
  985.   fi
  986.   # end of 'zipinfo.1'
  987. fi
  988. if test -f 'zipinfo.man' -a "${1}" != "-c" ; then 
  989.   echo shar: Will not clobber existing file \"'zipinfo.man'\"
  990. else
  991.   echo shar: Extracting \"'zipinfo.man'\" \(7007 characters\)
  992.   sed "s/^X//" >'zipinfo.man' <<'END_OF_FILE'
  993. X
  994. X
  995. X
  996. Xunzip(1)                 USER COMMANDS                   unzip(1)
  997. X
  998. X
  999. X
  1000. XNAME
  1001. X     zipinfo - list detailed information about a ZIP archive file
  1002. X
  1003. XSYNOPSIS
  1004. X     zipinfo [-1lv] file[.zip] [filespec...]
  1005. X
  1006. XARGUMENTS
  1007. X     file[.zip]  Path of the ZIP archive.  The suffix ``.zip'' is
  1008. X                 applied  if  the  file specified does not exist.
  1009. X                 Note that self-extracting  ZIP  files  are  sup-
  1010. X                 ported;  just  specify the ``.exe'' suffix your-
  1011. X                 self.
  1012. X
  1013. X     [filespec]  An optional list of archive members to  be  pro-
  1014. X                 cessed.  Expressions may be used to match multi-
  1015. X                 ple members; be sure to quote  expressions  that
  1016. X                 contain   characters  interpreted  by  the  UNIX
  1017. X                 shell. See PATTERN  MATCHING  (below)  for  more
  1018. X                 details.
  1019. X
  1020. XOPTIONS
  1021. X        -1  list filenames only, one per line (useful for pipes)
  1022. X        -l  list files in Unix "ls -l" format:  default
  1023. X        -v  list files in verbose, multi-page format
  1024. X
  1025. XDESCRIPTION
  1026. X     ZipInfo lists technical information  about  a  ZIP  archive,
  1027. X     including  information  file  access permissions, encryption
  1028. X     status, type of compression, version and operating system of
  1029. X     compressing program, and the like.  The default option is to
  1030. X     list files in the following format:
  1031. X
  1032. X-rw-rwl---  1.5 unx    2802 t-     538 defX 11-Aug-91 13:48 perms.2660
  1033. X
  1034. X     The last three fields are clearly the modification date  and
  1035. X     time of the file, and its name.  The case of the filename is
  1036. X     respected; thus files which come from MS-DOS are always cap-
  1037. X     italized.   If  the  file was zipped with a stored directory
  1038. X     name, that is also displayed as part of the filename.
  1039. X
  1040. X     The second and third  fields  indicate  that  the  file  was
  1041. X     zipped under Unix with version 1.5 of zip (not available, so
  1042. X     don't ask--this is just an example).  Since  it  comes  from
  1043. X     Unix,  the file permissions at the beginning of the line are
  1044. X     printed in Unix format.  The uncompressed file-size (2802 in
  1045. X     this  example) is the fourth field, and the compressed file-
  1046. X     size is the sixth (538).
  1047. X
  1048. X     The fifth field consists of two characters, either of  which
  1049. X     may  take  on  several  values.   The first character may be
  1050. X     either `t' or `b', indicating that zip believes the file  to
  1051. X     be  text  or  binary,  respectively;  but  if  the  file  is
  1052. X
  1053. X
  1054. X
  1055. X                          ZipInfo version 0.96                  1
  1056. X
  1057. X
  1058. X
  1059. X
  1060. X
  1061. X
  1062. Xunzip(1)                 USER COMMANDS                   unzip(1)
  1063. X
  1064. X
  1065. X
  1066. X     encrypted, ZipInfo notes this fact by capitalizing the char-
  1067. X     acter  (`T'  or `B').  The second character may also take on
  1068. X     four values, depending on whether there is an extended local
  1069. X     header  and/or  an  ``extra field'' associated with the file
  1070. X     (explained in PKWare's APPNOTE.TXT).  If neither exists, the
  1071. X     character  will  be  a hyphen (`-'); if there is an extended
  1072. X     local header but no extra field, `l'; if the  reverse,  `x';
  1073. X     and  if  both  exist, `X'.  Thus the file in this example is
  1074. X     (apparently) a text file, is not encrypted, and has  neither
  1075. X     an  extra field nor an extended local header associated with
  1076. X     it.  The example below, on the other hand, is  an  encrypted
  1077. X     binary file with an extra field:
  1078. X
  1079. XRWD,R,R     0.9 vms     168 Bx     165 shrk  9-Aug-91 19:15 perms.0644
  1080. X
  1081. X     Extra fields are used by PKWare for  authenticity  verifica-
  1082. X     tion  (?)  and  possibly  other purposes, and by an upcoming
  1083. X     release of Info-ZIP's zip for  VMS  (to  store  file  attri-
  1084. X     butes).   This  example  presumably  falls  into  the latter
  1085. X     class, then.  Note that the file attributes  are  listed  in
  1086. X     VMS format.  Other possibilities for the host operating sys-
  1087. X     tem are OS/2 with High Performance File System  (HPFS),  and
  1088. X     DOS  or  OS/2  with File Allocation Table (FAT) file system,
  1089. X     denoted as follows:
  1090. X
  1091. Xarc,hid,rdo,sys dos    4096 b-    2334 i4:2 14-Jul-91 12:58 EA DATA. SF
  1092. Xarc,,rw,    1.0 os2    5358 Tl    1914 i4:3  4-Dec-91 11:33 longfilename.hpfs
  1093. X
  1094. X     File attributes in both of these cases are  indicated  in  a
  1095. X     DOS-like  format,  where  the  file  may or may not have its
  1096. X     archive bit set; may be hidden or not; may be read-write  or
  1097. X     read-only;  and  may be a system file or not.  If the attri-
  1098. X     butes are too long,  the  version  number  of  the  encoding
  1099. X     software is omitted.  (The information is still available in
  1100. X     the verbose listing, however.)
  1101. X
  1102. X     Finally, the seventh field indicates the compression  method
  1103. X     and  possible  sub-method used.  There are six methods known
  1104. X     at present:  storing (no compression), reducing,  shrinking,
  1105. X     imploding,  tokenizing,  and  deflating.  In addition, there
  1106. X     are four levels of reducing (1 through  4);  four  types  of
  1107. X     imploding  (4K or 8K sliding dictionary, and 2 or 3 Shannon-
  1108. X     Fano trees); and three levels of  deflating  (fast,  normal,
  1109. X     maximum  compression).  ZipInfo represents these methods and
  1110. X     their sub-methods as follows:  ``stor''; ``re:1,'' ``re:2,''
  1111. X     etc.;  ``shrk'';  ``i4:2,''  ``i8:3,''  etc.;  ``tokn''; and
  1112. X     ``defF,'' ``defN,'' and ``defX.''
  1113. X
  1114. X     The verbose listing is self-explanatory.  It also lists file
  1115. X     comments and the zipfile comment, if any.
  1116. X
  1117. X
  1118. X
  1119. X
  1120. X
  1121. X                          ZipInfo version 0.96                  2
  1122. X
  1123. X
  1124. X
  1125. X
  1126. X
  1127. X
  1128. Xunzip(1)                 USER COMMANDS                   unzip(1)
  1129. X
  1130. X
  1131. X
  1132. XPATTERN MATCHING
  1133. X     All archive members are listed unless a filespec is provided
  1134. X     to specify a subset of the archive members.  The filespec is
  1135. X     similar to an egrep expression, and may contain:
  1136. X
  1137. X     *       matches a sequence of 0 or more characters
  1138. X     ?       matches exactly 1 character
  1139. X     \nnn    matches the character having octal code nnn
  1140. X     [...]   matches any single character found inside the brack-
  1141. X             ets;  ranges are specified by a beginning character,
  1142. X             a hyphen, and an ending character.  If a '!' follows
  1143. X             the  left  bracket,  then  the  range  of characters
  1144. X             matched is complemented with respect  to  the  ASCII
  1145. X             character set.
  1146. X
  1147. XTIPS
  1148. X     The author finds it convenient to set up an alias ``ii'' for
  1149. X     ZipInfo  on systems which allow aliases, or else to set up a
  1150. X     batch  file  ``ii.bat''  or  to  rename  the  executable  to
  1151. X     ``ii.exe'' on systems such as MS-DOS which have no provision
  1152. X     for aliases.  The ``ii'' usage parallels the  common  ``ll''
  1153. X     alias  for long listings in Unix, and the similarity between
  1154. X     the outputs of the two commands was intentional.
  1155. X
  1156. XAUTHOR
  1157. X     Greg Roelofs (also known as Cave Newt).  ZipInfo  is  partly
  1158. X     based  on  S. H. Smith's unzip and contains pattern-matching
  1159. X     code from Thom Henderson, but mostly  it  was  written  from
  1160. X     scratch.
  1161. X
  1162. X
  1163. X
  1164. X
  1165. X
  1166. X
  1167. X
  1168. X
  1169. X
  1170. X
  1171. X
  1172. X
  1173. X
  1174. X
  1175. X
  1176. X
  1177. X
  1178. X
  1179. X
  1180. X
  1181. X
  1182. X
  1183. X
  1184. X
  1185. X
  1186. X
  1187. X                          ZipInfo version 0.96                  3
  1188. X
  1189. X
  1190. X
  1191. END_OF_FILE
  1192.   if test 7007 -ne `wc -c <'zipinfo.man'`; then
  1193.     echo shar: \"'zipinfo.man'\" unpacked with wrong size!
  1194.   fi
  1195.   # end of 'zipinfo.man'
  1196. fi
  1197. echo shar: End of archive 9 \(of 12\).
  1198. cp /dev/null ark9isdone
  1199. MISSING=""
  1200. for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
  1201.     if test ! -f ark${I}isdone ; then
  1202.     MISSING="${MISSING} ${I}"
  1203.     fi
  1204. done
  1205. if test "${MISSING}" = "" ; then
  1206.     echo You have unpacked all 12 archives.
  1207.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1208. else
  1209.     echo You still must unpack the following archives:
  1210.     echo "        " ${MISSING}
  1211. fi
  1212. exit 0
  1213. exit 0 # Just in case...
  1214.