.TH humanzip "1" "January 2007" "humanzip 0.5" "User's Manual" .SH NAME humanzip, humanunzip - (un)compress text files in a human readable way \fB .SH SYNOPSIS .ll +8 .B humanzip .RB [ " options " ] [ .I "filename \&..." ] .ll -8 .br .B humanunzip .RB [ " options " ] [ .I "filename \&..." ] .SH DESCRIPTION .PP \fIhumanzip\fR compresses ASCII text files in a human readable way. It finds common words and strings of words, replaces them with single UTF-8 characters and puts a key at the top. \fIhumanunzip\fR can restore zipped files to their original state. humanzip is meant to reduce the print and screen size of files, .B not to reduce their size in bytes, although that generally happens incidentally. Reduction is typically on order of 10%. .PP humanzip replaces each file with one with the extension .B ".hz" appended to its name. \fIhumanunzip\fR does the reverse, except that if it is given a file whose name does not end in .B ".hz" it will replace it with a file with .B ".out" appended to its name. If given no files, it will read from stdin and write to stdout. .PP You are encouraged to manually customize the compressed output to suit your tastes. As long as you follow the pattern, the result will still be decompressable by \fIhumanunzip\fR. .PP \fIhumanunzip\fR will try to decompress mangled files. If it detects errors which might be recoverable, it will still write the output, but keep the input. .PP \fIhumanzip\fR options are deliberately similar to those of \fIgzip\fR and \fIbzip2\fR. .SH OPTIONS: Common .TP .B -f Normally human(un)zip will refuse to overwrite existing files. This option forces it to do so. .TP .B -c Send output to stdout and keep input files unchanged. .TP .B -h Print short help statement. .TP .B -k Keep input files instead of deleting them. .TP .B -c Send output to stdout and keep input files unchanged. If there are several input files to \fIhumanzip\fR, the output consists of a sequence of independently compressed members. To obtain better compression, concatenate all input files before compressing them. .TP .B -- Treat all subsequent arguments as file names, even if they start with dashes. .SH OPTIONS: humanzip only .TP .B -a Normally, \fIhumanzip\fR uses a blacklist of common English words and phrases such as "into" and "to the" which would probably be annoying to be replaced by symbols. This option disables this blacklist. .TP .B -n \fInumber\fR Use at most this number of abbreviations. \fIhumanzip\fR may choose to use fewer if it cannot find enough that are worth doing. .TP .B -l \fInumber\fR Look for abbreviations of at most this many words. Setting this too high will cause \fIhumanzip\fR to use a very large amount of memory. Higher values of this option do not always result in better compression (at least, not in the current version). .TP .B -v Be verbose. Outputs information about progress as it is compressing. .TP .B -q Be quiet. Output only error messages. .SH RETURN VALUE .PP \fIhumanzip\fR and \fIhumanunzip\fR each return 0 on sucess, 1 if they get bad arguments, and the number of failed files if any fail. If \fIhumanunzip\fR encounters possibly recoverable errors in its input, it will count that file as a failure for this purpose even if the output turns out to be correct. .SH FUTURE VERSIONS .PP The newest version can always be found at ??? .PP humanzip's version number is currently less than 1. When it becomes 1 or larger, that means that I promise not to change the file format, command line options or return values without warning and/or backwards compatibility. Until then, new versions may break old versions' files and your scripts. .SH COPYRIGHT .PP Copyright \(co 2007 Matthew Strait . This is free software. You may redistribute it under the terms of the GNU General Public License version 2 . There is NO WARRANTY, to the extent permitted by law.