

FREEZE (1)              Public-Domain Utilities               FREEZE (1)




NAME  
        freeze, melt, fcat - compress and uncompress files 

SYNOPSIS  
        pfreezeq [ p-cdfvVgq ] [ pfilename | +type ...q ] 
        pmeltq [ p-cfvVq ] [ pfilename ...q ] 
        pfcatq [ pfilename ...q ] 

DESCRIPTION  
        Compresses the  specified files or standard input.  Each file is
        replaced by a file with the extension p.F,q but only if  the  file
        got smaller.    If  no  files  are specified, the compression is
        applied to the standard input and is written to standard  output
        regardless of  the results.  Compressed files can be restored to
        their original form by specifying the p-dq option, or  by  running
        pmeltq  (linked  to  pfreezeq),  on  the    p.Fq files or the standard
        input.  

        If the output file exists, it will not be overwritten unless the 
        p-fq flag is given.  If p-fq is not specified and pfreezeq is  run  in
        the  foreground,  the  user  is  prompted as to whether the file
        should be overwritten.  

        If the p-gq flag is given, a slightly less  powerful  (compression
        rate is 1.5% less), but 40% faster heuristic is used.  

        If  the  p-fq flag is given, all files specified are replaced with
        p.Fq files - even if the file didn't get smaller.  

        When file names are given,  the  ownership  (if  run  by  root),
        modes,  accessed  and  modified times are maintained between the
        file and its  p.Fq version.  In this respect, pfreezeq can  be  used
        for  archival purposes, yet can still be used with pmakeq(1) after
        melting.  

        The p-cq option causes the results of the freeze/melt operation to 
        be written to stdout; no files are changed.  The pfcatq program is 
        the same as specifying p-cq to pmeltq (all files  are  unpacked  and
        written to stdout).  

        The  p-vq  (verbose)  option causes the diagnostics (at the end of
        each file processing) to be  printed  to  stderr,  and  the  p-vvq
        option  causes  the  progress  indicator to be drawn to the same
        place.  

        pTypeq is a token preceded by a '+', which  defines  the  type  of
        following files  in the command string.  An explicite definition
        of the file's type can give up to 2% of additional  compression.
        The list  of types is stored in file p/etc/default/freezeq.  Types
        may be abbreviated while not ambigious.  You can also  determine
        values for the static Huffman table by using a list of 8 numbers 
        separated by commas instead of ptype.q 




Tue Feb 23 22:42:16 1993                                          Page 1




FREEZE (1)              Public-Domain Utilities               FREEZE (1)



        pFreezeq  uses  the Lempel-Ziv algorithm on the first pass and the
        dynamic Huffman algorithm on  the  second  one.    The  size  of
        sliding  window  is 8K, and the maximum length of matched string
        is 256.  The positions on the window are coded  using  a  static
        Huffman table.  

        A  two byte magic number is prepended to the file to ensure that
        neither melting of random text nor refreezing of already  frozen
        text are  attempted.    In  addition, the characteristics of the
        static Huffman table being used during pfreezeq is written to  the
        file  so  that  these characteristics may be adapted to concrete
        conditions.  

        The amount of compression obtained depends on the  size  of  the
        input  file  and  the  distribution  of character substrings and
        their probabilities.  Typically, text files, such as C programs, 
        are reduced by 60-75%, executable  files  are  reduced  by  50%.
        Compression  is  generally much better than that achieved by LZW
        coding (as used in pcompressq), or  Huffman  coding  p(qpack  though
        takes more time to compute.  

        If  the p-Vq (version) flag is given, the program's version number
        and compilation options are printed.  

        The exit status is normally 0; if  the  last  file  gets  bigger
        after  freezing,  the  exit status is 2; if an error occurs, the
        exit status is 1.  

SEE ALSO  
        compact(1), pack(1), compress(1) 

DIAGNOSTICS  
        Unknown flag:  pºxº;q Usage: freeze [-cdfvVg] [file|+type ...] 
                Invalid options were specified on the command line.  
        pfileq: not in frozen format 
                The specified file has not been frozen.  
        pfileq: already has .F suffix -- no change 
                Cannot compress a file that has a ".F"  suffix.    pmvq(1)
                the file to a different name and try again.  
        pfileq: filename too long to tack on .F 
                The  specified  file  cannot  be  compressed because its
                filename is longer than 12 characters.  pmvq(1)  the  file
                to a  different  name  and try again.  This message does
                not occur on 4.XBSD systems.  
        pfileq already exists; do you wish to overwrite (y or n)?  
                Respond "y" if you want the output file to be  replaced;
                "n" if you want it to be left alone.  
        pfileq: pxxq% or pxxxqK 
                These   message   fragments   are   written  during  the
                processing of a file, if p-vvq option  was  given  in  the
                command  line  (in percents, if the length of file being
                processed is known; in Kbytes otherwise).  
        Freezing: pxx.xx% (y.yyq bits) 
                This message fragment gives the percentage of the  input



Tue Feb 23 22:42:16 1993                                          Page 2




FREEZE (1)              Public-Domain Utilities               FREEZE (1)



                file  that  has been saved by freezing and the number of
                remaining bits per byte of original file.  
        -- not a regular file: unchanged 
                This message fragment is written when the input file  is
                not a regular file.  The input file is left unchanged.  
        -- has  pxxq other links: unchanged 
                This message fragment is written when the input file has 
                links.  The input file is left unchanged.  See plnq(1) for 
                more information.  
        -- file unchanged 
                This  message  fragment  is  written when no savings are
                achieved by  freezing.    The   input   file   is   left
                unchanged.  
        -- replaced with  pfileq 
                This  message  fragment  is written when a file has been
                sucessfully frozen/melt.  
        Using " ptypeq " type 
                This  message  indicates  a  successful   switching   to
                position table for mentioned file type.  
        "  pxxxq  "  -  no  such  file  type  or pxxxq - a list of 8 numbers
        expected 
                This message means the given file type does not exist or 
                the given string contains a comma, but is  not  a  valid
                list of values for static Huffman table.  
        melt: corrupt input 
                This message fragment is written when an error in header 
                or unexpected  end  of frozen file is detected.  Partial
                (or empty, is there was an error in the header) file  is
                created.  
        already frozen -- file unchanged 
                This  message  fragment  is  written  when an input file
                already has Freeze's magic header.  
        Invalid position table or " ptypeq " - invalid entry 
                These messages appear only if Freeze has been made  with
                incorrect data  for static Huffman table.  It does never
                appear when  freeze  is  called  from  a  public  access
                directory.  
        Unknown header format 
                Unknown  values  of  flag  bits  were  discovered in the
                header of frozen file.  


BUGS  
        This manual page does not actually  describe  the  Atato  ST/TOS
        version.  

COPYRIGHT NOTE  
        This program  is  supplied with HERMES for your convenience.  It
        is not covered by the HERMES license regulations, and is in  the
        public domain, as far as I know.  







Tue Feb 23 22:42:16 1993                                          Page 3


