# sample zlibrc file

# by default, commands may also unlink compressed files
commands default use unlink

commands "xman" use disable

# Eamcs has its own way of handling compressed files
commands "xemacs" use disable disable_child

# disable zlib for compressors. Add any other compressors you use to this
# list
commands "gzip" "gunzip" "compress" "uncompress" use disable

# keep rm -r working
commands "rm" use readdir_compr unlink

# avoid accidentally expanding files while burning a CD
commands "mkisofs" use disable

# ls, shows all uncompressed files as pipes, to allow the user to spot
# the compressed files easily. Don't use this on a Sun, else you lose
# the size information.
commands "ls" "patch" use "showpipe"

# find doesn't show pipes. This is useful for constructions like
# find . -type f -grep pattern {} \;
# where you don't want to grep through REAL fifos, but where you want to
# grep through compressed files.
#
# less can scroll backwards. Allow it to seek.
#
# file makes several passes (magic and language) Between each pass, it seeks
# back to the beginning
commands "less" "file" "xdvi" "xman" "smalltalk" use "nopipe"

# find does't show pipes and shows the compressed size.  Showing the
# uncompressed size would force find to open every file searched,
# which would harm performance
commands "find" use "find"

#zzsh, zls and zfind are links to sh, ls and find. They allow scripts
#to avoid running gzip on non-existant files. If we used find it would
#print the name of a compressed article as (say) 1234 instead of 1234.gz
#and gzip would complain no such file which would be harmless but
#inefficient. zzsh has to z to avoid confusion with the zsh shell
commands "zzsh" "zfind" "zls" use disable

# newsreaders and daemons do seeks
commands "nn" "tin" "rn" "trn" "xrn" "in.nnrpd" use "nopipe"

# lisp loads all its files much faster when using the tmp file method
# don't know why.
commands "clisp" "smalltalk" "lisp.run" "lisp" use "nopipe"

# special actions for emacs.
commands "emacs" use "emacs" disable_child

# special actions for X. Add all your X servers to this line
commands "XF86_SVGA" "XF86_Mono" "XF86_S3" "XF86_VGA16" "XF86_Accel" use "X"

# backups, archive and copy programs don't use pipe decompression.
# This is because if these programs see fifos, they don't archive/copy 
# their data but rather recreate a REAL fifo, thus losing the contents 
# of the pipe.
# mv should not see pipes, else it refuses to move files accross filesystems.
# anyways, files get uncompressed when they are moved accross filesystems.
# cp -rf on a directory will work as expected, as it will see the compressed
# file names as it browses through the directories
commands "tar" "cpio" "pax" "cp" "mv" use readdir_compr "generic_safe"

# Unlike emacs, the following editors are too primitive to have their
# own compressed file mode. Fortunately, zlibc has now limited compressed
# write support :-)
# This is commented out by default, as some people might dislike it because
# new files will always be created compressed.
#commands "elvis" "vi" use "vi"

# the default class generic_safe now. This is to stay safe if somebody uses
# a backup or copy program other than those listed above. If you use only
# the backup programs listed above, you may safely change "generic_safe" into
# "generic". If you use different backup programs, you may add them to the
# list above and still change "generic_safe" into "generic". This default is
# there to prevent nasty surprises to people who use different backup progs, and
# don't read the doc.
commands default use "generic_safe"

class "vi"
subdir "/tmp" no-create-compressed
all create-compressed
all uncompress-before-write
usetmpfile

# X uses tmp files in its own directories.
class "X"
subdir "/usr/X11R6" usetmpfile
subdir "/usr/X386" usetmpfile
subdir "/usr/lib/X11" usetmpfile
showpipe

# generic class which uses temp files for all files.
class "nopipe"
usetmpfile

# generic class which hides all pipes
class "hidepipe"
hidepipe

# generic class which shows all pipes
class "showpipe"
showpipe

# class for find
class "find"
all show-compressed-size
usetmpfile

# emacs doesn't see virtual uncompressed files except in its own directories.
# this forces emacs to use its own compression support (crypt.el) whenever 
# possible.
class "emacs"
subdir "/usr/lib/emacs" showpipe
subdir "/usr/info" hidepipe
leavecompressed

# default class (not used any more)
class "generic"
suffix ".tar" dirleavecompressed	# compressed tar file. Better use tar's z option
suffix ".a" usetmpfile 		# static library
suffix ".sa" usetmpfile		# stub library
suffix ".o" usetmpfile		# object file
suffix ".pcf" usetmpfile	# X fonts
suffix ".pag" usetmpfile	# generic mmap'ed file
suffix ".mem" usetmpfile	# idem
suffix "CompKeyDB" usetmpfile	# xfig
showpipe

class "generic_safe"
suffix ".tar" dirleavecompressed	# compressed tar file. Better use tar's z option
usetmpfile
