UnTGZ is a extractor/list for the combined tar/gzip archive format which is
esspecially popular in the unix world. Actually, a tar.gz (or .tgz)
archive is a collection of files which have been archived with the tar
(tape archive) program, which's output in turn has been compressed using
the gzip packer.
The major advantage of this procedure is that all the files in the archive
are compressed in a single block, instead of single files. Due to the
nature of the used compression techniques which try to find duplicate
"strings" in the data this yields much better compression ratios
as if all the files would be compressed one by one, because the
search for duplicate data can span several of the source files.
As a result, a tar.gz archive in average gives much better compression
ratio than the LHA format which is currently in use in the Amiga
world. The now out-of-development LZX archiver used a similiar
technique, and therefore the tar.gz combination gives similiar
compression ratios than the LZX format.
However, the tar.gz format is not in wide use in the Amiga community
because many people find the usage of two programs which have a very
"unixish" syntax just to extract a single archive a bit stressing.
UnTGZ, however, is a single, compact program which's sole purpose
is to list and extract tar.gz archives with a mode of operation
similiar to existant archive utilities.
- UnTGZ is heavily optimized for speed and memory usage.
Memory requirement for a decompression run is about 80k.
- UnTGZ itself is very compact (currently 13k), thus
saving space on distribution disks. It can be made
- UnTGZ has been designed in a way that the "look & feel"
of existant archive utilities like LHA or LZX is
- UnTGZ works with AmigaOS 1.2/1.3 machines. No special
- UnTGZ can be used as a default tool from Workbench
Project Icons to easily provide "Click&Extract" functionality.
WB Operation can be customized via icon tooltypes.
Actions are displayed via standard console windows
(it will automatically recognize an installed KingCon Handler
and use a KCON: window for scrollback and appicon support)
Shell usage is very straightforward:
UnTGZ [-v] archivename [destination directory]
"-v" specifies that the archive is to be listed, not extracted.
UnTGZ also recognizes "-l", "v" and "l" as synonyms for that.
"destination directory" optionally specifies the, you guessed it,
destination directory where the files are to be extracted into. This
defaults to the current directory as to the time of invocation.
Note that UnTGZ automatically tries to locate archive files
by appending ".tar.gz" and ".tgz" to the archivename if
no extension is given.
In order to use UnTGZ from the Workbench, you have to create
project icons for the ".tar.gz" files, which's default tool
points to the UnTGZ executable.
You can specify tooltypes in this project icons to customize
Define the console window used for output and queries.
Defaults to "CON:0/0/640/400/UnTGZ" for OS 1.2/1.3
and to "[K]CON:0/0/640/400/UnTGZ/WAIT/CLOSE" for OS2+
Define destination path. Defaults to "RAM:". This
can be modified by the user, unless "ForceExtract"
Force display of archive contents, not asking the
user for actions.
Force extraction of files, not asking the user for
Output this text before asking the user for actions.
Defaults to no text.
You should specify a stack size of 20480 in the project
icon to avoid having UnTGZ allocate it's own stack,
thus saving a few k of memory.
1.5 - fixed problem that under certain circumstances
the last file written to remains open
1.4 - recompiled with SAS/C 6.57
- modified behavior as a Workbench tool: Clicking
on the close gadget of the CON: window will
silently quit the program, instead of
starting the unpack process.
1.3 - First release version
UnTGZ was written by Oliver Wagner <owagnervapor.com>.
The "inflate" decompression code used inside the program was written and
placed in the public domain by Mark Adler.
UnTGZ 1.5 may be freely distributed. Commercial usage of any kind
requires prior permission.
No warranties of any kind, use on your own risk, don't put in
child's hands etc. You can be assured it won't ObtainSemaphore()
your screen's Layer on input.device schedule, though :-)
EMail bug reports and related stuff to <owagnervapor.com>.
See http://www.vapor.com/ for other neat stuff.