home *** CD-ROM | disk | FTP | other *** search
-
- User's Manual for High-Performance File-Compression Program
-
- LHarc Version 1.12B
- 04/29/89
-
- Copyright (c) Haruyasu Yoshizaki (Yoshi), 1988-89
-
- Nifty Serve PFF00253
- ASCII PCS pcs02846
-
- ------------------------------------------------------------------------
-
- 0. It Came to Pass One Day...
-
- After reading "A Hard Disk Cookbook" from Shouei Press, I had a
- strong desire to write my own archiving utility. On the Nifty Serve
- network, I was first exposed to Mr. Miki's Larc, which surpassed the
- well-known PKware in compression ratios, as reported in the Forum
- Software Debut and Review. The next shock came when I saw Mr.
- Okumura's LZari, which has even better compaction-ratio performance.
- I started to rewrite LZari for in assembly level language, trying to
- make it run faster, but I could find no way of speeding up the
- process of de-archiving.
-
- So, as an alternative, I used adaptive Huffman coding with an LZSS
- encoder in order to achieve a similar rate of compression with a
- faster decompression process. This is the idea used in LHarc.
-
- No one can be sure of eradicating all possible bugs, yet if SPACE is
- more valuable than TIME to you, please give this program a try. It
- may be slower in execution, but it achieves the tightest compression
- ratios of any general archiver in the present environment (copyright
- reserved).
-
-
- 1. How to Use It:
-
- Just type "LHarc" to see the help screen.
-
-
- Command-line synopsis:
- ======================
-
- LHarc [command] [/<switches>[-|+|2|<option>]] <archive_name>
- [<path_name>] [<home_directory_name>\ | <drive_name>:]
-
- You may place switch(es) at any place following the
- command. A group of switches can be specified together.
-
-
- Terminology:
- ============
-
- A path name comprises a directory name and a file name:
-
- a:\tc\include\stdio.ext
- |<---- Path_name ---->|
- |<Directory_>||<File_>|
- |<-- name -->||<name >|
-
-
- Commands:
- =========
-
- a (Add)
-
- LHarc a Archive.LZH file1.ext
-
- Adds 'file1.ext' to 'Archive.LZH'. If 'Archive.LZH' does
- not exist, then LHarc creates it. If a file with the name
- 'file1.ext' already exists in the archive, then LHarc will
- replace it with the specified file.
-
-
- u (Update)
-
- LHarc u Archive.LZH file1.ext
-
- Adds 'file1.ext' to 'Archive.LZH', the same as with the 'a'
- command. However, if 'file1.ext' already exists in the
- archive, LHarc will check its time stamp, and will keep the
- newer one and ignore the older one. (The /c switch forces
- LHarc to skip this time-stamp comparison.)
-
-
- m (Move)
-
- LHarc m Archive.LZH file1.ext
-
- is equivalent to
-
- LHarc u Archive.LZH file1.ext
- DEL file1.ext
-
- Beware the fact that the second line is always active. You
- might lose the file 'file1.ext' for eternity.
-
-
- f (Freshen)
-
- LHarc f Archive.LZH file1.ext
-
- Replaces 'file1.ext' in 'Archive.LZH' with the newer one
- only if a file with this name already exists in the archive.
- Otherwise, no action is taken. (The /c switch forces LHarc
- to skip this time-stamp comparison.)
-
-
- e (Extract) or x (eXtract)
-
- LHarc e Archive.LZH
-
- Extracts all the files from 'Archive.LZH' to the specified
- drive or directory. If the specified directory does not
- exist, then LHarc will prompt you whether to create it.
-
- LHarc e Archive.LZH file1.ext
-
- Extracts only 'file1.ext' from 'Archive.LZH'. If a file with
- the name 'file1.ext' exists in the home directory, then LHarc
- will refrain from extraction if the existing file has the
- same time stamp or is newer. (The /c switch forces LHarc to
- skip this time-stamp comparison.)
-
- LHarc e Archive.LZS file.ext
-
- Extracts 'file.ext' from an .LZS file archived with Larc
- 3.xx.
-
- NOTE: Larc is another popular archiver on Japanese PDS's.
-
-
- p (disPlay)
-
- LHarc p Archive.LZH file1.ext
-
- Extracts 'file1.ext' from 'Archive.LZH' and redirects it to
- standard output.
-
- LHarc p /v Archive.LZH file1.ext
-
- Invokes the default utility LESS to format and display the
- redirected output. LHarc creates a temporary file
- 'LHARC.TMP' for review that will be deleted later.
-
- LHarc p /vsee Archive.LZH file1.ext
-
- Invokes the text formatter SEE, which then displays
- 'file1.ext' to standard output in a paged format. Refer to
- PC-LESS.ARC, LIST64A.ARC, and SEE15.ARC. (These should be
- available in most BBS libraries.)
-
-
- d (Delete)
-
- LHarc d Archive.LZH file1.ext
-
- Deletes 'file1.ext' from 'Archive.LZH'.
-
-
- l (List)
-
- LHarc l Archive.LZH
-
- Lists information about all the files in 'Archive.LZH'.
- Each file takes one line of output. A '+' before the file
- name indicates that a directory na e is stored with the file
- name. (The /x switch forces LHarc to display extended file
- names.)
-
- If you specify file names and extensions, then only the
- files with matching names or extensions will be listed:
-
- LHarc l Archive.LZH *.c *.h readme.DOC
-
- Lists information on all the .C, .H, and README.DOC files
- in 'Archive.LZH'.
-
-
- v (View)
-
- LHarc v Archive.LZH
-
- Which is equivalent to:
-
- LHarc l /x Archive.LZH
-
- Lists information about all the files in 'Archive.LZH',
- except that each listing takes two lines: the first for the
- full path name, and the second for the rest of the
- information. (The /x switch forces LHarc to display
- extended file names.)
-
-
- s (Self-extract)
-
- LHarc s [/x] [k<KEY>] Archive.LZH
-
- Creates a self-extracting file 'Archive.COM' (or
- 'Archive.EXE' if larger than 64K) from 'Archive.LZH' on the
- specified drive or directory.
-
- NOTE: There are now two versions of self-extracting
- models. The switch /x after s command specifies
- large SFX to be made. This always makes a file
- Archive.EXE. AUTOEXEC.BAT file can run on this
- /x switch if key word KEY is properly typed.
- You may self-extract a file of size more than
- 1 Mb in this mode. Without the /x switch, you
- have 'Archive.COM' or 'Archive.EXE' according to
- the reduced size. To have self-extracting file,
- it is as large as the 640K DOS free-memory area.
- Please check normally, to see whether your self-
- extracting file exceeds 400K in size. If more,
- use the /x switch then.
-
-
- (no command specified)
-
- LHarc Archive.LZH
-
- Acts exactly the same as the 'l' command. This optional
- action is temporary. Don't count on it in future versions.
-
- LHarc t Archive.LZH
-
- Will check integrity of the archived file Archive.LZH by
- CRC check. This is new in this version 1.12.
-
-
- Switches:
- =========
-
- Specify switch(es) following the switch character '/'. If you want
- to specify more than one switch, type characters continuously
- without any intervening spaces, like "/rxwe:\work" or "/cxvless".
- When the 'v' and 'w' switches are used with other switches, they must
- be specified at the end of a sequence, as shown in the above
- examples.
-
- You may place a '+' or '-' sign after switches, with the following
- meanings: '+' turns the switch on, and '-' turns the switch off.
- The '2' creates a special option for the /r and /v switches (see
- below). If you just specify /<switch> without '+' or '-', then
- <switch> will be toggled from 'on' to 'off' or vice versa.
-
- NOTE: Use only lowercase letters for switches. Capital letters
- are reserved for future use.
-
-
- /x[-|+] (eXtend file names)
-
- Extends file names with directory names. This switch
- determines whether to store only the file name or the full
- path name.
-
- Suppose you are in the root directory, \, and you have two
- files '\tc\include\sys\stat.h' and '\stat.h':
-
- LHarc a Archive.LZH stat.h
-
- Adds only the file 'stat.h' from the current (root)
- directory to 'Archive.LZH', but
-
- LHarc a Archive.LZH stat.h \tc\include\sys\stat.h
-
- Will fail with the message "Same name in another path"
- because extended directory names are not specified.
- However,
-
- LHarc a /x Archive.LZH stat.h \tc\include\sys\stat.h
-
- Adds both files to 'Archive.LZH'. Then:
-
- LHarc e Archive.LZH stat.h
-
- Extracts only one 'stat.h' file, to the root directory,
- whereas:
-
- LHarc e /x Archive.LZH stat.h
-
- Extracts two 'stat.h' files: one to the root directory, and
- the other to the directory \tc\include\sys\.
-
-
- Use of the /r switch allows storage of all files with the same name
- by recursively searching directories. Thus,
-
- LHarc a /r Archive.LZH stat.h
-
- Adds two 'stat.h' files, with path names, to 'Archive.LZH':
- one from the root directory, and the other from the
- directory \tc\include\sys\.
-
- The /r switch always sets the /x switch simultaneously. If
- you don't want full path names, include /x- after specifying
- the /r switch.
-
-
- /p[-|+] (distinguish Path names)
-
- Distinguishes between file names extended by directory
- names. Suppose your archive 'tc.lzh' contains both 'stat.h'
- and '\sys\stat.h'. Then:
-
- LHarc e tc stat.h
-
- Extracts both 'stat.h' files, and the older one will be
- over-written by the newer one. Furthermore,
-
- LHarc e /p tc stat.h
-
- Extracts only 'stat.h', and
-
- LHarc e tc sys\stat.h
-
- Extracts only '\sys\stat.h'.
-
-
- /c[-|+] (skip time-stamp Comparison)
-
- LHarc [efux] /c Archive.LZH [file1.ext file2.ext ...]
-
- If a file with the same name is to be created, the default
- action of LHarc is to compare the time stamp of each pair of
- files, and some will be overwritten and some just ignored.
- This switch forces LHarc to overwrite any existing files
- with extracted ones of the same name.
-
-
- /m[-|+] (no Message)
-
- LHarc [<command>] /m Archive.LZH [file1.ext file2.ext ...]
-
- By default, LHarc will ask questions like "Overwrite [Y/
- N]?". This switch suppresses these prompts, and LHarc will
- continue as if "y" is typed in.
-
-
- /a[-|+] (any Attribute)
-
- LHarc a /a Archive.LZH file1.arc
-
- Adds 'file1.arc' to 'Archive.LZH'.
-
- Normally, LHarc will not archive files with hidden,
- read-only, or system attributes. The /a switch forces LHarc
- also to archive files with these attributes.
-
-
- /r[-|+|2] (Recursively)
-
- There are three modes of collecting files to be archived:
-
- (a) specified file(s): /r-
-
- Adds files with specified file names only (default mode).
-
- (b) across directories: /r or /r+
-
- LHarc a /r Archive.LZH *.C
-
- Adds to 'Archive.LZH' all the files with
- extension '.C' - this switch forces LHarc to
- disregard directory names and add all files
- with the specified file name(s) in the working
- directory and its branches. All file names
- will be extended by directory names. This
- switch is used to archive all versions or all
- files of a similar type.
-
- (c) specified directory: /r2
-
- LHarc a /r2 Archive.LZH \DOC
-
- Adds to 'Archive.LZH' all the files in the
- directory specified by the path \DOC, similar
- to the Unix -r option. This switch is used to
- archive a complete directory (other than the
- root).
-
- The /r and /r2 switches will invoke the /x switch
- simultaneously. You may have to toggle the /x switch off
- (with /x-) after using /r or /r2. The /x- switch forces
- LHarc to disregard stored directory names.
-
-
- /w[-|+|<directory name>] (set Working directory)
-
- LHarc a /w[d:\TMP] Archive.LZH [file1.ext file2.ext ...]
-
- Creates all temporary files in the directory \TMP on drive
- D: - if no directory name is specified, the current directory
- becomes the working directory. All the temporary files
- created in the process of archiving will reside in that
- directory and be deleted later. This switch overrides
- setting the working directory with an environment variable
- (see below).
-
- The /w switch is used when
-
- (1) you have no room in the directory where the archive is,
- or
- (2) you want your work done silently and swiftly on a RAM
- disk.
-
-
- /v[-|+|2|<redirection utility name>] (View by page)
-
- LHarc p /v Archive.LZH file1.ext
-
- Extracts 'file1.ext' from 'Archive.LZH' and invokes the
- default utility LESS for formatted display to standard
- output.
-
- NOTE: LESS.COM is an utility similar to MORE.COM of
- MS-DOS and something more, but less than the
- "less" of American Unix networks. PC-LESS.ARC or
- LIST64A.ARC (available from many BBS sources in
- the U.S.A.) works as well as the Japanese
- utility.
-
- LHarc p /v2 [/v<utility name>] Archive.LZH file1.ext
-
- Invokes the specified utility for formatted display to
- standard output, but suppresses the output of path names or
- file names. This switch is provided for viewing binary files
- with a dump utility.
-
-
- LHarc first creates an un-archived file LHARC.TMP and then invokes
- the specified utility, usually a page formatter like SEE.EXE or
- LIST.EXE. Temporary files will normally be deleted after you have
- viewed the output.
-
- LHarc /n Archive.LZH
-
- No indicator. LHarc now uses ANSI escape sequence to report
- the progress of archiving. For IBM-PC users, the display will
- end in somewhat ugry expression. This switch will suppress
- the escape code.
-
- LHarc s /x /k<KEY> Archive.LZH
-
- The switch /k encodes key word <KEY>, or any word, for
- auto-executable file Archive.EXE run. For detail, see
- section 3.
-
-
- Archive name (path name):
- =========================
-
- All files archived by LHarc have the same format as those archived
- by Larc, except that Larc uses the extension .LZS. When you specify
- a different extension for the archive name, LHarc will prompt you
- with:
-
-
- "Extension of archive is not '.LZH.' Continue processing? [Y/N]"
-
-
- Wildcards are valid with the 'e', 'x', 'p', 'l', 'v', and 's' commands:
-
- LHarc e *.LZH *.c
-
- Extracts all files with extension .C from all archives in
- the current directory.
-
-
- Home directory name (drive name):
- =================================
-
- If you specify a home directory name, then everything will happen in
- that directory as though it were the current directory. Specify a
- home directory name ending with either '\' or ':'. All the files
- will be archived without storing this directory name unless you use
- the /x switch.
-
- Example: In the following directory tree:
-
- |-- BIN --
- |
- |-- \ --|-- TC --|-- LIB --
- |
- |-- INCLUDE --|-- SYS --|-- STAT.H
-
- From your root directory, \, typing
-
- LHarc a /r Archive.LZH stat.h tc\include\
-
- Will add '\tc\include\sys\stat.h' to 'Archive.LZH' with the
- path name "\SYS\STAT.H" from your home directory \tc\
- include\.
-
-
- File name (path name):
- ======================
-
- File or path names of files to be archived must be specified, or
- else LHarc will automatically assume *.* with no directory names.
- The wildcards '*' and '?' behave exactly as in DOS. You cannot use
- them to specify directories except with the /r2 switch, similar to
- the Unix -r option for cp, mv, and rm.
-
-
- Switch character:
- =================
-
- If you are using some other character, like '-', in place of the
- forward slant '/' as a switch delimiter (from DOS Function 37H, Set
- Vector), you have to use your delimiter, say '-', in place of '/',
- like "-cx". You may then use '/' for a directory delimiter, similar
- to Unix convention. (You can use '-' as a switch character with
- LHarc anyway.)
-
- The above comment may not apply unless you are running MS-DOS 3.xx.
-
-
- 2. Setting Switches in an Environment Variable
-
- You may set any of LHarc's default switches with the environment
- variable 'LHARC':
-
- SET LHARC=/we: /r2
-
- Will set drive E: as the working directory and archive all
- files in directory mode.
-
-
- You may also specify LHarc's working directory with the environment
- variable 'TMP':
-
- SET TMP=E:
-
- but the /w switch will override this setting.
-
-
- 3. Self-Extracting Files
-
- Now we have revised this part of the problem extensively. As you
- have seen in the first screen of this software, a totally new text
- file is introduced for all self-extracting files made by LHarc.
- This is controlled by naming such a file with the single character
- '!' to prompt LHarc to display this special file. Edit an ASCII file
- and then rename to just '!'. On typing file name of compressed .EXE
- or.COM file, LHarc looks for this text file first of all and displays
- it on the screen with a [Y/N] prompt to let you read it all. Namely,
- it is an auto-executable file for the display only, no harm, no
- danger. Not to worry.
-
- You may send E-mail archived by Lharc, say the first page separated
- with name '!'. Then this part of your mail, when de-archived, will
- appear on the screen with Continue [Y/N]? Isn't it appealing? I call
- this new feature by the name telop. You may archive files with telop
- '!' included. You don't see telop from outside, yet you just see the
- telop and type to know what are there by seeing telop screen. You can
- archive files with short description, which is visible without really
- de-archiving.
-
- Moreover, there are two models for the SFX, self extractor,
- available for your convenience and for the safety from trojans.
-
- 1. Small SFX: This model supports files of small enough to work
- within the available memory size. You can't make a self-
- extracting of size more than 640 Kilobytes theoretically.
- You will likely not wish to use this size if over 400k from
- a practical standpoint. A few people may even have trouble
- supplying 400k remaining memory. If any question use large
- SFX now explained.
-
- 2. Large SFX. You can make self-extracting size of up to 1
- Megabytes. Beside you can incorporate self-executable
- AUTOLARC.BAT file to make programs run automatically. I
- have provided a 'key word' system for the auto-run. You have
- to know the 'key word' to let it run for the first trial.
- After then the self-extracting auto-run program learns to
- work without the 'key word'.
-
-
- To make a small SFX:
- --------------------
- LHarc s Archive.LZH
-
- Makes a self-extract file Archive.COM or Archive.EXE
- accoring to the size of the file. If a telop file ! is
- included, you will see the telop display first and then you
- may type [Y/N] to have files un-archived or just let it be.
- To record telop file ! on your disk, type:
-
- LHarc e Archive.COM>!
-
- or, if an .EXE file:
-
- LHarc e Archive.EXE>!
-
-
-
- To make a large SFX:
- --------------------
- LHarc s /x Archive.LZH
-
- or for auto-run, self-extract file add the /k switch and
- key word:
-
- LHarc s /x /kKEY Archive.LZH
- ---
-
- Usingh the /x switch specifies the large SFX is to be made.
- KEY stands for a key word, only used if Archive.LZH contains
- an AUTOLARC.BAT file, which you make. You will always have
- an .EXE file with the /x switch so in the above case, it will
- create Archive.EXE. You may include a '!' text file as this
- is always available.
-
-
- Archive [/ed:] [/x]
-
- for an auto-run file having an AUTOLARC.BAT file:
-
- Archive KEY
-
- or
-
- Archive key [/ed:] [/x]
-
- NOTE: The key word need not be secret at all. If a
- public word, and some concern is present, just
- type:
- Archive
-
- without key word and the contents will then be
- extracted for inspection without auto-run.
- This makes the LHarc auto-run very versatile
- and still minimizes problems with Trojan horse.
-
- To un-archive you have to type key word to run AUTOLARC.BAT.
- Without this key word, the file just extracts itself without
- prompt. If it learns the key word once, then it will run
- automatically at anytime on any directory, WITHOUT adding
- the key word. This may be hazardous. The key word is not
- case-sensitive. KEY and key both can make it run. The upper
- limit of the reduced size for self-extracting is at least
- 1MB. Try it on your own system.
-
- Thew optional /e switch specifies the directory [d:]on which
- archived files to be expanded. If Archive.LZH has files with
- path_names, then files reproduced with these path_names on
- respective sub-directories. If such sub-directories do not
- exist, Archive[.EXE] file will automatically create them.
-
- This /e switch is new in this version. The AUTOLARC.BAT file
- is reproduced on your curent directory, with or without this
- /e switch.
-
- The attribute of of all the archived files is always 20H. If
- you want them to be read only, you can do it by AUTOLARC.BAT
- with a line something like:
-
- chmod -w file?.*
-
- If Archive.LZH contains file1.EXE file1.DOC file2.EXE
- file2.DOS...[etc.]
-
-
- 4. Archive File Header
-
- LHarc's header is compatible with that of Larc. Methods of
- archiving are two:
-
- -lh0- stored as it was, and
- -lh1- compressed by LZHuf coding.
-
- LHarc can extract files stored in Larc-created archives (with the
- extension .LZS) if they are type 4 or 5.
-
- NOTE: Larc is another Japanese archiver, with source code published
- in a Journal. It is now available in the United States, also.
-
-
- 5. Result Codes
-
- LHarc returns the following result codes to the parent process:
-
- 0 Normally finished.
-
- 1 Process finished with nonexistent file names ignored
- during archiving, or CRC error occurred during
- un-archiving.
-
- 2 Process terminated by fatal error; no archives created or
- files moved.
-
- 3 Unable to write the temporary files into the archive. Work
- file renamed as 'LHARC.)2(', original archive deleted. Try
- renaming LHARC.)2( as your archive, although it could be
- damaged.
-
-
- 6. Temporary Files
-
- LHARC.)1( Original archive, renamed.
- LHARC.)2( Work file used to create new archive.
- LHARC.TMP Work file created for review by some page
- formatter.
-
- If a file with any of these names already exists, then the behavior
- of LHarc is unpredictable.
-
-
- 7. My Distribution Policy
-
- Under the following conditions, you may freely copy and distribute
- this software:
-
- 1. Under all circumstances, "Copyright by Haruyasu Yoshizaki"
- must be attached to the copy.
-
- 2. This manual or its hardcopy should go together with the
- software.
-
- 3. You may modify the program, but in that case, you must
- distribute the complete source code for the program,
- including your specific contributions, and you must make it
- clear that you have made such modifications.
-
- 4. You must try to distribute the latest version available.
-
- 5. I assume no warranty for any claim of damage you may sustain
- by using this software.
-
- 6. I have no obligation to revise the program to correct any
- fault in this software.
-
- 7. For the commercial use of this software, I add the following:
-
- a. The entire software made incorporating this program
- should not be copy protected in the sense that the
- DISKCOPY program of MS-DOS makes an imperfect copy.
-
- b. Every part of the package should print the name
- "LHarc" and the copyright banner.
-
- c. The distribution policy of this software should be
- printed either in the manual, in the package, or on
- the disk label.
-
-
- 8. Acknowledgments
-
- Special gratitude to H. Okumura, who uploaded the code for LZari in
- PC-VAN on which this LZHuf coding is based and to K. Miki, who re-
- posted LZARI on Nifty Serve and who is the author of Larc I. For all
- those who contributed reviews, comments, and bug reports, I thank you
- very much.
-
- I also appreciate the work and personal cost (both in his time and
- financial cost to telephone the United States) that Prof. Kenjirou
- Okubo has contributed to make this available to interested users in
- the United States.
-
- The .EXE file for LHarc is nearly 2K smaller owing to use of pcs27162
- by S. Takanami. I honor this utility and thank him for letting me
- use it to prepare LHarc.
-
- I have made so many revisions to LHarc, yet I do not think I can
- ever expel all the bugs dwelling inside. I would appreciate your
- comments and bug reports. Please route them to me via the SDR Forum
- of Nifty Serve or salon.pds of ASCII Net.
-
-
- 9. References
-
- 1) Labo, A.P., A Hard Disk Cookbook: Shouei Press (1987).
-
- 2) Kurita, T., Huffman coding, bit: Jewelry Box of Computing 43,
- vol. 20, no. 7, pp. 100-101 (1988).
-
- 3) Miki, K., Documentation for Larc: LARC.MAN
-
-
- 10. History of Revisions
-
- Ver. 1.12b
- 1. Fixed AUTOLARC.BAT bug for auto-run after auto-extract.
-
- Ver. 1.12
- 1. 't' command to test integrity of archived file.
- 2. Change of Screen display due to new commands and switches.
- 3. Bug fixed for CRC error check with archived file of size zero.
- 4. New telop file '!' with Large and Small SFX.
-
- Ver. 1.01
-
- 1. Minor touchups to help screen and program messages.
- 2. Editorial polishing of User's Manual for clarity and readability.
-
- Ver. 1.00
-
- 1. Mode without work file added.
- 2. /r switch forces /x switch on simultaneously.
-
- Ver. 0.07c
-
- 1. Removed bug in detecting memory shortage.
- 2. Compacted self-extracting program.
-
- Ver. 0.07a
-
- 1. Ver. 0.05-0.07 break down Heap areas. Corrected.
- 2. Accepts any directory name with any attributes.
-
- Ver. 0.07
-
- 1. Prohibited actions to a write-protected archive.
- 2. 'm' command now removes files made by older versions.
- 3. Error-handling routine revised in dealing with wildcards for
- archive names.
- 4. No command specified is now interpreted as 'l' command specified.
- 5. Error level 1 returned when CRC checking detects an error during
- un-archiving.
- 6. Program now halts when self-extraction process meets an error.
- 7. Bug fixed in CRC checking when a directory name is met in un-
- archiving process.
-
- Ver. 0.06b
-
- 1. Removed possibility of a damaged cluster appearing in failing to
- re-create (= freshen) an archived file.
- 2. Removed '+' bug in redirecting output with 'p' command.
-
- Ver. 0.06
-
- 1. If a file transaction fails with 'u', 'm', or 'f' command, LHarc
- will leave the archive as it was.
- 2. File attributes were sometimes misunderstood by 'f' command. This
- possibility eliminated.
-
- Ver. 0.05
-
- 1. CRC checks extended to self-extracting files.
- 2. Completely recursive modes made possible for 'a,u,m' commands.
- 3. Meets requirements of APPEND.EXE of MS-DOS version 3.3.
- 4. '\' no longer needed at end of working-directory name with /w
- switch.
-
- Ver. 0.04
-
- 1. Support for environment variable 'TMP'.
- 2. "LHarc p /v a.lzh a_file" used to delete 'a_file' in case of an
- error. Bug fixed.
- 3. Added check for a file with the same name in making a self-
- extracting file.
- 4. In a self-extracting archive, if a file with the same name of
- larger size existed, then LHarc kept the difference when it was
- overwritten by one of smaller size. This bug removed.
-
- Ver. 0.03
-
- 1. Environment variable 'LHARC' sets some of the switches.
- 2. Made it possible to specify '+', '-' by switches.
- 3. /v switch included.
- 4. Wildcards can now be used for archive names with 'e,x,p,l,v,s'
- commands.
- 5. Home directory names had some interactions with Kanji-code. Fixed.
- 6. Fixed header-file bugs of self-extracting .EXE files.
-
- Ver. 0.02
-
- 1. Support of 'm' command.
- 2. Larc 3.xx compatibility. Type 4, 5 .LZS files are un-archived.
- 3. Accepts systems with different switch characters.
- 4. Minor bugs fixed with 'e' command.
- 5. Revised format for 'l' command.
-
- Ver. 0.01
-
- 1. Support of self-extracting files.
- 2. 'p' command added.
- 3. /c switch applies for more combinations of commands and switches.
- 4. Error handling revised.
- 5. Bug fixed in 'l' command.
- 6. New algorithm introduced in sorting path names.
-
-
- 11. Comments
-
- a. Some other algorithms I have in mind
-
- For some specific files, the compression ratios are not as good as
- with PKware's PKZIP. For such files, I may use LZSS compression with
- correlated arithmetic compression. This is an effective method, and
- my experiments show that the ratios are no less than PKware's. Yet
- it takes too much time in both the archiving and de-archiving
- processes, with much higher memory consumption. Consequently, I
- intend to keep working on this LZHuf algorithm.
-
- Naturally, I am ready to accept any comments, and I continue to
- experiment.
-
-
- b. Naming of LHarc
-
- Some people have expressed concern over the fact that the string
- "arc" is contained in the name "LHarc." I make the following
- statements just for them.
-
- The crucial points in SEA's suit against PKware were the way in
- which PKware advertised and sold PK(x)arc with an emphasis on its
- ARC compatibility, and the loss of profits from shareware
- contributions.
-
- This is not the case with LHarc. I have used a different archiving
- method and made it a freeware program with a format incompatible
- with ARC. Therefore, I hope I will not be bothered by similar
- accusations.
- - end -