home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #2 / RBBS_vol1_no2.iso / add2 / lharc12b.exe / LHARC.MAN < prev   
Text File  |  1989-04-29  |  32KB  |  918 lines

  1.  
  2.       User's Manual for High-Performance File-Compression Program
  3.  
  4.                           LHarc Version 1.12B
  5.                                 04/29/89
  6.  
  7.            Copyright (c) Haruyasu Yoshizaki (Yoshi), 1988-89
  8.  
  9.                                                     Nifty Serve PFF00253
  10.                                                     ASCII PCS   pcs02846
  11.  
  12. ------------------------------------------------------------------------
  13.  
  14. 0. It Came to Pass One Day...
  15.  
  16.    After reading "A Hard Disk Cookbook" from Shouei Press, I had a
  17.    strong desire to write my own archiving utility.  On the Nifty Serve
  18.    network, I was first exposed to Mr. Miki's Larc, which surpassed the
  19.    well-known PKware in compression ratios, as reported in the Forum
  20.    Software Debut and Review.  The next shock came when I saw Mr.
  21.    Okumura's LZari, which has even better compaction-ratio performance.
  22.    I started to rewrite LZari for in assembly level language, trying to
  23.    make it run faster, but I could find no way of speeding up the
  24.    process of de-archiving.
  25.  
  26.    So, as an alternative, I used adaptive Huffman coding with an LZSS
  27.    encoder in order to achieve a similar rate of compression with a
  28.    faster decompression process.  This is the idea used in LHarc.
  29.  
  30.    No one can be sure of eradicating all possible bugs, yet if SPACE is
  31.    more valuable than TIME to you, please give this program a try.  It
  32.    may be slower in execution, but it achieves the tightest compression
  33.    ratios of any general archiver in the present environment (copyright
  34.    reserved).
  35.  
  36.  
  37. 1. How to Use It:
  38.  
  39.    Just type "LHarc" to see the help screen.
  40.  
  41.  
  42.    Command-line synopsis:
  43.    ======================
  44.  
  45.    LHarc [command] [/<switches>[-|+|2|<option>]] <archive_name>
  46.          [<path_name>] [<home_directory_name>\ | <drive_name>:]
  47.  
  48.          You may place switch(es) at any place following the
  49.          command.  A group of switches can be specified together.
  50.  
  51.  
  52.    Terminology:
  53.    ============
  54.  
  55.    A path name comprises a directory name and a file name:
  56.  
  57.         a:\tc\include\stdio.ext
  58.         |<---- Path_name ---->|
  59.         |<Directory_>||<File_>|
  60.         |<-- name -->||<name >|
  61.  
  62.  
  63.    Commands:
  64.    =========
  65.  
  66.    a (Add)
  67.  
  68.    LHarc a Archive.LZH file1.ext
  69.  
  70.         Adds 'file1.ext' to 'Archive.LZH'.  If 'Archive.LZH' does
  71.         not exist, then LHarc creates it.  If a file with the name
  72.         'file1.ext' already exists in the archive, then LHarc will
  73.         replace it with the specified file.
  74.  
  75.  
  76.    u (Update)
  77.  
  78.    LHarc u Archive.LZH file1.ext
  79.  
  80.         Adds 'file1.ext' to 'Archive.LZH', the same as with the 'a'
  81.         command.  However, if 'file1.ext' already exists in the
  82.         archive, LHarc will check its time stamp, and will keep the
  83.         newer one and ignore the older one.  (The /c switch forces
  84.         LHarc to skip this time-stamp comparison.)
  85.  
  86.  
  87.    m (Move)
  88.  
  89.    LHarc m Archive.LZH file1.ext
  90.  
  91.         is equivalent to
  92.  
  93.    LHarc u Archive.LZH file1.ext
  94.    DEL file1.ext
  95.  
  96.         Beware the fact that the second line is always active.  You
  97.         might lose the file 'file1.ext' for eternity.
  98.  
  99.  
  100.    f (Freshen)
  101.  
  102.    LHarc f Archive.LZH file1.ext
  103.  
  104.         Replaces 'file1.ext' in 'Archive.LZH' with the newer one
  105.         only if a file with this name already exists in the archive.
  106.         Otherwise, no action is taken.  (The /c switch forces LHarc
  107.         to skip this time-stamp comparison.)
  108.  
  109.  
  110.    e (Extract) or x (eXtract)
  111.  
  112.    LHarc e Archive.LZH
  113.  
  114.         Extracts all the files from 'Archive.LZH' to the specified
  115.         drive or directory.  If the specified directory does not
  116.         exist, then LHarc will prompt you whether to create it.
  117.  
  118.    LHarc e Archive.LZH file1.ext
  119.  
  120.        Extracts only 'file1.ext' from 'Archive.LZH'.  If a file with
  121.        the name 'file1.ext' exists in the home directory, then LHarc
  122.        will refrain from extraction if the existing file has the
  123.        same time stamp or is newer.  (The /c switch forces LHarc to
  124.        skip this time-stamp comparison.)
  125.  
  126.    LHarc e Archive.LZS file.ext
  127.  
  128.         Extracts 'file.ext' from an .LZS file archived with Larc
  129.         3.xx.
  130.  
  131.         NOTE:  Larc is another popular archiver on Japanese PDS's.
  132.  
  133.  
  134.    p (disPlay)
  135.  
  136.    LHarc p Archive.LZH file1.ext
  137.  
  138.         Extracts 'file1.ext' from 'Archive.LZH' and redirects it to
  139.         standard output.
  140.  
  141.    LHarc p /v Archive.LZH file1.ext
  142.  
  143.         Invokes the default utility LESS to format and display the
  144.         redirected output.  LHarc creates a temporary file
  145.         'LHARC.TMP' for review that will be deleted later.
  146.  
  147.    LHarc p /vsee Archive.LZH file1.ext
  148.  
  149.         Invokes the text formatter SEE, which then displays
  150.         'file1.ext' to standard output in a paged format.  Refer to
  151.         PC-LESS.ARC, LIST64A.ARC, and SEE15.ARC.  (These should be
  152.         available in most BBS libraries.)
  153.  
  154.  
  155.    d (Delete)
  156.  
  157.    LHarc d Archive.LZH file1.ext
  158.  
  159.         Deletes 'file1.ext' from 'Archive.LZH'.
  160.  
  161.  
  162.    l (List)
  163.  
  164.    LHarc l Archive.LZH
  165.  
  166.         Lists information about all the files in 'Archive.LZH'.
  167.         Each file takes one line of output.  A '+' before the file
  168.         name indicates that a directory na e is stored with the file
  169.         name. (The /x switch forces LHarc to display extended file
  170.         names.)
  171.  
  172.         If you specify file names and extensions, then only the
  173.         files with matching names or extensions will be listed:
  174.  
  175.    LHarc l Archive.LZH *.c *.h readme.DOC
  176.  
  177.         Lists information on all the .C, .H, and README.DOC files
  178.         in 'Archive.LZH'.
  179.  
  180.  
  181.    v (View)
  182.  
  183.    LHarc v Archive.LZH
  184.  
  185.         Which is equivalent to:
  186.  
  187.    LHarc l /x Archive.LZH
  188.  
  189.         Lists information about all the files in 'Archive.LZH',
  190.         except that each listing takes two lines: the first for the
  191.         full path name, and the second for the rest of the
  192.         information.  (The /x switch forces LHarc to display
  193.         extended file names.)
  194.  
  195.  
  196.    s (Self-extract)
  197.  
  198.    LHarc s [/x] [k<KEY>] Archive.LZH
  199.  
  200.         Creates a self-extracting file 'Archive.COM' (or
  201.         'Archive.EXE' if larger than 64K) from 'Archive.LZH' on the
  202.         specified drive or directory.
  203.  
  204.         NOTE:  There are now two versions of self-extracting
  205.                models.  The switch /x after s command specifies
  206.                large SFX to be made.  This always makes a file
  207.                Archive.EXE.  AUTOEXEC.BAT file can run on this
  208.                /x switch if key word KEY is properly typed.
  209.                You may self-extract a file of size more than
  210.                1 Mb in this mode.  Without the /x switch, you
  211.                have 'Archive.COM' or 'Archive.EXE' according to
  212.                the reduced size.  To have self-extracting file,
  213.                it is as large as the 640K DOS free-memory area.
  214.                Please check normally, to see whether your self-
  215.                extracting file exceeds 400K in size.  If more,
  216.                use the /x switch then.
  217.  
  218.  
  219.    (no command specified)
  220.  
  221.    LHarc Archive.LZH
  222.  
  223.         Acts exactly the same as the 'l' command.  This optional
  224.         action is temporary.  Don't count on it in future versions.
  225.  
  226.    LHarc t Archive.LZH
  227.  
  228.         Will check integrity of the archived file Archive.LZH by
  229.         CRC check.  This is new in this version 1.12.
  230.  
  231.  
  232.    Switches:
  233.    =========
  234.  
  235.    Specify switch(es) following the switch character '/'.  If you want
  236.    to specify more than one switch, type characters continuously
  237.    without any intervening spaces, like "/rxwe:\work" or "/cxvless".
  238.    When the 'v' and 'w' switches are used with other switches, they must
  239.    be specified at the end of a sequence, as shown in the above
  240.    examples.
  241.  
  242.    You may place a '+' or '-' sign after switches, with the following
  243.    meanings: '+' turns the switch on, and '-' turns the switch off.
  244.    The '2' creates a special option for the /r and /v switches (see
  245.    below).  If you just specify /<switch> without '+' or '-', then
  246.    <switch> will be toggled from 'on' to 'off' or vice versa.
  247.  
  248.    NOTE:  Use only lowercase letters for switches.  Capital letters
  249.           are reserved for future use.
  250.  
  251.  
  252.    /x[-|+] (eXtend file names)
  253.  
  254.         Extends file names with directory names.  This switch
  255.         determines whether to store only the file name or the full
  256.         path name.
  257.  
  258.         Suppose you are in the root directory, \, and you have two
  259.         files '\tc\include\sys\stat.h' and '\stat.h':
  260.  
  261.    LHarc a Archive.LZH stat.h
  262.  
  263.         Adds only the file 'stat.h' from the current (root)
  264.         directory to 'Archive.LZH', but
  265.  
  266.    LHarc a Archive.LZH stat.h \tc\include\sys\stat.h
  267.  
  268.         Will fail with the message "Same name in another path"
  269.         because extended directory names are not specified.
  270.         However,
  271.  
  272.    LHarc a /x Archive.LZH stat.h \tc\include\sys\stat.h
  273.  
  274.         Adds both files to 'Archive.LZH'.  Then:
  275.  
  276.    LHarc e Archive.LZH stat.h
  277.  
  278.         Extracts only one 'stat.h' file, to the root directory,
  279.         whereas:
  280.  
  281.    LHarc e /x Archive.LZH stat.h
  282.  
  283.         Extracts two 'stat.h' files: one to the root directory, and
  284.         the other to the directory \tc\include\sys\.
  285.  
  286.  
  287.    Use of the /r switch allows storage of all files with the same name
  288.    by recursively searching directories.  Thus,
  289.  
  290.    LHarc a /r Archive.LZH stat.h
  291.  
  292.         Adds two 'stat.h' files, with path names, to 'Archive.LZH':
  293.         one from the root directory, and the other from the
  294.         directory \tc\include\sys\.
  295.  
  296.         The /r switch always sets the /x switch simultaneously.  If
  297.         you don't want full path names, include /x- after specifying
  298.         the /r switch.
  299.  
  300.  
  301.    /p[-|+] (distinguish Path names)
  302.  
  303.         Distinguishes between file names extended by directory
  304.         names.  Suppose your archive 'tc.lzh' contains both 'stat.h'
  305.         and '\sys\stat.h'.  Then:
  306.  
  307.    LHarc e tc stat.h
  308.  
  309.         Extracts both 'stat.h' files, and the older one will be
  310.         over-written by the newer one.  Furthermore,
  311.  
  312.    LHarc e /p tc stat.h
  313.  
  314.         Extracts only 'stat.h', and
  315.  
  316.    LHarc e tc sys\stat.h
  317.  
  318.         Extracts only '\sys\stat.h'.
  319.  
  320.  
  321.    /c[-|+] (skip time-stamp Comparison)
  322.  
  323.    LHarc [efux] /c Archive.LZH [file1.ext file2.ext ...]
  324.  
  325.         If a file with the same name is to be created, the default
  326.         action of LHarc is to compare the time stamp of each pair of
  327.         files, and some will be overwritten and some just ignored.
  328.         This switch forces LHarc to overwrite any existing files
  329.         with extracted ones of the same name.
  330.  
  331.  
  332.    /m[-|+] (no Message)
  333.  
  334.    LHarc [<command>] /m Archive.LZH [file1.ext file2.ext ...]
  335.  
  336.         By default, LHarc will ask questions like "Overwrite [Y/
  337.         N]?".  This switch suppresses these prompts, and LHarc will
  338.         continue as if "y" is typed in.
  339.  
  340.  
  341.    /a[-|+] (any Attribute)
  342.  
  343.    LHarc a /a Archive.LZH file1.arc
  344.  
  345.         Adds 'file1.arc' to 'Archive.LZH'.
  346.  
  347.         Normally, LHarc will not archive files with hidden,
  348.         read-only, or system attributes.  The /a switch forces LHarc
  349.         also to archive files with these attributes.
  350.  
  351.  
  352.    /r[-|+|2] (Recursively)
  353.  
  354.    There are three modes of collecting files to be archived:
  355.  
  356.         (a) specified file(s):  /r-
  357.  
  358.             Adds files with specified file names only (default mode).
  359.  
  360.         (b) across directories:  /r or /r+
  361.  
  362.             LHarc a /r Archive.LZH *.C
  363.  
  364.                  Adds to 'Archive.LZH' all the files with
  365.                  extension '.C' - this switch forces LHarc to
  366.                  disregard directory names and add all files
  367.                  with the specified file name(s) in the working
  368.                  directory and its branches.  All file names
  369.                  will be extended by directory names.  This
  370.                  switch is used to archive all versions or all
  371.                  files of a similar type.
  372.  
  373.         (c) specified directory:  /r2
  374.  
  375.             LHarc a /r2 Archive.LZH \DOC
  376.  
  377.                  Adds to 'Archive.LZH' all the files in the
  378.                  directory specified by the path \DOC, similar
  379.                  to the Unix -r option.  This switch is used to
  380.                  archive a complete directory (other than the
  381.                  root).
  382.  
  383.         The /r and /r2 switches will invoke the /x switch
  384.         simultaneously.  You may have to toggle the /x switch off
  385.         (with /x-) after using /r or /r2.  The /x- switch forces
  386.         LHarc to disregard stored directory names.
  387.  
  388.  
  389.    /w[-|+|<directory name>] (set Working directory)
  390.  
  391.    LHarc a /w[d:\TMP] Archive.LZH [file1.ext file2.ext ...]
  392.  
  393.         Creates all temporary files in the directory \TMP on drive
  394.         D: - if no directory name is specified, the current directory
  395.         becomes the working directory.  All the temporary files
  396.         created in the process of archiving will reside in that
  397.         directory and be deleted later.  This switch overrides
  398.         setting the working directory with an environment variable
  399.         (see below).
  400.  
  401.    The /w switch is used when
  402.  
  403.         (1) you have no room in the directory where the archive is,
  404.             or
  405.         (2) you want your work done silently and swiftly on a RAM
  406.             disk.
  407.  
  408.  
  409.    /v[-|+|2|<redirection utility name>] (View by page)
  410.  
  411.    LHarc p /v Archive.LZH file1.ext
  412.  
  413.         Extracts 'file1.ext' from 'Archive.LZH' and invokes the
  414.         default utility LESS for formatted display to standard
  415.         output.
  416.  
  417.         NOTE:  LESS.COM is an utility similar to MORE.COM of
  418.                MS-DOS and something more, but less than the
  419.                "less" of American Unix networks.  PC-LESS.ARC or
  420.                LIST64A.ARC (available from many BBS sources in
  421.                the U.S.A.) works as well as the Japanese
  422.                utility.
  423.  
  424.    LHarc p /v2 [/v<utility name>] Archive.LZH file1.ext
  425.  
  426.         Invokes the specified utility for formatted display to
  427.         standard output, but suppresses the output of path names or
  428.         file names.  This switch is provided for viewing binary files
  429.         with a dump utility.
  430.  
  431.  
  432.    LHarc first creates an un-archived file LHARC.TMP and then invokes
  433.    the specified utility, usually a page formatter like SEE.EXE or
  434.    LIST.EXE.  Temporary files will normally be deleted after you have
  435.    viewed the output.
  436.  
  437.    LHarc /n Archive.LZH
  438.  
  439.         No indicator.  LHarc now uses ANSI escape sequence to report
  440.         the progress of archiving.  For IBM-PC users, the display will
  441.         end in somewhat ugry expression.  This switch will suppress
  442.         the escape code.
  443.  
  444.    LHarc s /x /k<KEY> Archive.LZH
  445.  
  446.         The switch /k encodes key word <KEY>, or any word, for
  447.         auto-executable file Archive.EXE run.  For detail, see
  448.         section 3.
  449.  
  450.  
  451.    Archive name (path name):
  452.    =========================
  453.  
  454.    All files archived by LHarc have the same format as those archived
  455.    by Larc, except that Larc uses the extension .LZS.  When you specify
  456.    a different extension for the archive name, LHarc will prompt you
  457.    with:
  458.  
  459.  
  460.       "Extension of archive is not '.LZH.' Continue processing? [Y/N]"
  461.  
  462.  
  463.    Wildcards are valid with the 'e', 'x', 'p', 'l', 'v', and 's' commands:
  464.  
  465.    LHarc e *.LZH *.c
  466.  
  467.         Extracts all files with extension .C from all archives in
  468.         the current directory.
  469.  
  470.  
  471.    Home directory name (drive name):
  472.    =================================
  473.  
  474.    If you specify a home directory name, then everything will happen in
  475.    that directory as though it were the current directory.  Specify a
  476.    home directory name ending with either '\' or ':'.  All the files
  477.    will be archived without storing this directory name unless you use
  478.    the /x switch.
  479.  
  480.    Example:  In the following directory tree:
  481.  
  482.                            |-- BIN --
  483.                            |
  484.           |-- \ --|-- TC --|-- LIB --
  485.                            |
  486.                            |-- INCLUDE --|-- SYS --|-- STAT.H
  487.  
  488.    From your root directory, \, typing
  489.  
  490.    LHarc a /r Archive.LZH stat.h tc\include\
  491.  
  492.         Will add '\tc\include\sys\stat.h' to 'Archive.LZH' with the
  493.         path name "\SYS\STAT.H" from your home directory \tc\
  494.         include\.
  495.  
  496.  
  497.    File name (path name):
  498.    ======================
  499.  
  500.    File or path names of files to be archived must be specified, or
  501.    else LHarc will automatically assume *.* with no directory names.
  502.    The wildcards '*' and '?' behave exactly as in DOS.  You cannot use
  503.    them to specify directories except with the /r2 switch, similar to
  504.    the Unix -r option for cp, mv, and rm.
  505.  
  506.  
  507.    Switch character:
  508.    =================
  509.  
  510.    If you are using some other character, like '-', in place of the
  511.    forward slant '/' as a switch delimiter (from DOS Function 37H, Set
  512.    Vector), you have to use your delimiter, say '-', in place of '/',
  513.    like "-cx".  You may then use '/' for a directory delimiter, similar
  514.    to Unix convention.  (You can use '-' as a switch character with
  515.    LHarc anyway.)
  516.  
  517.    The above comment may not apply unless you are running MS-DOS 3.xx.
  518.  
  519.  
  520. 2. Setting Switches in an Environment Variable
  521.  
  522.    You may set any of LHarc's default switches with the environment
  523.    variable 'LHARC':
  524.  
  525.    SET LHARC=/we: /r2
  526.  
  527.         Will set drive E: as the working directory and archive all
  528.         files in directory mode.
  529.  
  530.  
  531.    You may also specify LHarc's working directory with the environment
  532.    variable 'TMP':
  533.  
  534.    SET TMP=E:
  535.  
  536.    but the /w switch will override this setting.
  537.  
  538.  
  539. 3. Self-Extracting Files
  540.  
  541.    Now we have revised this part of the problem extensively.  As you
  542.    have seen in the first screen of this software, a totally new text
  543.    file is introduced for all self-extracting files made by LHarc.
  544.    This is controlled by naming such a file with the single character
  545.    '!' to prompt LHarc to display this special file.  Edit an ASCII file
  546.    and then rename to just '!'.  On typing file name of compressed .EXE
  547.    or.COM file, LHarc looks for this text file first of all and displays
  548.    it on the screen with a [Y/N] prompt to let you read it all.  Namely,
  549.    it is an auto-executable file for the display only, no harm, no
  550.    danger.  Not to worry.
  551.  
  552.    You may send E-mail archived by Lharc, say the first page separated
  553.    with name '!'.  Then this part of your mail, when de-archived, will
  554.    appear on the screen with Continue [Y/N]?  Isn't it appealing?  I call
  555.    this new feature by the name telop.  You may archive files with telop
  556.    '!' included.  You don't see telop from outside, yet you just see the
  557.    telop and type to know what are there by seeing telop screen.  You can
  558.    archive files with short description, which is visible without really
  559.    de-archiving.
  560.  
  561.    Moreover, there are two models for the SFX, self extractor,
  562.    available for your convenience and for the safety from trojans.
  563.  
  564.    1.  Small SFX: This model supports files of small enough to work
  565.        within the available memory size.  You can't make a self-
  566.        extracting of size more than 640 Kilobytes theoretically.
  567.        You will likely not wish to use this size if over 400k from
  568.        a practical standpoint.  A few people may even have trouble
  569.        supplying 400k remaining memory.  If any question use large
  570.        SFX now explained.
  571.  
  572.    2.  Large SFX.  You can make self-extracting size of up to 1
  573.        Megabytes.  Beside you can incorporate self-executable
  574.        AUTOLARC.BAT file to make programs run automatically.  I
  575.        have provided a 'key word' system for the auto-run.  You have
  576.        to know the 'key word' to let it run for the first trial.
  577.        After then the self-extracting auto-run program learns to
  578.        work without the 'key word'.
  579.  
  580.  
  581. To make a small SFX:
  582. --------------------
  583.    LHarc s Archive.LZH
  584.  
  585.         Makes a self-extract file Archive.COM or Archive.EXE
  586.         accoring to the size of the file.  If a telop file ! is
  587.         included, you will see the telop display first and then you
  588.         may type [Y/N] to have files un-archived or just let it be.
  589.         To record telop file ! on your disk, type:
  590.  
  591.    LHarc e Archive.COM>!
  592.  
  593.         or, if an .EXE file:
  594.  
  595.    LHarc e Archive.EXE>!
  596.  
  597.  
  598.  
  599. To make a large SFX:
  600. --------------------
  601.    LHarc s /x Archive.LZH
  602.  
  603.         or for auto-run, self-extract file add the /k switch and
  604.         key word:
  605.  
  606.    LHarc s /x /kKEY Archive.LZH
  607.                 ---
  608.  
  609.         Usingh the /x switch specifies the large SFX is to be made.
  610.         KEY stands for a key word, only used if Archive.LZH contains
  611.         an AUTOLARC.BAT file, which you make.  You will always have
  612.         an .EXE file with the /x switch so in the above case, it will
  613.         create Archive.EXE.  You may include a '!' text file as this
  614.         is always available.
  615.  
  616.  
  617.    Archive [/ed:] [/x]
  618.  
  619.         for an auto-run file having an AUTOLARC.BAT file:
  620.  
  621.    Archive KEY
  622.  
  623.         or
  624.  
  625.    Archive key [/ed:] [/x]
  626.  
  627.         NOTE:  The key word need not be secret at all.  If a
  628.                public word, and some concern is present, just
  629.                type:
  630.                            Archive
  631.  
  632.                without key word and the contents will then be
  633.                extracted for inspection without auto-run.
  634.                This makes the LHarc auto-run very versatile
  635.                and still minimizes problems with Trojan horse.
  636.  
  637.         To un-archive you have to type key word to run AUTOLARC.BAT.
  638.         Without this key word, the file just extracts itself without
  639.         prompt.  If it learns the key word once, then it will run
  640.         automatically at anytime on any directory, WITHOUT adding
  641.         the key word.  This may be hazardous.  The key word is not
  642.         case-sensitive.  KEY and key both can make it run.  The upper
  643.         limit of the reduced size for self-extracting is at least
  644.         1MB.  Try it on your own system.
  645.  
  646.         Thew optional /e switch specifies the directory [d:]on which
  647.         archived files to be expanded.  If Archive.LZH has files with
  648.         path_names, then files reproduced with these path_names on
  649.         respective sub-directories.  If such sub-directories do not
  650.         exist, Archive[.EXE] file will automatically create them.
  651.  
  652.         This /e switch is new in this version.  The AUTOLARC.BAT file
  653.         is reproduced on your curent directory, with or without this
  654.         /e switch.
  655.  
  656.         The attribute of of all the archived files is always 20H.  If
  657.         you want them to be read only, you can do it by AUTOLARC.BAT
  658.         with a line something like:
  659.  
  660.             chmod -w file?.*
  661.  
  662.         If Archive.LZH contains file1.EXE file1.DOC file2.EXE
  663.         file2.DOS...[etc.]
  664.  
  665.  
  666. 4. Archive File Header
  667.  
  668.    LHarc's header is compatible with that of Larc.  Methods of
  669.    archiving are two:
  670.  
  671.             -lh0-   stored as it was, and
  672.             -lh1-   compressed by LZHuf coding.
  673.  
  674.    LHarc can extract files stored in Larc-created archives (with the
  675.    extension .LZS) if they are type 4 or 5.
  676.  
  677. NOTE:  Larc is another Japanese archiver, with source code published
  678.        in a Journal.  It is now available in the United States, also.
  679.  
  680.  
  681. 5. Result Codes
  682.  
  683.    LHarc returns the following result codes to the parent process:
  684.  
  685.        0  Normally finished.
  686.  
  687.        1  Process finished with nonexistent file names ignored
  688.           during archiving, or CRC error occurred during
  689.           un-archiving.
  690.  
  691.        2  Process terminated by fatal error; no archives created or
  692.           files moved.
  693.  
  694.        3  Unable to write the temporary files into the archive.  Work
  695.           file renamed as 'LHARC.)2(', original archive deleted.  Try
  696.           renaming LHARC.)2( as your archive, although it could be
  697.           damaged.
  698.  
  699.  
  700. 6. Temporary Files
  701.  
  702.               LHARC.)1(   Original archive, renamed.
  703.               LHARC.)2(   Work file used to create new archive.
  704.               LHARC.TMP   Work file created for review by some page
  705.                           formatter.
  706.  
  707.    If a file with any of these names already exists, then the behavior
  708.    of LHarc is unpredictable.
  709.  
  710.  
  711. 7. My Distribution Policy
  712.  
  713.    Under the following conditions, you may freely copy and distribute
  714.    this software:
  715.  
  716.    1.  Under all circumstances, "Copyright by Haruyasu Yoshizaki"
  717.        must be attached to the copy.
  718.  
  719.    2.  This manual or its hardcopy should go together with the
  720.        software.
  721.  
  722.    3.  You may modify the program, but in that case, you must
  723.        distribute the complete source code for the program,
  724.        including your specific contributions, and you must make it
  725.        clear that you have made such modifications.
  726.  
  727.    4.  You must try to distribute the latest version available.
  728.  
  729.    5.  I assume no warranty for any claim of damage you may sustain
  730.        by using this software.
  731.  
  732.    6.  I have no obligation to revise the program to correct any
  733.        fault in this software.
  734.  
  735.    7.  For the commercial use of this software, I add the following:
  736.  
  737.          a.  The entire software made incorporating this program
  738.              should not be copy protected in the sense that the
  739.              DISKCOPY program of MS-DOS makes an imperfect copy.
  740.  
  741.          b.  Every part of the package should print the name
  742.              "LHarc" and the copyright banner.
  743.  
  744.          c.  The distribution policy of this software should be
  745.              printed either in the manual, in the package, or on
  746.              the disk label.
  747.  
  748.  
  749. 8. Acknowledgments
  750.  
  751.    Special gratitude to H. Okumura, who uploaded the code for LZari in
  752.    PC-VAN on which this LZHuf coding is based and to K. Miki, who re-
  753.    posted LZARI on Nifty Serve and who is the author of Larc I.  For all
  754.    those who contributed reviews, comments, and bug reports, I thank you
  755.    very much.
  756.  
  757.    I also appreciate the work and personal cost (both in his time and
  758.    financial cost to telephone the United States) that Prof. Kenjirou
  759.    Okubo has contributed to make this available to interested users in
  760.    the United States.
  761.  
  762.    The .EXE file for LHarc is nearly 2K smaller owing to use of pcs27162
  763.    by S. Takanami.  I honor this utility and thank him for letting me
  764.    use it to prepare LHarc.
  765.  
  766.    I have made so many revisions to LHarc, yet I do not think I can
  767.    ever expel all the bugs dwelling inside.  I would appreciate your
  768.    comments and bug reports.  Please route them to me via the SDR Forum
  769.    of Nifty Serve or salon.pds of ASCII Net.
  770.  
  771.  
  772. 9. References
  773.  
  774.    1) Labo, A.P., A Hard Disk Cookbook:  Shouei Press (1987).
  775.  
  776.    2) Kurita, T., Huffman coding, bit:  Jewelry Box of Computing 43,
  777.       vol. 20, no. 7, pp. 100-101 (1988).
  778.  
  779.    3) Miki, K., Documentation for Larc:  LARC.MAN
  780.  
  781.  
  782. 10. History of Revisions
  783.  
  784. Ver. 1.12b
  785.     1. Fixed AUTOLARC.BAT bug for auto-run after auto-extract.
  786.  
  787. Ver. 1.12
  788.     1. 't' command to test integrity of archived file.
  789.     2. Change of Screen display due to new commands and switches.
  790.     3. Bug fixed for CRC error check with archived file of size zero.
  791.     4. New telop file '!' with Large and Small SFX.
  792.  
  793. Ver. 1.01
  794.  
  795.     1. Minor touchups to help screen and program messages.
  796.     2. Editorial polishing of User's Manual for clarity and readability.
  797.  
  798. Ver. 1.00
  799.  
  800.     1. Mode without work file added.
  801.     2. /r switch forces /x switch on simultaneously.
  802.  
  803. Ver. 0.07c
  804.  
  805.     1. Removed bug in detecting memory shortage.
  806.     2. Compacted self-extracting program.
  807.  
  808. Ver. 0.07a
  809.  
  810.     1. Ver. 0.05-0.07 break down Heap areas.  Corrected.
  811.     2. Accepts any directory name with any attributes.
  812.  
  813. Ver. 0.07
  814.  
  815.     1. Prohibited actions to a write-protected archive.
  816.     2. 'm' command now removes files made by older versions.
  817.     3. Error-handling routine revised in dealing with wildcards for
  818.        archive names.
  819.     4. No command specified is now interpreted as 'l' command specified.
  820.     5. Error level 1 returned when CRC checking detects an error during
  821.        un-archiving.
  822.     6. Program now halts when self-extraction process meets an error.
  823.     7. Bug fixed in CRC checking when a directory name is met in un-
  824.        archiving process.
  825.  
  826. Ver. 0.06b
  827.  
  828.     1. Removed possibility of a damaged cluster appearing in failing to
  829.        re-create (= freshen) an archived file.
  830.     2. Removed '+' bug in redirecting output with 'p' command.
  831.  
  832. Ver. 0.06
  833.  
  834.     1. If a file transaction fails with 'u', 'm', or 'f' command, LHarc
  835.        will leave the archive as it was.
  836.     2. File attributes were sometimes misunderstood by 'f' command.  This
  837.        possibility eliminated.
  838.  
  839. Ver. 0.05
  840.  
  841.     1. CRC checks extended to self-extracting files.
  842.     2. Completely recursive modes made possible for 'a,u,m' commands.
  843.     3. Meets requirements of APPEND.EXE of MS-DOS version 3.3.
  844.     4. '\' no longer needed at end of working-directory name with /w
  845.        switch.
  846.  
  847. Ver. 0.04
  848.  
  849.     1. Support for environment variable 'TMP'.
  850.     2. "LHarc p /v a.lzh a_file" used to delete 'a_file' in case of an
  851.        error.  Bug fixed.
  852.     3. Added check for a file with the same name in making a self-
  853.        extracting file.
  854.     4. In a self-extracting archive, if a file with the same name of
  855.        larger size existed, then LHarc kept the difference when it was
  856.        overwritten by one of smaller size.  This bug removed.
  857.  
  858. Ver. 0.03
  859.  
  860.     1. Environment variable 'LHARC' sets some of the switches.
  861.     2. Made it possible to specify '+', '-' by switches.
  862.     3. /v switch included.
  863.     4. Wildcards can now be used for archive names with 'e,x,p,l,v,s'
  864.        commands.
  865.     5. Home directory names had some interactions with Kanji-code.  Fixed.
  866.     6. Fixed header-file bugs of self-extracting .EXE files.
  867.  
  868. Ver. 0.02
  869.  
  870.     1. Support of 'm' command.
  871.     2. Larc 3.xx compatibility.  Type 4, 5 .LZS files are un-archived.
  872.     3. Accepts systems with different switch characters.
  873.     4. Minor bugs fixed with 'e' command.
  874.     5. Revised format for 'l' command.
  875.  
  876. Ver. 0.01
  877.  
  878.     1. Support of self-extracting files.
  879.     2. 'p' command added.
  880.     3. /c switch applies for more combinations of commands and switches.
  881.     4. Error handling revised.
  882.     5. Bug fixed in 'l' command.
  883.     6. New algorithm introduced in sorting path names.
  884.  
  885.  
  886. 11. Comments
  887.  
  888. a. Some other algorithms I have in mind
  889.  
  890.    For some specific files, the compression ratios are not as good as
  891.    with PKware's PKZIP.  For such files, I may use LZSS compression with
  892.    correlated arithmetic compression.  This is an effective method, and
  893.    my experiments show that the ratios are no less than PKware's.  Yet
  894.    it takes too much time in both the archiving and de-archiving
  895.    processes, with much higher memory consumption.  Consequently, I
  896.    intend to keep working on this LZHuf algorithm.
  897.  
  898.    Naturally, I am ready to accept any comments, and I continue to
  899.    experiment.
  900.  
  901.  
  902. b. Naming of LHarc
  903.  
  904.    Some people have expressed concern over the fact that the string
  905.    "arc" is contained in the name "LHarc." I make the following
  906.    statements just for them.
  907.  
  908.    The crucial points in SEA's suit against PKware were the way in
  909.    which PKware advertised and sold PK(x)arc with an emphasis on its
  910.    ARC compatibility, and the loss of profits from shareware
  911.    contributions.
  912.  
  913.    This is not the case with LHarc.  I have used a different archiving
  914.    method and made it a freeware program with a format incompatible
  915.    with ARC.  Therefore, I hope I will not be bothered by similar
  916.    accusations.
  917.                                 - end -
  918.