Contents of the README file
Unix System V ARC Version 1.1
This is a COMPLETE (I hope!) version of PC ARC v5.12, ported to System V.
It contains as much of the functionality of PC ARC as I could incorporate,
and fixes all known bugs.
Version 1.1 is based on the version posted to the net by Mike Stump,
with several fixes and enhancements, as well as some general clean-up.
Timestamping - arc will now stamp file upon extraction with the
date and time contained in the header. This feature may cause
some discomfort with the recent change in Daylight Savings Time.
Full wildcard/pattern matching - arc will take over for the shell
if it receives standard shell-type wildcards and/or patterns.
Remember, though, that the shell will always try to expand what
it can FIRST, so if you explicitly want arc to do expansion,
quote the arguments. Also, arc will NOT search for real files
based on wildcard matches. I have left that under shell control;
arc -v "*.c"
will work whether or not real files exist that match the pattern,
arc -a "*.c"
will report that file '*.c' was not found.
14 character file name entries - by default arc now supports
full 14 character file names in its entries. This will, however,
cause the archive to be incompatible with PC ARC, so I have
added an option ('i') to truncate file names to the standard
PC limit of 12 characters. Archives created with this option are
FULLY compatible with PC ARC.
Some Bug Fixes:
An archive will no longer try to archive itself, even if it is
explicitly requested from the command line. However, an archive
with a similar name, but in a different directory, can be added.
Arguments passed to arc are now sorted, eliminating the
possibility of duplicate entries for the same file in an archive.
The arguments are also checked for duplicates, so it is impossible
to add the same file name from multiple directories. Only the
first occurence is used.
Arc will not core dump if any of the file name arguments cannot
Arc now cleans up after itself if it is aborted early. Also,
no damage will be done to the archive if arc is aborted.
I tried my best to make the code uniform, removed some unused
variables and functions, and added/changed some of the comments.
I ran the resulting code through lint, which still considers
the code somewhat inconsistent, but otherwise acceptible,
with the exception of 'arclzw.c'. Oh well, we can only do
Ther is a REMOTE possibility that an archive can become corrupted
if the IBM(TM) PC compatibility option ('i') is used/not used when it
should/shouldn't be. This only happened to me once out of 150+
archives, and even that was during the early stages of the cleanup.
As a rule, if I can't remember whether or not the 'i' option was
used, I simply test the archive in questoion. Testing an archive
can do NO damage to it.
This code has been thoroughly (if there is such a thing) tested on an
AT&T 3B5, 3B15, 3B2/300, and 3B2/400, running SYS V release 2 and release 3.
I tried to keep things fairly portable, though I am not that familiar with
BSD. I imagine that most things should work (I did change all the 'rindex'
calls to 'strrchr', sorry BSD), but I imagine that the setstamp() function
is fairly System V dependent. In any event, I will cheerfully listen to
any reports of bugs and/or fixes, and will try to maintain the code as well
as I can.