COMPACT(1)

NAME
compact - compress files

SYNOPSIS
compact [ name ... ]

DESCRIPTION
Compact compresses the named files using an adaptive Huffman code. If no file names are given, then the standard input is compacted to the standard output. Unlike pack, compact operates as an on-line algorithm. Each time a byte is read, it is encoded immediately according to the current prefix code. This code is an optimal Huffman code for the set of frequencies seen so far. It is unnecessary to prepend a decoding tree to the compressed file (as in pack ), since the encoder ( compact ) and the decoder ( uncompact ) start in the same state and stay synchronized. Furthermore, compact and uncompact can operate as filters. In particular,

    ... | compact | uncompact | ...

operates as a (very slow) no-op. When an argument file is given, it is compacted and the resulting file is placed in file.C; file is unlinked. The first two bytes of the compacted file code the fact that the file is compacted. This code is used to prohibit recompaction.

The amount of compression to be expected depends on the type of file being compressed. Typical values of compression are: Text (38%), Pascal Source (43%), C Source (36%) and Binary (19%). These values are the percentages of file bytes reduced.

RESTRICTIONS
The last segment of the filename must contain fewer than thirteen characters to allow space for the appended '.C'. Directories cannot (and should not) be compressed.

DIAGNOSTICS
Compact will not compress directories. Also messages about unopenable files, etc. No attempt will be made to compress files which have already been compressed by either compact or pack.

FILES
 .C files created
Input files unlinked (unless protected)

SEE ALSO
uncompact (1), ccat (1)

Gallager, Robert G., "Variations on a Theme by Huffman", I.E.E.E. Transactions on Information Theory, vol. IT-24, no. 6, November 1978, pp. 668 - 674.

AUTHOR
Colin L. Mc Master

BUGS