home *** CD-ROM | disk | FTP | other *** search
-
- page 1
-
-
- PolyXarc
- v2.1 5 April 1991
- Public domain by Jeffrey J. Nonken
- OS/2 port by Bill Andrus
-
- By giving this away, complete with source code and docs, I hope
- to encourage others to do likewise. I think we can all gain in
- the long run by sharing. Public Domain means that nobody owns it.
- You can give it away, sell it, incorporate bits into other
- programs, whatever you want. However, in the interests of program
- management, I request that if you make changes that may benefit
- others, you
- 1) Share them with us;
- 2) Send me a copy of source so I can make an 'official' release.
-
- Warranty: none.
-
- Address netmail to 1:273/715 in Fidonet. If you wish to log on,
- call (215)279-9799 (300/1200/2400/9600/14400 HST/V.32), PCPable.
- You can get the latest distribution version of PolyXarc by file
- requesting POLYXARC from 1:273/715. If you wish to send anything
- via U.S. Snail, write to:
-
- Jeffrey J. Nonken
- 1706 Cherrie Circle
- Blue Bell, Pa. 19422-3412
-
- NOTE: Version 2.0 has major changes in the configuration file
- syntax. VERSION 1.x CONFIGURATION FILES WILL NOT WORK WITH 2.x! I
- have made no attempts to detect old configuration files and
- provide correction or warning; that would complicate and enlarge
- PolyXarc unnecessarily. It is up to you to make sure your
- configuration files have been replaced or updated. Version 2.0
- configuration files will work just peachy with version 2.1.
-
- WHAT IT IS
- ==========
- "Poly" means "many", and "Xarc" means "archive extractor".
- PolyXarc is a program that permits automatic extraction of most
- known archive formats. By "Xarc" I do not specifically refer to
- SEA's ARC or XARC programs or the file format supported by ARC
- (which I will refer to as ".ARC format" herein), although
- PolyXarc supports both. The purpose of this program is to allow
- Fidonet BBS system operators to automatically extract bundles
- that have been made with various archive programs. Traditionally
- sysops have used one .ARC format program or another. But recent
- improvements in compression techniques, along with a rapidly
- climbing volume of echomail, have encouraged sysops to look at
- other programs.
-
- It is not my purpose to praise or encourage the use of one
- archive format over another. In fact, the whole purpose of
- PolyXarc is to support as wide a variety as possible.
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 2
-
-
- PolyXarc does not itself extract archive files; PolyXarc
- identifies which format is being used and calls on the
- appropriate archive extractor program to do the actual work. In
- this lies its flexibility. Think of PolyXarc as an "Archive
- Extractor Executive".
-
- PolyXarc is a direct replacement for SPAZ v1.40 (developed by Dan
- Thomson and Andrew Farmer), except that PolyXarc is much larger
- (about 35k vs. 6k) and may not work in cases where memory is at a
- premium. However, PolyXarc is more versatile and much more
- flexible.
-
- PolyXarc's main features are:
- - Automatic stand-alone mail bundle extraction;
- - Small and fast;
- - Flexible and adaptable.
-
- PolyXarc can find all mail bundles in a specified directory and
- de-archive all of them. In addition, PolyXarc can sort version
- 5 .ARC files by their date/timestamps before beginning extraction
- to assure that the packets are, as much as possible, extracted in
- the correct order. PolyXarc also gives you the choice of limiting
- the number of archives that it extracts in a session so that you
- can process them a few at a time instead of all at once.
-
- I tried to write PolyXarc to be as flexible and expandable as I
- could within reason. Unlike most multi-archive mail unbundlers,
- except for some .ARC format recognition, PolyXarc does not have
- any specific format recognition built in. Instead, PolyXarc has a
- configuration file that contains signature strings and command
- line templates, allowing you to expand PolyXarc's capabilities
- without having to write any code. In addition, you can customize
- PolyXarc's recognition of .ARC format compression flags, and tell
- it which program to use for which flag. However, if all else
- fails, and you come upon a format for which PolyXarc cannot be
- configured, you can alter the source to accomodate it, for I have
- released the source code to the public domain. This gives
- unlimited permission for anybody to alter it, providing a
- permanent upgrade path.
-
- If the explanations in this document don't make sense, take a
- look at POLYXPLN.DOC; it picks apart the config file and explains
- some details about the archivers.
-
- HOW TO USE IT
- =============
- PolyXarc's syntax is:
-
- PolyXarc [switches] archive [name [name...]] [switches]
-
- Recognized switches are:
- -Cconfig -I -O
- -D -Maddr -R
- -F[n] -N -Q
- -#
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 3
-
-
-
- archive
-
- This is the name of the archive file you wish to extract from, or
- if you specify the -F switch, the path where mail bundles are
- kept. In the former case (not using -F) wildcards are supported,
- and if you do not supply an extension, PolyXarc will assume an
- extension of ".*". In the latter case (using -F), you must
- specify a path ONLY, not a file name. Also, if you specify -F you
- may leave the archive path out completely and it will default to
- the current directory.
-
- name...
-
- This is one or more names of files within the archive. If you
- list more than one name, they should be separated by spaces.
- These are optional. If left off, most extractors will assume that
- you want to extract all files. You must list the archive name
- (above) before listing individual file names. PolyXarc considers
- any parameter that does not start with a switch character ('-' or
- '/') to be a file name or archive name.
-
- -Cconfig
-
- This is the file that contains signature information for
- PolyXarc. If it is not in your current subdirectory you must
- supply a path to it as well. The file name must follow the switch
- with no intervening spaces. If you do not specify -C on the
- command line, PolyXarc will look first for POLYXARC.CFG in the
- current directory, then in the directory of the .EXE file, and if
- not found will then look for a PENGUIN file (described later).
-
- -D
-
- Specifying this will cause PolyXarc to delete any archive file it
- successfully has extracted. Specifying the /F parameter causes /D
- to be enabled unconditionally.
-
- -F[n]
-
- -F will cause PolyXarc to extract all the mail bundles it can
- find in the subdirectory specified by 'archive'. If you specify a
- number after the F (like "-F2"), PolyXarc will extract up to that
- number of mail bundles. In this case 'archive' (above) must be a
- path, not a filename. Specifying -F also forces -D and -O, and
- disables -N.
-
- -I
-
- I really mostly intended this for use in some manual modes. This
- switch will cause PolyXarc to ignore errors returned from the
- archivers.
-
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 4
-
-
- -Maddr
-
- This causes PolyXarc to calculate and display the net address of
- the sender of each bundle. 'addr' is your netmail address, net
- and node only. Example: -M273/715.
-
- -N
-
- Specifying this causes PolyXarc not to attempt to sort an .ARC
- format file. Normal action is to sort all .ARC format files (the
- files inside the archive) by the date and time stamps. Specifying
- -F will override -N and cause PolyXarc to sort the files. Note
- that PolyXarc will not sort ARC version 6 files.
-
- -O
-
- This is the overwrite flag. If the archiver finds that a file it
- is extracting already exists, this flag will cause it to
- overwrite the old file without prompting. Specifying the -F
- parameter causes -O to be enabled unconditionally.
-
- -R
-
- This is the same as -O. I included it to maintain ARCE syntax
- compatibility for people who want to call PolyXarc from within
- other programs (such as Opus 1.0).
-
- -Q
-
- Specifying -Q causes PolyXarc not to display most status and
- configuration messages. Error messages will still be displayed.
-
- -#
-
- Normally when you invoke the -F switch, PolyXarc will unbundle
- files with extensions starting with .MO, .TU, etc. and ending
- with any character. If you add the -# switch, PolyXarc will only
- unbundle files ending with a decimal digit (0-9).
-
- NOTE: None of these switches is position dependent or
- case sensitive. Any may be specified with a hyphen (-)
- or a slash (/). If you specify a question mark (?) as
- the first parameter, you will get a brief help message
- and no processing will be done.
-
- PolyXarc requires a single configuration file. This file gives
- PolyXarc enough information to recognize various archive formats
- by looking for specific 'signatures'. There are three ways to
- specify the configuration file name:
- - just have POLYXARC.CFG in the current directory, or in the
- directory with POLYXARC.EXE;
- - use the -C switch to specify it on the command line;
- - use a PENGUIN file.
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 5
-
-
- Doug Boone has proposed an idea that I like; rather than
- proliferate configuration files, gather as many as possible into
- one file. His implementation requires you to specify the file in
- an environment variable called PENGUIN. PolyXarc may use the
- PENGUIN technique if you have set the environment variable.
-
- This is how PolyXarc decides which technique to use: if you
- specify a file on the command line using the -C parameter,
- PolyXarc will use that file. If you don't specify the -C
- parameter, PolyXarc will look for POLYXARC.CFG in the current
- directory. If it doesn't exist, PolyXarc will then look in the
- directory that it was executed from. If it isn't there either,
- PolyXarc will look for the PENGUIN environment variable. If it
- exists, PolyXarc will use that file; otherwise, it will exit with
- an error.
-
- To set the environment variable, you would put a statement like
- this into your AUTOEXEC.BAT file:
-
- SET PENGUIN=D:\OPUS\PENGUIN.CFG
-
- There are three keywords that PolyXarc recognizes in the
- configuration file, one of which has three variations, plus BEGIN
- and END statements. PolyXarc will not recognize any keywords
- until it sees a BEGIN POLYXARC statement, and will ignore
- anything after an END POLYXARC statement until it sees another
- BEGIN POLYXARC, if any. You may have as many of these blocks as
- you want in the configuration file, and they may overlap other
- programs' blocks if you wish. PolyXarc will ignore anything it
- doesn't recognize. The keywords are:
-
- ARC
- ARC5 (same as ARC)
- ARC6
- SIGNATURE
- NOSORT
-
- Before I describe the keyword syntaxes, let me explain the
- command templates they use. A command template is a description
- of the command line used to call a certain program. The general
- syntax of a command line consists of the command, followed by one
- or more parameters, the overwrite flag key, the extract flag key,
- the filename key, and/or the extractname key. The parameters and
- keys may be in different orders depending on the syntax of the
- particular archive extractor you are using.
-
- The command is the actual DOS command used to run the program
- (such as "ZOO" or "ARCE"). The parameters are any parameters
- needed to cause an extraction. The extract flag key is actually
- an 'insert flag' that tells PolyXarc where to put the extract
- switch if it is needed. The extract flag key is "%1". The
- overwrite flag key, "%2", tells PolyXarc where to put the
- overwrite switch if it is needed. The filename key, "%3", is the
- name of the archive to extract from, and is also an insert flag.
- The extractname key, "%4", is a list of names of files to extract
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 6
-
-
- from the archive. Another way of looking at it is that you take
- the general syntax for the particular archiver, put a %1 in place
- of the extract switch (if any... most archivers will not actually
- use this field), a %2 in place of the overwrite switch, a %3 in
- place of the archive filename, and a %4 where the list of files
- would be if you wanted to specify which files to extract. The
- actual order of these parameters depends on what each particular
- archiver expects to see.
-
- As mentioned above, most extractors will not need the extract
- flag key. In most cases, the extractors have an extract command
- (either explicit or implied) that is used whether you want
- automatic overwrite or not; to overwrite, you use the overwrite
- command in addition to the extract command. I have not seen any
- archive extractor that uses a separate command for extract-
- without-overwrite versus extract-with-overwrite; nevertheless, I
- would rather include support for a redundant parameter now than
- have to 'fix' it later. In any case, the extract flag key will
- only be used if overwrite option is not invoked on PolyXarc's
- command line, and the overwrite flag key will only be used if the
- overwrite option is invoked. If there is an extract command that
- is used whether or not overwrite is invoked, then you should
- include it as a permanent part of the template for that command.
-
- General syntax for the ARC keywords:
-
- ARC level overwrite extract command_template
- ARC5 level overwrite extract command_template
- ARC6 level overwrite extract command_template
-
- PolyXarc recognizes .ARC format files internally. The ARC command
- spec defines a level (known as a 'header type' by the .ARC
- compatible programs) at which a certain program should be
- executed. ARC programs will generally extract any level of
- compression up to the level they are capable of. For example, ARC
- version 5 and ARCE will extract up to level 8; ARC version 6,
- PKXARC, and PKUNPAK will extract up to level 9; PAK will extract
- up to level 11. Specify the appropriate level for each extractor
- you will be using. Note that you need not supply all the
- extractors you have available; for example, PAK will extract all
- your version 5 .ARC files. However, due to speed or memory you
- may want to specify several archivers so that the smallest or
- fastest may be used whenever possible.
-
- ARC version 6 is a special case. SEA introduced an extended
- header format that allows non-file information to be added.
- Version 5 programs such as PKPAK and PAK cannot deal with these
- formats and will exit with an error if you try to use them on
- version 6 files. Version 2.0 of Polyxarc also does not know how
- to deal with these files. However, even version 6 ARC files have
- different levels, and PAK, a strictly version 5 archiver, uses
- compression levels that are incompatible with ARC version 6
- ARC+PLUS. So if PolyXarc 2.1 detects version 6 information in
- an .ARC file, it will look for an archiver with an ARC6 keyword.
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 7
-
-
- ARC version 6 programs can extract version 5 files. Unfortunatly,
- PAK level 10 is incompatible with ARC+PLUS level 10. So PolyXarc
- tries to use version 5 archivers for version 5 files if they are
- specified. If no version 5 archiver in your config file will
- extract the version 5 archive, PolyXarc will attempt to apply a
- version 6 archiver to the file. Note that PolyXarc will never
- attempt to use a version 5 archiver to extract a version 6
- archive.
-
- Please note that unlike PolyXarc version 2.0, PolyXarc version
- 2.1 does not need the .ARC format signature lines listed in any
- particular order. Version 2.1 now automatically sorts the
- signatures once it reads them in. All you have to do is get the
- levels and versions right.
-
- If this is confusing to you, imagine how difficult it is trying
- to describe it! But if you use the commands in the distributed
- POLYXARC.CFG file you should be ok. You may also read
- POLYXPLN.DOC for some more detailed explanations.
-
- An example of mixed ARC lines (remember, ARC and ARC5 are the
- same):
-
- ARC5 8 /r "" arce %3 %4 %2
- ARC 11 /WA "" pak /e %2 %3 %4
- ARC6 10 /o "" xarc %2 %3 %4
-
- Ok, back to the syntax descriptions. A reminder of what the
- signature lines look like:
-
- ARC level overwrite extract command_template
- ARC5 level overwrite extract command_template
- ARC6 level overwrite extract command_template
-
- Overwrite is the parameter this particular archive program needs
- in order to automatically overwrite existing files while
- extracting. The overwrite parameter must be 5 characters or less.
-
- Extract is the parameter this particular archive program needs in
- order to extract files. This is only used for programs which use
- different commmands for 'extract' and 'extract overwrite'. The
- extract parameter must be 5 characters or less.
-
- In most cases you will not need the extract parameter. However,
- there must be something defined for each field, whether it is
- used or not. In my distributed configuration file I simply put in
- an empty string ("") as a place holder.
-
- The command template defines the command line (including the name
- of the arc file) used to invoke the necessary de-archiver.
-
- Here are some examples from the distributed configuration file:
-
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 8
-
-
- ARC 8 /r "" arce %3 %4 %2
- ARC 9 /r "" pkunpak %2 %3 %4
- ARC6 10 /o "" xarc %2 %3 %4
- ARC 11 /WA /WO pak /e %1%2 %3 %4
-
- Here is the PAK command line that PolyXarc might generate, first
- with overwrite enabled, then without:
-
- pak /e /WA 0000FFFB.MO2
- pak /e /WO 0000FFFB.MO2
-
- Here is the PKUNPAK command line in the same order:
-
- pkunpak /r 0000FFFB.MO2
- pkunpak 0000FFFB.MO2
-
- General syntax for the SIGNATURE keyword:
-
- SIGNATURE type offset signature overwrite extract template
-
- This command allows PolyXarc to automatically recognize different
- compressor archive formats without being locked into any
- particular format or set of formats. Note that you should not try
- to define a SIGNATURE for .ARC format files, as they are
- recognized internally. The different signatures will be looked
- for in order of definition, with .ARC files coming last.
-
- Offset is the offset into the file of the signature. If offset is
- preceeded by a '-' (minus sign), PolyXarc will count backwards
- from the end of the file.
-
- Signature is the text of the signature. The signature parameter
- must be 5 characters or less.
-
- Overwrite is the parameter this particular archive program needs
- in order to automatically overwrite existing files while
- extracting. The overwrite parameter must be 5 characters or less.
-
- Extract is the parameter this particular archive program needs in
- order to extract files. This is only used for programs which use
- different commmands for 'extract' and 'extract overwrite'. The
- extract parameter must be 5 characters or less.
-
- In most cases you will not need the extract parameter. However,
- there must be something defined for each field, whether it is
- used or not. In my distributed configuration file I simply put in
- an empty string ("") as a place holder.
-
- The command template defines the command line (including the name
- of the arc file) used to invoke the necessary de-archiver.
-
-
-
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 9
-
-
- Here are some examples from the distributed configuration file:
-
- SIGNATURE -3 DWC w "" dwc e%2 %3 %4
- SIGNATURE 2 -lh /mc "" lharc e %2 %3 %4
- SIGNATURE 0 ZOO O "" zoo x%2 %3 %4
- SIGNATURE 0 PK -o "" pkunzip %2 %3 %4
- SIGNATURE 0 PK /WA /WO pak /e /z %1%2 %3 %4
- SIGNATURE 0 <60EA> -y "" arj e %2 %3 %4
-
- An expanded Zoo command line would look like this, first without,
- then with overwrite:
-
- zoo x 0000FFFB.MO2
- zoo xO 0000FFFB.MO2
-
- The NOSORT keyword syntax is:
-
- NOSORT
-
- If specified, NOSORT causes PolyXarc not to attempt to sort .ARC
- format files. (Notice that PolyXarc will not attempt to sort
- version 6 archive files in any case. That is because only one
- obsolete version 5 program, PKARC/PKPAK, sorts alphabetically
- when adding to an archive, and because some extended version 6
- headers are position dependent.) This is almost identical to the
- -N switch on the command line. If neither is specified, PolyXarc
- will attempt to sort the files in .ARC format archives by date
- and time in order to keep mail packets in chronological order.
- This is in case the sender used PKPAK or PKARC to pack his mail;
- they will sort the files in the archive alphabetically, which
- occasionally causes messages to get out of order. Note that while
- the -F switch will override the -N switch, the NOSORT keyword
- overrides the -F switch, causing PolyXarc never to sort.
-
- PolyXarc allows some special character sequences in the config
- file. The two main sequences are: quoted strings, and hex
- numbers. These are a lot easier to use than to explain, but if
- you want to skip ahead there is a summary at the end of this
- explanation.
-
- Normally PolyXarc just treats a character as a character. For
- example, this line:
-
- SIGNATURE 0 PK /WA /WO pak /e /z %1%2 %3 %4
-
- is interpreted exactly as you would think. One or more spaces or
- tabs separate each parameter on the line. Since the template is
- the last parameter on the line, we always know where it starts,
- and everything after that is part of the template, so we can
- imbed spaces into the template with impunity. However, there are
- times when you may need to imbed spaces into a parameter other
- than the template. In that case you must enclose the parameter in
- quotes. For example, if you had a signature with a space:
-
- NEW 1
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 10
-
-
-
- You would have to put quotes around it in the config file,
- something like this:
-
- SIGNATURE 0 "NEW 1" -o -e NEW %1%2 %3 %4
-
- This also allows you to include an empty string in the config
- file. For example:
-
- SIGNATURE 0 PK -o "" pkunzip %2 %3 %4
-
- Notice that instead of an extraction parameter, there are two
- double-quotes. PolyXarc sees the quotes and knows there's a
- parameter there, but since there's nothing between them, PolyXarc
- will store an empty string. That way if you accidentally include
- that parameter in the template, nothing will happen; and even if
- you don't, the parameter will not take up any room in memory.
-
- Note that you don't have to put the whole string in quotes. For
- example, you can put "NEW 1" as NEW" 1"; once PolyXarc sees the
- first quote, it will continue ignoring spaces until it sees the
- second quote. Also note that you MUST have a closing quote, or
- PolyXarc will keep going until the end of the line, and the rest
- of the parameters on that line will be lost.
-
- Besides using quotes, you can also imbed hex numbers in a
- parameter instead of just using printable characters. For
- example:
-
- SIGNATURE 0 <60EA> -y "" arj e %2 %3 %4
-
- This program's signature consists of two characters, one of them
- unprintable, at the beginning of the file. Instead of making you
- try to imbed the second character directly into the config file
- with a fancy editor, I've allowed you to describe the character
- by giving its ASCII value in hexadecimal. When PolyXarc sees a
- less-than character (<), it goes into Hex mode and starts
- interpreting the following characters as hex numbers, until it
- sees a greater-than character (>) or reaches the end of the line.
- Notice that this is like the quote feature, in that you don't
- have to make the entire parameter hex if you have some printable
- characters. In the example above, the first character is actually
- printable; you could define it like this instead:
-
- SIGNATURE 0 `<EA> -y "" arj e %2 %3 %4
-
- Now there are a few more rules for hex digits. First of all,
- PolyXarc expects that the hex digits will be in pairs. One pair
- of digits describes a character. You can define an odd number of
- digits, but you may not get the results you expect. For example,
- <615> is not the same as <0615> or <6150>; it is the same as
- <6105>. Your best bet is to use character pairs, or see the next
- rule.
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 11
-
-
- Another rule is that anything that isn't a (>) or a hex digit
- will break a character description, assume that it's finished,
- and start on the next character. For example, <6 15> is the same
- as <0615> is the same as <06 15> is the same as < 6,15>. The
- spaces and commas act as separators. This provides a handy visual
- breakup.
-
- Now, it is possible that you will want to have the characters "
- or < in one of your signatures. To accomodate that I added the
- "literal" character, which is a backslash (\). When encountered
- in normal mode or inside a quote, the backslash tells PolyXarc to
- take the next character literally. This way you can imbed the
- quote or less-than characters without having to go into hex mode
- and describe them in hex. If you want to imbed a backslash,
- simply include two backslashes: \\. PolyXarc will see the first
- one as a directive ("take the next character literally") and then
- take the second one as a character.
-
- Limitations: You cannot change modes between hex and quoting in
- the middle of a quote or hex sequence. If you are in a hex
- sequence and want to start a quote you must first end the hex
- sequence. If you are in a quote string you cannot imbed a hex
- sequence; you must end the quote. A '<' in the middle of a quote
- is treated as a normal character. For example:
-
- <4142> converts to "AB"
- <41>B converts to "AB"
- A<42> converts to "AB"
- "A"<42> converts to "AB"
- <41>"B" converts to "AB"
- "A<41>" converts to "A<41>"
- <41"B"> converts to "A." (where . is actually an unprintable
- character with a numeric value of 0B)
-
- Here is a summary of the rules:
-
- - A whitespace character is a space or tab.
- - Normally, each non-whitespace character is simply treated as a
- character.
- - If you place double-quotes (") around a string or part of a
- string, that string will be accepted intact, including
- whitespace.
- - If you imbed a backslash ('\'), the backslash will be thrown
- away and the next character will be accepted as a character.
- This allows you to imbed the double-quote (") and less-than
- (<) characters as regular characters. To use a backslash as
- part of a string you must imbed two backslashes ('\\'); this
- will translate to a single backslash.
- - If you place a less-than sign (<) in a string, the following
- characters will be considered to be 2-digit hex numbers until
- a greater-than sign (>) is reached. A hex digit is any numeric
- digit (0-9) or any letter from A to F (a-f or A-F). Normally
- the hex digits will be taken in pairs, but if any other
- character is imbedded, it will be considered to be a number
- break and the next digit will start the next number.
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 12
-
-
-
- TECHNICAL SECTION
- =================
- PolyXarc figures out what format is being used by looking for
- certain characteristics in the file. For example, each PKZIP
- format file has "PK" as the first two bytes in the file. All .ARC
- format files have a hex 1A value as the first byte. The SIGNATURE
- lines in the configuration file describe what to look for, where
- to look for it, and what command syntax to use if PolyXarc finds
- it.
-
- ...except for .ARC files. Over the years .ARC files have added a
- number of different formats. Each time one is added, it gets
- assigned a level. The standard programs (ARC, ARCA, and ARCE)
- support up to level 8. PKPAK added level 9, and PAK added levels
- 10 and 11. Due to program size and other considerations, people
- often prefer to use the minimum program required for the job.
- Also, some archive extractors are faster than others. Either way,
- the ARC lines in the configuration file describe what to look
- for, and what command syntax to use if PolyXarc finds it. Each
- ARC line has a level number. That number is the highest level
- that program will support, not just the only number. PolyXarc
- always uses the minimum specified program for the highest level
- found in the archive.
-
- The exceptions, as explained before, are ARC6 programs. Because
- they support an extended set of ARC formats, their archives are
- readily identifiable and are incompatible with version 5
- archives. If you have both an ARC5 and an ARC6 program supporting
- a compression level, the ARC5 program will always be used for an
- ARC5 file using that level. An ARC6 program will always be used
- to extract an ARC6 file.
-
- EXAMPLES
- ========
- I have my incoming and outgoing mail on two different drives. To
- optimize space usage on my outgoing drive, I have PolyXarc
- extract the archives into the incoming directory before I let
- QMail loose on them. Therefore my batch file looks something like
- this:
-
- C:
- CD \NET\FILE
- PolyXarc -F -M273/715
- E:
- QM TOSS etc.
-
- If you want to run PolyXarc directly from Opus 1.0 on a barefoot
- Opus system, simply rename POLYXARC.EXE to ARCE.EXE. If you
- already have the real ARCE someplace on your system, make sure
- that the renamed PolyXarc is either earlier in the path, or
- replaces ARCE, or is in the directory you are running it from.
- Otherwise, it will quite likely find the original ARCE first.
- Remember also, if you have ARCE.COM and ARCE.EXE in the same
- directory, DOS will always run ARCE.COM. Also remember to either
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 13
-
-
- remove the ARCE control line from PolyXarc's configuration file,
- or else specify ARCE's path in the control line; otherwise
- PolyXarc will end up trying to execute itself and you will end up
- with what is known in the business as 'a mess'.
-
- To use PolyXarc from Confmail, add the -A parameter to the end of
- Confmail's command line:
-
- Confmail import blah blah blah -A PolyXarc -o -m273/715
-
- RETURN CODES &c.
- ================
- 0 = No error.
- 1 = Can't open/read source (missing or invalid file).
- 2 = Can't create/write dest (maybe disk or directory full).
- 3 = Can't delete old source file (read-only).
- 4 = Can't rename temp file to source name.
- 5 = Out of memory.
- 6 = Cannot determine archive type.
- 7 = Configuration file syntax error.
- 8 = Error was returned from the archive extractor.
- 9 = File was zero-length.
- 10 = DOS error while trying to execute the extractor.
-
- Note that if you use the -f switch, not all of these errors will
- be returned. In the case of a zero-length file, PolyXarc -f will
- simply give a warning message, delete the file, and go on. In the
- cases of errors 3, 6 and 8, PolyXarc will rename the file to
- BAD_ARC.??? (where ??? is an ascending decimal number starting
- from 000) and go on.
-
- CAVEATS
- =======
- If a file has been transferred via XMODEM, the last record of
- that file will be padded with nulls. In the case of DWC-
- compressed files, this can be a problem. Since PolyXarc looks for
- "DWC" at the end of the file, the null padding will cause
- PolyXarc not to recognize a DWC file. I could add enough smarts
- into PolyXarc to have it search backwards through the nulls.
- However, DWC is not used by many sysops, and there are other
- archivers that work just as well, so it doesn't seem worthwhile.
- This is a potential problem for any archiver whose signature is
- at the end of the file, though at the moment I don't know of any
- besides DWC.
-
- ACKNOWLEDGEMENTS
- ================
- Thanks to Mike Housky for the entire .ARC format search-and-sort
- section. I shamelessly stole it straight out of his PAKSORT
- program. Thanks also to Dan Thomson for coming up with the
- original program, SPAZ, and saving me a lot of research and
- planning. (There is probably no easier program to design than one
- for which you have a working model!)
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
- page 14
-
-
- Many thanks to John Lull and Clay Tinsley, two of my original
- beta testers. They faithfully ran every revision I put out and
- let me know whenever something went wrong. (Which was often.)
- Clay was also responsible for convincing me to write PolyXarc.
- David Page, another beta tester, also gave some helpful
- criticism.
-
- Thanks to Steve Palm, who ported PolyXarc over to use on his
- Amiga, and Bill Andrus, who ported PolyXarc over to OS/2. Between
- us we came up with a set of source files and definitions that
- allow us to compile the same source under our respective
- operating systems.
-
- Thanks to Peter Stern for helping track down some subtle bugs in
- version 2.0.
-
- Thanks in no particular order to Thom Henderson, Phil Katz, Rahul
- Dhesi, David W. Cooper, Nogate Consulting, Haruyasu Yoshizaki,
- Vernon Buerg, Wayne Chin, Robert K. Jung, and all the other
- archive program authors for all their hard work. Keep it up,
- guys!
-
- And as always, thanks to Ward Christensen for everything.
-
- Jeffrey J. Nonken
- 1706 Cherrie Circle
- Blue Bell, Pa. 19422-3412
- BBS: (215)279-9799 HST/v.32
- Fidonet: 1:273/715
- Internet: Jeffrey.Nonken@f715.n273.z1.fidonet.org
-
- Note: the above Snailmail address and phone number may change in
- the next few months. Please use my Fidonet or Internet address,
- or check the latest Nodelist for the current information.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PolyXarc 2.1: multiple-format archive extractor executive
-