This is the second beta release of unpack.  Unpack will unpack PackIt, StuffIt,
Compactor and most StuffItClassic/StuffItDeluxe archives.
(PackIt, StuffIt and Compactor are archivers written by respectively:
Harry R. Chesley, Raymond Lau and Bill Goodman.)

It does not deal with:
a.  Password protected archives.
b.  Multi-file archives.
c.  StuffItClassic/StuffItDeluxe archives with compression methods 6 and 8.
    (These are respectively a Fixed Huffman encoding and Bigram encoding.
    I have never seen an archive that contains such files, so I am not
    willing to write and am not able to test code!)

Requirements:
a.  Of course a C compiler.
b.  A 32-bit machine with large memory (or at least the ability to 'malloc'
    large chunks of memory).  For reasons of efficiency and simplicity the
    program unpacks 'in-core', also Compactor archives are first read in
    core.  If somebody can take the trouble to do it differently, go ahead!
    There are also probably in a number of places implicit assumptions that
    an int is 32 bits.  If you encounter such occurrences feel free to
    notify me.
c.  A Unix (tm) machine, or something very close.  There are probably quite
    a lot of Unix dependencies.  Also here, if you have replacements, feel
    free to send comments.
d.  This version normally uses the 'mkdir' system call available on BSD Unix
    and some versions of SysV Unix.  You can change that, see the makefile for
    details.

Acknowledgements:
a.  This program is for a large part based on the utilities 'unpit' and 'unsit'
    written by:
	Allan G. Weber
	weber%brand.usc.edu@oberon.usc.edu
    (wondering whether that is still valid!).  I combined the two into a
    single program and did a lot of modification.  For information on the
    originals, see the README.* files in the unpack directory.
b.  The crc-calculating routines are based on a routine originally written by:
	Mark G. Mendel
	UUCP: ihnp4!umn-cs!hyper!mark
    (this will not work anymore for sure!).  Also here I modified the stuff
    and expanded it, see the README files in the crc directory.
c.  LZW-decompression is taken from the sources of compress that are floating
    around.  Probably I did not use the most efficient version, but this
    program was written to get it done.  The version I based it on (4.0) is
    authored by:
	Steve Davies            (decvax!vax135!petsd!peora!srd)
	Jim McKie               (decvax!mcvax!jim)  (Hi Jim!)
	Joe Orost               (decvax!vax135!petsd!joe)
	Spencer W. Thomas       (decvax!harpo!utah-cs!utah-gr!thomas)
	Ken Turkowski           (decvax!decwrl!turtlevax!ken)
	James A. Woods          (decvax!ihnp4!ames!jaw)
    I am sure those e-mail addresses also will not work!
d.  Optional AUFS support comes from information supplied by:
	Casper H.S. Dik
	University of Amsterdam
	Kruislaan  409
	1098 SJ  Amsterdam
	Netherlands
	
	phone: +31205922022
	email: casper@uva.uucp
    This is an e-mail address that will work.
    See the makefile.
    Some caveats are applicable:
    1.  I did not fully test it (we do not use it).  But the unpacking
	appears to be correct.  Anyhow, as the people who initially compile
	it and use it will be system administrators I am confident they are
	able to locate bugs!  (What if an archive contains a Macfile with
	the name .finderinfo or .resource?  I have had two inputs for AUFS
	support [I took Caspers; his came first], but both do not deal with
	that.  Does CAP deal with it?)  Also I have no idea whether this
	version supports it under SysV, so beware.
    2.	From one of the README's supplied by Casper:
	    Files will not appear in an active folder, because Aufs doesn't like
	    people working behind it's back.
	    Simply opening and closing the folder will suffice.
	Appears to be the same problem as when you are unpacking or in some
	other way creating files in a folder open to multifinder.  I have seen
	bundle bits disappear this way.  So if after unpacking you see the
	generic icon; check whether a different icon should appear and check
	the bundle bit.
	    The desktop isn't updated, but that doesn't seem to matter. 
	I dunno, not using it.
e.  A man page is now supplied.  The base was provided by:
	Douglas Siebert
	ISCA
	dsiebert@icaen.uiowa.edu
f.  Because of some problems the Uncompactor has been rewritten, it is now
    based on sources from the dearchiver unzip (of PC fame).  Apparently the
    base code is by:
	Samuel H. Smith
    I have no further address available, but as soon as I find a better
    attribution, I will include it.
g.  UnstuffIt's LZAH code comes from lharc (also of PC fame) by:
	Haruhiko Okumura,
	Haruyasu Yoshizaki,
	Yooichi Tagawa.
h.  Some SysV incompatibilities have been removed.  I am not sure whether I
    have them all now.  (Apparently System V comes in a lot of varieties!)
i.  Some changes from a letter I got that was inadvertently trashed.
    Thanks anonymous!
j.  Naming.  Some people have complained about the name conflict with
    the unpack utility that is already available on Sys V boxes.  I had
    forgotten it, so there really is a problem.  The best way to solve it
    is to trash pack/unpack/pcat and replace it by compress/uncompress/zcat.
    Sure, man uses it; but man uses pcat, so you can retain pcat.  If that
    is not an option feel free to rename the program.  The best suggested
    new name I have heard is macunpack (a bit long but it clearly displays
    mac in the name).  I am open to other suggestions; if there comes
    something really catchy I will adopt it.

The program uses a table driven program to do Mac filename -> Unix filename
translation.  When compiled without further changes the translation is as
follows:
    Printable ASCII characters except space and slash are not changed.
    Slash and space are changed to underscore, as are all characters that
    do not fall in the following group.
    Accented letters are translated to their unaccented counterparts.
If your system supports the Latin-1 character set, you can change this
translation scheme by specifying '-DLATIN1' for the 'CF' macro in the
makefile.  This will translate all accented letters (and some symbols)
to their Latin-1 counterpart.  This feature is untested (I do not have
access to systems that cater for Latin-1), so use with care.
Future revisions of the program will have user settable conversions.

Another feature of filename translation is that when the -DNODOT flag is
specified in the CF macro an initial period will be translated to underscore.

When you have problems unpacking an archive feel free to ask for information.
I am especially keen when the StuffIt part detects Fixed Huffman or bigram
compression methods.  If you encounter such an archive, please, mail a
'binhexed' copy of the archive to me so that I can deal with it.  Password
protected archives are (as already stated) not implemented.  I do not have much
inclination to do that.  Also I feel no inclination to do multi-file archives.
This is the first in a set of Mac utilities on Unix I am writing; there is
more in the pipeline.

All comments are still welcome.  Although I will not answer before (approx.) the
fifth of august.  Thanks for the comments I already received.

dik t. winter, amsterdam, nederland
email: dik@cwi.nl

--
Note:
There may or may not be Copyright problems with the previous version of
this program.  In the current version all algorithms are implemented based
on publicly available software to prevent any claim to Copyright.  It is my
opinion that the previous version did not infringe on Copyright but, to be
sure, this one certainly does not.  If you have an older version lurking
around, please remove it.
