21
;That first line is how many lines/record in this archiver.bb2 file...
;very important, do not change.  Allows future modifications to the
;file to be transparent to older programs.
;
;ARCHIVER.BB2, archiver control file for XBBS-OS/2, XGROUP and AV
;KEEP A COPY OF THIS ORIGINAL FILE FOR INFORMATION LATER!
;
;format for this archiver.bb2 file (each entry has 21 lines):
;
; 1st line:  ID of archiver (like ARC, LHARC, PKZIP, etc.; human consumption)
; 2nd line:  normal extension for archives (like ZIP, ARC, LZH; note no period)
; 3rd line:  offset into file to signature
; 4th line:  list command
; 5th line:  extract command
; 6th line:  extract w/ directories command
; 7th line:  test archive command
; 8th line:  add/create command
; 9th line:  add/create w/ paths command
;10th line:  add/create & recurse command
;11th line:  move command
;12th line:  move w/ paths command
;13th line:  delete command
;14th line:  signature (case sensitive, leading spaces count!
;15th line:  startlist string
;16th line:  endlist string
;17th line:  old size position  (all positions 0-based, -1 = not available)
;18th line:  new size position
;19th line:  file date position[,type of date (0 for none)]
;20th line:  number of positions in dates (for "03 June 92" would be 3)
;21st line:  file name position (absolutely required, of course; -1 = last pos)
;
;a semicolon demarks a comment.  they may appear at any point *except*
;within the 21 lines of an archiver entry.  comments are ignored by AV.
;
;note that all archiver strings should include the archiver's parameter to
;prevent it from stopping for input!  also note that archive types are checked
;in order of their listing in this file.  finally, this file is set up for
;the archivers I had lying around; if yours are different versions, you may
;have to modify this file.  All archivers are OS/2 (or FAPI) versions.
;DOS archivers may work with FM/2, but it'll be up to you to set them up.
;
;date types supported:
;--------------------
;02-08-96  23:55:32            1
; 8 Feb 96 23:55:32            2
; 8 Feb 96  11:55p             3
;96-02-08 23:55:32             4
;
;
;how archive listing works (for the curious):
;
;AV first tries to find a signature match.  failing that, it checks
;to see if the file might be an ARC-format file.  If the latter, READARC.CMD
;is spawned (by XBBS) with ARC as the first argument and v as the second,
;followed by the filename (AV spawns ARC directly).  If the former, the list 
;command is sent, followed by the filename.  AV (and XBBS) then parses the
;resultant file using the start and end list lines and offsets in file lines
;listed in this file for the given archiver.
;
;Warning:  I'm told there's a bug in some versions of 4OS2 that can cause
;a call to an archiver to fail if the archiver has an extension (i.e.
;UNZIP works, UNZIP.EXE doesn't).  If things fail for no apparent reason
;and you're using 4OS2 you might keep it in mind.
;
;Sample C code to access this information is in sample.c in the AV
;distribution archive, and is free for the using in your own projects.
;
;-----------------Archiver data begins-----------------------
;
;This entry is for Zoo 2.1
;
;NOTE:  Bug in Zoo 2.1 seems to cause files stored with paths to
;be extracted w/ paths even when you don't ask it to do so...
;
;
Zoo 2.1
ZOO
20
ZOO.EXE v
ZOO.EXE xO
ZOO.EXE xO/
ZOO.EXE -test
ZOO.Exe ah:
ZOO.EXE ah

ZOO.EXE aM:h
ZOO.EXE aMh
ZOO.EXE -delete
\xdc\xa7\xc4\xfd
--------  --- --------  --------- --------
--------  --- --------  --------- --------
0
2
3,2
3
-1
;
; This entry is for LHarc 2.22.  Supposedly fixes bugs in earlier versions.
; Actually seems to have done so.  Good work, Peter.
;
LHarc 2.22
LZH
2
LH.EXE /o l
LH.EXE /o x
LH.EXE /o /s x
LH.EXE t
LH.EXE /o a

LH.EXE /o /s a
LH.EXE /o m

LH.EXE /o d
-lh
  -------- --------  -----------------------------------------
  --------          -----------------------------------------
0
-1
1,4
1
2
;
; Duplicate entry is for LHarc 2.22 using LH32 filename.
;
LHarc-32 2.22
LZH
2
LH32.EXE /o l
LH32.EXE /o x
LH32.EXE /o /s x
LH32.EXE t
LH32.EXE /o a

LH32.EXE /o /s a
LH32.EXE /o m

LH32.EXE /o d
-lh
  -------- --------  -----------------------------------------
  --------          -----------------------------------------
0
-1
1,4
1
2
;
; This entry is for LHarc 2.22 self-extractors.
;
LHarc 2.22 SE
LZH
22963
LH.EXE /o l
LH.EXE /o x
LH.EXE /o /s x
LH.EXE t
LH.EXE /o a

LH.EXE /o /s a
LH.EXE /o m

LH.EXE /o d
-lh
  -------- --------  -----------------------------------------
  --------          -----------------------------------------
0
-1
1,4
1
2
;
; This entry is for LHA 2.12 (DOS) self-extractors since LH 2.22 seems to
; recognize them.
;
LHarc 2.12 DOS SE
LZH
1638
LH.EXE /o l
LH.EXE /o x
LH.EXE /o /s x
LH.EXE t
LH.EXE /o a

LH.EXE /o /s a
LH.EXE /o m

LH.EXE /o d
-lh
  -------- --------  -----------------------------------------
  --------          -----------------------------------------
0
-1
1,4
1
2
;
; This entry is for LHA 2.12 (DOS) self-extractors since LH 2.22 seems to
; recognize them.
;
LHarc 2.12 DOS SE
LZH
37
LH.EXE /o l
LH.EXE /o x
LH.EXE /o /s x
LH.EXE t
LH.EXE /o a

LH.EXE /o /s a
LH.EXE /o m

LH.EXE /o d
$LHarc's SFX
  -------- --------  -----------------------------------------
  --------          -----------------------------------------
0
-1
1,4
1
2
;
; This entry is for LHA 2.13L (DOS) self-extractors since LH 2.22 seems to
; recognize them.
;
LHarc 2.13 DOS SE
LZH
36
LH.EXE /o l
LH.EXE /o x
LH.EXE /o /s x
LH.EXE t
LH.EXE /o a

LH.EXE /o /s a
LH.EXE /o m

LH.EXE /o d
LHA's SFX 2.13L (c) Yoshi, 1991\r\n
  -------- --------  -----------------------------------------
  --------          -----------------------------------------
0
-1
1,4
1
2
;
;
;This entry is for LH2 2.11.
;
;NOTE:  sometimes will put a file into an archive more than once, necessitating 
;deleting both.  EAs not handled well, but at least they're handled.
;
LHarc 2.11
LZH
2
LH.EXE /o l
LH.EXE /o x
LH.EXE /o /s x
LH.EXE t
LH.EXE /o a

LH.EXE /o /s a
LH.EXE /o m

LH.EXE /o d
-lh
  -------- -------- -----------------------------------------
  --------          -----------------------------------------
0
-1
1
1
2
;
;
;This entry is for ZIP 1.9/UNZIP 5.0 (available in 32-bit versions)
;ZIP/UNZIP should work with PKZIP 2.04 files.  Saves EAs well.  Won't
;extract a file stored with path without the path (actually, this seems
;to be fixed now.  Maybe.  There are dozens of versions floating around;
;you don't pays your money and you takes your chances).  If you have a
;version that won't extract files with paths without the paths, there's
;a workaround -- change the line "UNZIP.EXE -jo" below to "UNZIP.EXE -o".
;Because of broken ZIP archives floating around everywhere, this is here
;without the version flag in the signature (should really be PK\x3\x4\x14).
;Damnit, it looks like Katz's own software is what does the botching.  So
;much for the keeper of the ZIP standard...  Zip still seems to have to
;have erratic problems with creating archives with some pathnames...
;
Zip/UnZip 1.9/5.0
ZIP
0
UNZIP.EXE -vUo
UNZIP.EXE -jo
UNZIP.EXE -o
UNZIP.EXE -to
ZIP.EXE -j9g
ZIP.EXE -9g
ZIP.EXE -r9g
ZIP.EXE -mj9g
ZIP.EXE -m9g
ZIP.EXE -d
PK\x3\x4
 ------  ------   ----  -----   ----    ----   ------     ----
 ------          ------  ---                              -------
0
2
4,1
2
7
;
;
;Duplicate entry is for ZIP 1.9/UNZIP 5.0 using 32 filenames.
;
Zip/UnZip-32 1.9/5.0
ZIP
0
UNZIP32.EXE -vUo
UNZIP32.EXE -jo
UNZIP32.EXE -o
UNZIP32.EXE -to
ZIP32.EXE -j9g
ZIP32.EXE -9g
ZIP32.EXE -r9g
ZIP32.EXE -mj9g
ZIP32.EXE -m9g
ZIP32.EXE -d
PK\x3\x4
 ------  ------   ----  -----   ----    ----   ------     ----
 ------          ------  ---                              -------
0
2
4,1
2
7
;
;
;This entry is for PKZIP 1.01
;
PK(Un)Zip 1.01
ZIP
0
PKZIP.EXE -v
PKUNZIP.EXE -o
PKUNZIP.EXE -o -d
PKUNZIP.EXE -t
PKZIP.EXE -a
PKZIP.EXE -a -P
PKZIP.EXE -a -p -r
PKZIP.EXE -m
PKZIP.EXE -m -P
PKZIP.EXE -d
PK\x3\x4\xa
 ------  ------   ----- -----   ----    ----   ------  ----  ----
 ------          ------  ---                                 -------
0
2
4
2
8
;
;
;This entry is for PKZIP 1.01 named PK(Un)Zip2
;
PK(Un)Zip2 1.01
ZIP
0
PKZIP2.EXE -v
PKUNZIP2.EXE -o
PKUNZIP2.EXE -o -d
PKUNZIP2.EXE -t
PKZIP2.EXE -a
PKZIP2.EXE -a -P
PKZIP2.EXE -a -p -r
PKZIP2.EXE -m
PKZIP2.EXE -m -P
PKZIP2.EXE -d
PK\x3\x4\xa
 ------  ------   ----- -----   ----    ----   ------  ----  ----
 ------          ------  ---                                 -------
0
2
4
2
8
;
;This entry is for unzipsfx self-extractors
;
unzipsfx

217
UNZIP.EXE -vUo
UNZIP.EXE -jo
UNZIP.EXE -o
UNZIP.EXE -to





ZIP.EXE -d
unzipsfx
 ------  ------   ----  -----   ----    ----   ------     ----
 ------          ------  ---                              -------
0
2
4,1
2
7
;
;
;This entry is for PKZIP self-extractors type 1
;
PK(Un)Zip SE #1

2934
PKZIP.EXE -v
PKUNZIP.EXE -o
PKUNZIP.EXE -o -d
PKUNZIP.EXE -t





PKZIP.EXE -d
PK\x3\x4
 ------  ------   ----- -----   ----    ----   ------  ----  ----
 ------          ------  ---                                 -------
0
2
4
2
8
;
;This entry is for PKZIP self-extractors type 2
;
PK(Un)Zip SE #2

12784
PKZIP.EXE -v
PKUNZIP.EXE -o
PKUNZIP.EXE -o -d
PKUNZIP.EXE -t





PKZIP.EXE -d
PK\x3\x4
 ------  ------   ----- -----   ----    ----   ------  ----  ----
 ------          ------  ---                                 -------
0
2
4
2
8
;
;
;
;This entry is for PKZIP self-extractors type 3
;
PK(Un)Zip SE #2

30948
PKZIP.EXE -v
PKUNZIP.EXE -o
PKUNZIP.EXE -o -d
PKUNZIP.EXE -t





PKZIP.EXE -d
PK\x3\x4
 ------  ------   ----- -----   ----    ----   ------  ----  ----
 ------          ------  ---                                 -------
0
2
4
2
8
;
;This entry is for Unarj 2.10 ported by Scott Dudley
;
(Un)Arj 2.10

0
UNARJ.EXE l
UNARJ.EXE e
UNARJ.EXE x
UNARJ.EXE t






\x60\xea
------------ ---------- ---------- ----- ----------------- -------- ---- ------
------------ ---------- ---------- ----- -----------------
1
2
4,4
1
0
;
;This entry is for Unarj 2.30 demo version.  Don't use Unarj 2.41; it's broken.
;
(Un)Arj 2.30 demo

0
UNARJ.EXE l
UNARJ.EXE e
UNARJ.EXE x
UNARJ.EXE t






\x60\xea
------------ ---------- ---------- ----- ----------------- -------- -----------
------------ ---------- ---------- ----- -----------------
1
2
4
1
0
;
;This entry is for Arj 2.00 (DOS)
; Note that other programs that use this control file may not be able to
; handle calling a DOS archiver correctly!  FM/2 is the only one that I
; know of which can at this time.  This means you may need to keep FM/2's
; ARCHIVER.BB2 separate from those for other programs.
;
Arj 2.00 DOS
ARJ
0
ARJ.EXE l
ARJ.EXE e -y
ARJ.EXE x -y
ARJ.EXE t
ARJ.EXE a -y -e
ARJ.EXE a -y
ARJ.EXE a -y -r
ARJ.EXE m -y -e
ARJ.EXE m -y
ARJ.EXE d -y
\x60\xea
------------ ---------- ---------- ----- ----------------- -------- ---- ------
------------ ---------- ---------- -----
1
2
4
1
0
;
;This entry is for ARC 5.12mpl
;
Arc 5.12mpl
ARC
0
ARC.EXE lwn
ARC.EXE ewn

ARC.EXE t
ARC.EXE awn


ARC.EXE mwn

ARC.EXE dwn
\x1a
============  ========  =========
        ====  ========
1
-1
2,3
3
0
;
;This entry is for ARC2 (6.0)
;Note that I don't actually have a copy of this...
;
Arc 6.0
ARC
0
ARC.EXE l
ARC.EXE ewn

ARC.EXE t
ARC.EXE awn


ARC.EXE mwn

ARC.EXE dwn
\x1a
=================  ========  =========
             ====  ========
1
-1
2
3
0
;
;
;Duplicate entry is for ARC2 (6.0) using ARC2 filename.
;
Arc 6.0
ARC
0
ARC2.EXE l
ARC2.EXE ewn

ARC2.EXE t
ARC2.EXE awn


ARC2.EXE mwn

ARC2.EXE dwn
\x1a
=================  ========  =========
             ====  ========
1
-1
2
3
0
;
;-----------------Archiver data ends-----------------------
;
;
; For possible future use:
;
; Squeeze-it signature:  (Offset 0)     \x48\x4C\x53\x51\x5Ah
; HA signature:          (Offset 0)     HA
; HAP signature:         (Offset 0)     \x913HF
; HPK signature:         (Offset 0)     HPAK
; SQZ signature:         (Offset 0)     HLSQZ
; DWZ signature:         (Offset -3)    DWC
;
; No OS/2 versions available yet to my knowledge...
;
;
;
;Notes on modifying/updating this file:
;=====================================
;
;You can add as many archivers as you like to this file.
;here are some suggestions on how to go about it:
;
;list an archive with the archiver, redirecting to a disk
;file (ex. "ARC l AFILE.ARC > TEMP.").  Load the resultant
;file into a text editor.  Clip out the startlist and endlist
;strings and paste directly into this file on the appropriate
;lines; prevents errors due to typos when copying manually.
;Count the positions of filename, date, etc. and place on the
;appropriate line.  Now run the archiver redirected to a file
;to get its help screen (ex. "ARC > TEMP." or "ZOO h > TEMP.").
;Look for the various command options (extract, list, etc.) and
;put them into the file on the appropriate lines -- remember to
;add the modifiers to prevent the archiver from stopping to ask
;questions!  You could be in deep doo-doo if it's a detached
;process.  While it may seem a pain in the arse to have to
;edit this file when an archiver changes its command structure
;or list format, at least it's something within your control;
;you don't have to wait for an update to AV.  That means if I
;die tomorrow you'll still be able to use AV for years to come.
;
;Here's an example of an ARC listing (5.12mpl, command "ARC l"):
;
;----------------cut here----------------------
;Name          Length    Date
;============  ========  =========    <--this line is start-of-list
;MAKEFILE           374  28 Nov 89
;QSORT.C          14279  29 Nov 89
;QSORT.EXE        24629  29 Nov 89
;STUFF.H            371  29 Nov 89
;        ====  ========               <--this line is end-of-list
;Total      4     39653
;----------------cut here----------------------
;
;Note the filename is in position 0, old length in position 1, and the
;date starts in position 2, with 3 parts, and there's no new length
;field (so it'd be -1).  Compare that to the archiver entry for
;ARC 5.12mpl above and you should get a feel for what all those fields
;mean.  Here's a diagram of how a file line breaks down:
;
;STUFF.H            371  29 Nov 89
;  ^                 ^   ^
;  |                 |   |
;  |                 |   +--Date starts in field 2, 3 parts (29, Nov, and 89)
;  |                 |
;  |                 +--Old file length, field 1
;  |
;  +--Filename, field 0 (count from 0, not 1)
;
;
;If you're adding an entirely new archive format, note that you can
;use 'C'-style \x<hexnumber> on the signature line in this file.
;For example, the \x1a in ARC 5.12mpl's signature line means AV will
;look for an ASCII 26 (text EOF marker) in position 0 (first byte, as
;indicated by ARC's line 3, the offset into a file for the signature)
;of a file to determine if it's an archive.  If line 3's offset is
;negative, AV looks from the end of the file instead of the beginning.
;You can usually figure out what an archiver's signature is by looking
;at a few archives with a file viewing program like Vernon Buerg's 
;LIST.  By all means send me anything new you figure out for inclusion
;in future releases.
;
;
;You can have several entries for one type of archive in this file.  AV
;tries entries sequentially to list the file until it finds one that works.
;If the first entry for a signature doesn't work, and AV finds one that
;does, it moves that entry to the top of the list and rewrites ARCHIVER.BB2
;to make future accesses faster.  This allows me to list everything I can
;get entries for and let AV sort out what the user actually has that works.
;It also lets you, the user, create archives with more than one archiver that
;produces the same sort of archive (or with different switches, like one with
;LHArc producing -lh5- compression and one with it producing old, compatible
;-lh1- compression).
;
;
;always end file with blank line or comment
