Provided by: tcl-trf-doc_2.1.4-dfsg3-1_all bug

NAME

       zip - Data compression "zip"

SYNOPSIS

       package require Tcl  ?8.2?

       package require Trf  ?2.1.3?

       zip ?options...? ?data?

DESCRIPTION

       The  command zip is one of several data compressions provided by the package trf. See trf-
       intro for an overview of the whole package.

       The command is based on the  deflate  compression  algorithm  as  specified  in  RFC  1951
       (http://www.rfc-editor.org/rfc/rfc1951.txt)  and  as  implemented  by the zlib compression
       library    (http://www.gzip.org/zlib/).     See    also    RFC    1950    (http://www.rfc-
       editor.org/rfc/rfc1950.txt)

       zip ?options...? ?data?

              -mode compress|decompress
                     This option has to be present and is always understood by the compression.

                     For  immediate  mode the argument value specifies the operation to use.  For
                     an attached compress it specifies the operation to use for writing.  Reading
                     will  automatically use the reverse operation.  See section IMMEDIATE versus
                     ATTACHED for explanations of these two terms.

                     Beyond the  argument  values  listed  above  all  unique  abbreviations  are
                     recognized too.

                     Compress  causes  the  compression  of  arbitrary (most likely binary) data.
                     Decompression does the reverse .

              -level integer
                     Specifies the compression level. Is either the string default or an  integer
                     number in the range 1 (minimal compression) to 9 (maximal compression).

              -nowrap boolean
                     If  set to true the command will not create the zip specific header (See RFC
                     1950) normally written before the compressed data. The options  defaults  to
                     false.   It  has  to  be  used  when writing a gzip emulation in Tcl as gzip
                     creates a different header.

              -attach channel
                     The presence/absence of this option determines the main  operation  mode  of
                     the transformation.

                     If  present the transformation will be stacked onto the channel whose handle
                     was given to the option and run in attached mode. More about this in section
                     IMMEDIATE versus ATTACHED.

                     If the option is absent the transformation is used in immediate mode and the
                     options listed below are recognized. More about this  in  section  IMMEDIATE
                     versus ATTACHED.

              -in channel
                     This options is legal if and only if the transformation is used in immediate
                     mode. It provides the handle of the channel the data to transform has to  be
                     read from.

                     If  the  transformation  is  in immediate mode and this option is absent the
                     data to transform is expected as the last argument to the transformation.

              -out channel
                     This options is legal if and only if the transformation is used in immediate
                     mode.  It  provides  the  handle of the channel the generated transformation
                     result is written to.

                     If the transformation is in immediate mode and this  option  is  absent  the
                     generated data is returned as the result of the command itself.

IMMEDIATE VERSUS ATTACHED

       The  transformation  distinguishes  between  two  main  ways  of  using  it. These are the
       immediate and attached operation modes.

       For the attached mode the option -attach is used to associate the transformation  with  an
       existing  channel.  During  the  execution  of the command no transformation is performed,
       instead the channel is changed in such a way, that from then on all  data  written  to  or
       read  from  it  passes  through  the transformation and is modified by it according to the
       definition above.  This attachment can be revoked by executing the command unstack for the
       chosen channel. This is the only way to do this at the Tcl level.

       In  the  second  mode,  which  can  be  detected  by  the  absence  of option -attach, the
       transformation immediately takes data from either its commandline or a channel, transforms
       it,  and  returns the result either as result of the command, or writes it into a channel.
       The mode is named after the immediate nature of its execution.

       Where the data is taken from, and delivered to, is governed by the presence and absence of
       the  options  -in and -out.  It should be noted that this ability to immediately read from
       and/or write to a channel is an historic artifact which was introduced at the beginning of
       Trf's  life  when Tcl version 7.6 was current as this and earlier versions have trouble to
       deal with \0 characters embedded into either input or output.

SEE ALSO

       bz2, trf-intro, zip

KEYWORDS

       compression, data compression, decompression, rfc 1950, rfc 1951, rfc 1952, zip

COPYRIGHT

       Copyright (c) 1996-2003, Andreas Kupries <andreas_kupries@users.sourceforge.net>