home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1995 November
/
PCWK1195.iso
/
inne
/
podstawy
/
os2
/
archive
/
lh222.exe
/
LH2.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1993-01-29
|
35KB
|
864 lines
ΓòÉΓòÉΓòÉ 1. Title Screen ΓòÉΓòÉΓòÉ
LH/2 converts a set of files into a single file. This single "file
archive" is smaller than the sum of the original files, since data
compression is used. LH/2 can later be used to extract the files in
their original form.
Since the "file archive" created by LH/2 stores related files in a
single package, it is particularly well suited for transferring files
through a modem. This will ensure that all necessary files are
included, and that none were forgotten. Since LH/2 keeps a "check
sum", it will also verify that the files were received correctly. As
an added bonus, since the files are compressed, it will take less
time to send the file.
If the person on the receiving end does not have LH/2, the person
sending may choose to turn the archive into a "self-extracting"
executable program.
ΓòÉΓòÉΓòÉ 2. Copyright Notices ΓòÉΓòÉΓòÉ
(c) 1991-93 A:WARE Incorporated.
by Peter Fitzsimmons
All Rights Reserved.
All commercial restrictions have been lifted with this 2.20 release.
Although A:WARE Inc. still owns the source code, the executable is
completely public domain. Any person or company can use it for internal
use, software installation or distribution, backup, etc.
A:WARE Inc. may soon, however, sell a "compression kit" for
those companies that insist on having source code, or that want to
build compression into their own OS/2 software installation/distribution
programs.
A:WARE Inc.
6056 Cayeswood Court
Mississauga Ontario
Canada L5V-1B1
Voice: (416)858-3222
FidoNet: 1:250/292
BBS Sol3: (416)858-8488
ΓòÉΓòÉΓòÉ 2.1. Disclaimer ΓòÉΓòÉΓòÉ
DISCLAIMER
The Program is supplied "AS IS" without any warranty of any kind,
either expressed or implied, including, but not limited to, the
implied warranties of merchantability and fitness for a particular
purpose.
In no event shall A:WARE INC be liable for any damages, either
direct or consequential, caused by the use, or inability to use,
this program, even if A:WARE INC has been advised of the
possibility of such damages.
ΓòÉΓòÉΓòÉ 3. General Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 3.1. Mandate, 32 bit version ΓòÉΓòÉΓòÉ
Mandate, 32 bit version.
- Maintain the lh/2 tradition of an easy to use, free, public domain
file format based archiver for OS/2. One of the reasons I wrote
LH-ANSIC in the first place was because ARC/PAK/ZIP/ZOO/LHA were too
complicated. I have resisted adding not-completely-necessary features
in order to keep the "syntax screen" very small.
Despite the drastic internal changes to LH/2, I am very pleased to
report that I only added one command line switch (/E).
- All commercial restrictions have been lifted with the 2.20 release.
Although A:WARE Inc. still owns the source code, the executable will
be completely public domain. Any person or company can use it for
internal use, software installation or distribution, backup, etc.
I may soon, however, sell a "compression kit" for those companies
that insist on having source code, or that want to build compression
into their own OS/2 software installation/distribution programs.
ΓòÉΓòÉΓòÉ 3.2. Program History ΓòÉΓòÉΓòÉ
LH/2 V2.19 32 bit beta. 92/12/17
Pre-Release 32 bit beta. Program history for this release will be covered
under 'New Features' etc.
LH 2.14 Mon 03-30-1992
Wow; two releases in the same month. Bending to popular demand (all
two of you!), Lh2 will now preserve case. LH2 is still case
insensitive when searching for files however.
In compatability mode (/c), file names are stored in upper case.
LH 2.13 Tue 03-10-1992
So solve a few problems with it's interaction with Squish, LH will
now exit with a non-zero ERRORLEVEL if:
1) No files are extracted.
2) An invalid LZH header is encountered.
Archives with -lh4- type files are now supported (for decompression) by
using the -lh5- code, which seems to work fine.
A new option: /m. This will cause only files with their archive bits
set to be stored (during an ADD or MOVE operation). The archive bit is
reset if all goes well.
LH 2.12
During compression, LH 2.12 will recognize that there is no space left
on a disk for '-lh5-' compression. (It always worked correctly for
-lh1-).
If a file with an unknown stowage is encountered, LH 2.12 will no
longer stop at a prompt if the /o option is specified.
Wed 05-22-1991
Version 2.11 is a very small bug fix. When Adding/Moving files,
LH.EXE will now correctly exit with an ERROREVEL of 0 if successful.
Original 2.00 Documentation (LH2.DOC), Mon 04-29-1991
Welcome to version 2.00 of LH2. The last version that most of you
had access to was 0.80. I've jumped all the way to 2.00 so that an
association can be made with LHA 2.x, the DOS program which LH2 is
a clone of. With 0.80, I thought LH2 was "functionally stable";
But then Haruhiko Okumura had to go and create a better compression
algorithm! This new version, 2.00, supports that new compression
method and has a few other small changes as well.
Notes:
o This new version is (on many files) faster than the old version
while compressing. It is always faster at decompression (2 to
3 times faster). Files that contain many repeated bytes/strings
(such as text files) compress the fastest (almost as fast as Zip
imploding). Files that are more random compress slower; a very
large and very random file may compress slower than the old
version of LH.
o It is coded all in C, and is therefore slower than Yoshi's DOS
version (LHA.EXE) which is coded in mostly assembly. My tests
show LH2 to be a little more than 1/2 the speed while
compressing, and about 2/3 the speed at decompressing. I can
live with it.
o /c causes LH2 to use the old -lh1- compression method that prior
versions of LH2, and LHARC 1.x, used.
o the new 'D' command erases files from an *.lzh archive.
o When extracting files from an archive, the disk space for the
destination file is allocated at the time the file is opened.
This ensures that as little fragmentation as possible will occur
on the file.
o Specifying a drive with no directory (LH A FOO.LZH C:*.*) will
use the root directory, rather than the current directory on
that drive. Fixed.
o The size of LH.EXE has grown quite a bit (from 38k to 48k) since
it now has to support both the old and new
compression/decompression code.
o I've moved. My new phone number is near the bottom of this
document. I've also added a disclaimer there.
o The new compression code (for -lh5- compression) was lifted from
AR02.LZH, by Haruhiko Okumura. Thanks once again Haruhiko! I
can't make heads or tails of Yoshi's code.
LH2.DOC, Mon 03-11-1991
Version 1.00 fixes a small bug: If you tried to L)ist the contents
of an *.lzh file that did not exist, no error message was printed.
LH2.DOC, Tue 01-08-1991
This version, 0.80, is the first release that supports EAs
(Extended Attributes) and (to some degree) 'long' file names. If
there are no problems with it, it will be renamed 1.00 and
forgotten about.
EAs are supported in the following manner. During the file search
stage (where LH creates a list of all matching files to be sorted),
a pseudo-archive named EA.LZH is created, if needed. Using the
same names as the original files, EA.LZH contains the associated
extended attributes. EA.LZH is placed in the archive along with the
other files. Therefore, anyone who does not have this version of
LH2 can still apply the EAs to their respective files by using the
OS/2 EAUTIL.EXE file. A file named '!readme.ea' is imbedded in
EA.LZH, which supplies instructions to achieve this.
If you use this version of LH2 to extract archives (and do not use
the /i switch), EA.LZH will be extracted automatically and applied
to the files, then erased.
Notes:
o This version, and future versions, require OS/2 1.20 or newer.
o Wildcards should work just like 1.20 wildcards. (Let me know
if you find an inconsistency).
o t = test option is new.
o /i. This option causes EAs not to be stored for the Add and
Move commands. When used with the eXtract command, /i causes
EA.LZH to be extracted, but not applied or erased.
o LH2 does not support directory EAs, only file EAs.
o do NOT update an lzh file that was already stored with EAs
(since ea.lzh will already be in the lzh file).
o The EAs are applied after ALL of the files have been extracted.
A side effect: If you do not extract a file that has an EA, by
answering 'n' to the "File '<file>' already exists. Overwrite?"
prompt, the EA WILL STILL BE JOINED to the old file on your
disk.
o Longnames are supported -- sort of. The total length of a file
name (including path) must be less than or equal to 74 bytes.
Longnames are stored without modification in the lzh header,
therefore they will fail to extract on a FAT partition and/or
under DOS. Therefore, the onus is on the user to enforce normal
(8.3) file names, so as not to inconvenience other users. It is
HIGHLY recommended that you don't use longnames in files you
upload to BBS's.
LH2.DOC, Tue 03-06-1990
LH2 is an OS/2 clone of the MSDOS program LHARC.
It is based on the source code I released as "LH-ANSIC.LZH", the
ansi-c version of a simplified LHARC compatible compressor/decompressor.
This program is the same as LH-ANSIC.LZH, with the following exceptions:
o The Move command has been added. (ADD files, then erase them).
o Wildcards are supported from the command line during an ADD/MOVE
function.
o The /s command will cause LH2 to "walk" down directory trees.
For a complete list of functions, run LH.EXE without any arguments.
NOTE: OS/2 1.20's long file names and EAs are *NOT* supported in
this release. This would make the program incompatible with the
original LHARC. I may change this in the near future though.
Trying to "BIND" this program will cause unpredictable results when
run in DOS mode. (DosFindFirst()/Next() can not be supported in DOS
mode if used recursively).
ΓòÉΓòÉΓòÉ 3.3. Bug Fixes ΓòÉΓòÉΓòÉ
Bugs Fixed from 2.14
- will not abort when it can't open a file, such as SWAPPER.DAT, when
compressing.
- When compressing, /A (store file attributes (system, hidden,
readably)) was unpredictable if the current dir was not the root dir.
Fixed.
- LH/2 now supports the maximum OS/2 path length: 260 bytes.
As was documented, because of the design of the original *.LZH file
header, LH/2 v2.14 could only handle file names that were 74 bytes or
less. Unfortunately, LH/2 did not enforce this. If you saved a file
> 74 bytes, the header "overflowed" into the file's data, destroying
any chances of extracting the file. This only burned one person, to
my knowledge (sorry Scott!). That incident just happened a few weeks
ago, and is what got me working on LH/2 again!
Long file names (> 64 bytes) are now stored differently. They are
stored in an "extended header"; a feature that was new to LHA 2.00
(LHA is the dos program that LH/2 grew from).
ΓòÉΓòÉΓòÉ 3.4. New Features (ver 2.20) ΓòÉΓòÉΓòÉ
New Features (ver 2.20)
- Support for file names up to 260 characters.
- Extended Attributes (EA) are stored differently. The old way was
to create a file named EA.LZH inside of the archive, which had an
entry for each file that had an EA. This worked fine until you
added a new file to an existing archive -- at which point the old
EA.LZH would be wiped out with the new one. This will no longer
happen.
The new method is not compatible with old LH/2. For this reason,
new LH/2 builds a batch file called "Apply-EA.Cmd" in the archive,
which the end user could run to use OS/2's "eautil.exe" program to
join the EAs to the just-extracted files.
NOTE: Apply-EA.Cmd only works for files, not directories. If you
want to remain compatible with old-lh/2, do not distribute LZH
archives that have dirs in them.
New LH/2 will recognize the old EA.LZH method, and apply the EAs
accordingly.
Skip ahead to the next point unless you care about the technical
details of how EAs are now stored.
All EAs are in 16 bit OS/2 format. Even OS/2 2.0's EAUTIL.EXE
stores them in this format (probably for the same compatibility
reasons that I did). There is only a slight difference in the way
OS/2's "FEA2LIST" structure differs from OS/2 1.x's "FEALIST".
Each file EA (directory EAs are stored differently) looks (to
LHA/V2.14) as a normal file. An EA file is always stored in a
subdirectory called EAS (this is true even if you did NOT use /s).
For example:
EAS\file1 -- this is the ea for file1
file1 -- this is file1
Src\EAS\file1 -- this is the ea for src\file1
src\file1 -- this is src\file1
I had originally discounted this method; if you used another archive
program that changed the order of the files, everything would be
broken.
However, now I store (along with the EAS file) the name of the
parent file in an extended header; so the actual name or order of
the EAS\* file is irrelevant. LH/2 first extracts all non-ea files,
than goes back to the beginning of the *.lzh file and "extracts"
only EA files. The extended headers LH/2 supports are:
Type Description
0 CRC of header + extended header
(as apposed to simple checksum in normal *.lzh header).
1 Extended file name.
2 Extended dir name to which [extended] file name is appended.
79 (ascii 'O') --- LH/2 2.20 extension --- Name of Parent file
this EA file applies to.
The other method I was entertaining (storing the EA itself in an
extended header) had a drawback that might hurt in the future: The
maximum size of an extended header entry is 64K-2 bytes. EAs are
currently limited to 64k, but that may change.
- Directories are now stored as separate entities. This allows
support for dirs that are empty, and dirs that have EAs. This is
particularly important if you are trying to backup your OS/2 2.0
Desktop directories.
This feature is enabled with the new /E option.
A dir is only stored only when ALL of the following are true:
1) /s is used.
2) /e is used.
3) It has an EA or it is empty.
Dirs that are not empty, nor have an EA, are not stored because
there is no reason to store them. Those dirs will be created
automatically when a file is extracted there.
Skip ahead to the next point unless you care about the technical
details of how dirs are now stored.
Dirs without EAs are stored as zero length files. The LZH field
for the file attribute is set to 0x10.
Dirs with EAs are stored, as above, with attribute 0x10 set.
However, the regular "file data" is actually the EA. Example:
Original Packed Rat Date Time Attr Type CRC Name
-------- -------- --- ------- -------- ------ ----- ---- ----------------
1352 550 41% 92-12-17 3:54:38 .D.... -lh5- DBAA os!2 2.0 desktop
Note that the 'D' bit is set. The extended attribute is,
uncompressed, 1352 bytes. After decompressing this archive,
a "DIR" command would list this:
12-13-92 3:36a <DIR> 1352 os!2 2.0 desktop
- All files created by LH/2, when extracting, use the pre-allocate
feature of the DosOpen() api, thus reducing fragmentation. In
fact, you could use LH/2 as a "poor man's de-fraggmenter" if you
wanted. Fragmentation is not very significant with HPFS.
- When adding files to an existing archive, LH/2 no longer
assumes that the files are sorted.
LH/2 now sorts files based on "dir + filename", rather than just
"filename" as it did before.
When new files are added to an existing archive, they are added at
the end (if they are NEW to the archive; if they replace a file,
they will be in the old file's position).
- When /E is used, LH/2 will remove an empty dir even if no files
from that dir were compressed. The old way only removed a dir if at
least one file was compressed from it.
ΓòÉΓòÉΓòÉ 4. Program Documentation ΓòÉΓòÉΓòÉ
ΓûêΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûê
Γûê Lh2 (Compress files) Peter Fitzsimmons 93/02/01 Γûê
Γûê Version 2.20 Γûê
Γûê Usage: LH <cmd> <archive> [file1 file2 ...] [options] Γûê
Γûê Purpose: Collect and compress files. Γûê
Γûê Commands: A - Add files to archive. Γûê
Γûê M - Move files to archive (erases files). Γûê
Γûê L - List files in archive. Γûê
Γûê X - Extract files from archive. Γûê
Γûê T - Test - Extract files to NUL. Γûê
Γûê D - Delete files from archive. Γûê
Γûê Options (may appear anywhere on the command line): Γûê
Γûê /v - verbose (L command) Γûê
Γûê /a - maintain file attributes. (A, M or X) Γûê
Γûê /s - collect/extract subdirs. (A, M or X) Γûê
Γûê /o - no prompts. (L or X) Γûê
Γûê (When used with X, /o will overwrite Γûê
Γûê existing files without prompting) Γûê
Γûê /i - ignore EAs. (A, M or X) Γûê
Γûê /e - save/rest empty dirs & dir EAs(A, M or X) Γûê
Γûê /m - store modified files only (A or M) Γûê
Γûê /h - additional information. Γûê
ΓûêΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûê
ΓòÉΓòÉΓòÉ 4.1. Commands ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 4.1.1. A - Add files to archive. ΓòÉΓòÉΓòÉ
Using the 'A' command will create an archive file if one does not exist already,
or will append to one if it already exists.
Example:
[C:\] lh32 a xxx yyy (xxx is archive name, yyy is files to archive)
LH2 V2.20 - Copyright (c) 1989-1993 A:Ware Inc.
Max files = 13107
<--- This will show maximum allowable files per archive.
Creating temp file AAABEB.TMP
<--- This will only display during UPDATE for file integrity purposes.
CREATING: test.lzh
<--- This will either show CREATING or UPDATING
Original Packed Rat Date Time Attr Type CRC Name
-------- -------- --- ------- -------- ------ ----- ---- ----------------
xx% 23654 9146 39% 93-01-16 16:29:56 ...... -lh5- ADC5 lh2.ipf
-------- -------- --- ----------------
23654 9146 39% 1 files.
The xx% will show percentage increments for the duration of the operation.
Options available with this command:
/a - store file attributes
/s - store/recurse subdirectories
/i - ignore EAs
/e - save empty directories and/or directory EAs
/m - store modified files only
ΓòÉΓòÉΓòÉ 4.1.2. M - Move files to archive (erase files). ΓòÉΓòÉΓòÉ
Using the 'M' command will create an archive file if one does not exist already,
or will append to one if it already exists.
Once the archive is complete, the original files will be deleted.
Example:
[C:\] lh32 M xxx yyy (xxx is archive name, yyy is files to archive)
LH2 V2.20 - Copyright (c) 1989-1993 A:Ware Inc.
Max files = 13107
<--- This will show maximum allowable files per archive.
Creating temp file AAABEB.TMP
<--- This will only display during UPDATE for file integrity purposes.
CREATING: test.lzh
<--- This will either show CREATING or UPDATING
Original Packed Rat Date Time Attr Type CRC Name
-------- -------- --- ------- -------- ------ ----- ---- ----------------
xx% 23654 9146 39% 93-01-16 16:29:56 ...... -lh5- ADC5 lh2.ipf
-------- -------- --- ----------------
23654 9146 39% 1 files.
The xx% will show percentage increments for the duration of the operation.
Options available with this command:
/a - store file attributes
/s - store/recurse subdirectories
/i - ignore EAs
/e - save empty directories and/or directory EAs
/m - store modified files only
ΓòÉΓòÉΓòÉ 4.1.3. L - List files in archive. ΓòÉΓòÉΓòÉ
Using the 'L' option will list the original file
size, the file date, and the file name to your screen.
This example was invoked with the following command:
[C:\] LH32 L ARCHIVE.LZH
Listing archive: C:\ARCHIVE.LZH
Original Date Name
-------- -------- -----------------------------------------
21578 92-12-27 file.txt
-------- -----------------------------------------
21578 1 files.
Options available with this command:
/v - verbose
ΓòÉΓòÉΓòÉ 4.1.4. X - Extract files from archive. ΓòÉΓòÉΓòÉ
Using the 'X' command will extract a file(s) from an archive.
[C:\]LH2 X LH2INF
<--- May contain wildcards, multiple files, etc.
LH2 V2.20 - Copyright (c) 1989-1993 A:Ware Inc.
Extracting archive: C:\lh2\LH2INF.LZH
Original Date Name
-------- -------- -----------------------------------------
21578 92-12-27 test.exe
-------- -------- -----------------------------------------
21578 1 files.
Applying Extended Attributes from 'C:\lh2\LH2INF.LZH':
If any Extended Attributes are attached to the file, they will
be extracted and attached automatically.
Options available with this command:
/a - restore file attributes
/s - extract into sub-directories
/o - no prompts (Overwrite existing files without asking)
/i - don't restore EAs
/e - restore empty dirs and dir EAs
ΓòÉΓòÉΓòÉ 4.1.5. T - Test - Extract files to NUL. ΓòÉΓòÉΓòÉ
Using the 'T' command will extract a file(s) from an archive to NUL. You will still
see the incremental percent sign '%' but no files will be created in your
current directory. It is assumed the archive is ok if the file(s) extract
completely without errors.
ΓòÉΓòÉΓòÉ 4.1.6. D - Delete files from archive. ΓòÉΓòÉΓòÉ
Using the 'D' command will delete file(s) from an archive.
A temporary file with the extension of '.$LH' will be created and deleted if the
program completes successfully.
[C:\]LH2 D LH2INF *.lst
<--- May contain wildcards, multiple files, etc.
ΓòÉΓòÉΓòÉ 4.2. Options ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 4.2.1. /v - verbose ΓòÉΓòÉΓòÉ
This option will give you more statistics about the file during the operation, ie;
time and date information, ratios, etc.
ΓòÉΓòÉΓòÉ 4.2.2. /a - maintain file attributes. ΓòÉΓòÉΓòÉ
This option will extract/store file attributes:
When the List command is used, LH/2 uses the following characters
to distinguish file attributes:
'H' for hidden.
'R' for write-only.
'S' for system.
'A' for archive.
These dos-style file attibutes should not be confused with OS/2 Extended
Attributes (EAs). EAs are used to store information such as icons,
bitmaps, file descriptions, etc.
For more information about file attributes see the OS/2 on-line
reference for the 'ATTRIB.EXE' program.
ΓòÉΓòÉΓòÉ 4.2.3. /s - collect/extract subdirs. ΓòÉΓòÉΓòÉ
This option will extract/store subdirectory information. If the directory does
not exist when you are extracting, you will be prompted if you wish to
create the directory (the /O option will cause the directories to be created
without prompting).
ΓòÉΓòÉΓòÉ 4.2.4. /o - no prompts. ΓòÉΓòÉΓòÉ
This option will supress all questions - allowing for unattended operation.
During Listing, this will prevent the "More?" prompt.
During Extraction, this will cause directories to be created
automatically, and existing files to be overwritten.
ΓòÉΓòÉΓòÉ 4.2.5. /i - ignore EAs. ΓòÉΓòÉΓòÉ
This option will, when extracting or archiving, will ignore all Extended
Attributes for files.
Therefore, when used with the ADD command, EAs will not be stored in
the archive.
When used with the EXTRACT command, any EAs in the archive will not
be applied to their associated files.
ΓòÉΓòÉΓòÉ 4.2.6. /e - save/restore empty directory & dir EAs. ΓòÉΓòÉΓòÉ
This option will extract/store empty directories and directory Extended
Attributes.
ΓòÉΓòÉΓòÉ 4.2.7. /m - store modified files only. ΓòÉΓòÉΓòÉ
This option will only store files that have the 'A' (archive) attribute set.
After successful storage, LH/2 resets the 'A' (archive) attribute.
OS/2 automatically sets the 'A' attribute whenever a file is modified.
ΓòÉΓòÉΓòÉ 4.2.8. /h - additional information. ΓòÉΓòÉΓòÉ
Examples:
1) LH2 A PROGRAMS \usr\*.c D:\*.h /s
Collect all *.c files from \usr (and children of \usr), as well
as all of the *.h files from every directory on drive D:.
2) LH2 X PROG*
Extract all archives matching prog*.lzh into the current dir.
Any path information in the archives will be ignored.
3) LH2 X PROG* e:\home *.c
As in 2, but extract files into E:\HOME (dir must exist). Only
extract files matching *.c.
4) LH2 X PROG* e:\home *.c /s
As in 3, but path information WILL be kept. Directories will be
created off of e:\home as needed.
5) LH2 X PROG* e:\home src\*.c /s
As in 4, but only files that were collected from a src\
subdirectory will be extracted.
ie:
In LZH file Extracted to
----------- -------------
read.c NOT extracted.
work\test.c NOT extracted.
work\src\swell.c e:\home\work\src\swell.c
buggy\work\src\turbo.c e:\home\buggy\work\src\turbo.c
ΓòÉΓòÉΓòÉ 5. SE.EXE The Self Extracting Program ΓòÉΓòÉΓòÉ
ΓûêΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûÇΓûê
Γûê Lh/2 (Self Extractor) Peter Fitzsimmons 93/02/01 Γûê
Γûê Version 2.20 Γûê
Γûê Usage: prog.exe [file1 file2 ...] [options] Γûê
Γûê Purpose: Extract compressed files. Γûê
Γûê Options: /l - list only (do not extract) Γûê
Γûê /t - test only (do not extract) Γûê
Γûê /v - verbose Γûê
Γûê /a - set file attributes (hidden/system/etc) Γûê
Γûê /o - overwrite existing files without asking Γûê
ΓûêΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûäΓûê
To create a self-extracting (SE) OS/2 lzh file, make sure se.exe is in
the current directory when you run the MSE.CMD batch file:
MSE <lzh file>
Do not specify the extension .lzh. You must have already created the
lzh archive before running MSE.CMD.
Example:
Step 1, create archive: LH A TEST *.C
Step 2, create EXE : MSE TEST
When a SE-LZH extracts, it is equivalent to running "LH X TEST /SE"
The SE program is written entirely in C. It is therefore much larger
than some competing products, which are written in assembler. We had
no plans on releasing an SE because of this; but we have bent to user
requests that did not care how big the SE module is.
ΓòÉΓòÉΓòÉ 5.1. MSE.CMD OS/2 Command File ΓòÉΓòÉΓòÉ
@echo off
if "%1"=="" goto USAGE
copy /b se.exe+%1.lzh /b %1.exe && echo %1.EXE has been created.
goto end
:Usage
echo Usage: MSE [lzh file]
echo Do NOT speficy .lzh extension.
:end
ΓòÉΓòÉΓòÉ 6. Backup of OS/2 2.00 Desktop ΓòÉΓòÉΓòÉ
Backup of OS/2 2.00 Desktop
The following procedure has worked well during testing. Use at your own
risk.
- To backup your OS/2 2.0 desktop, use the following command, from the
root directory of your boot drive (this is for HPFS!):
lh a desktop.lzh \os2\os2.ini \os2\os2sys.ini "os!2 2.0 desktop\*" /se
You CAN run this while OS/2 is running -- however, try not to run
any other programs or move anything on the desktop while this is
running. You're best to run it from a Full Screen command prompt.
To restore your desktop, you will have to boot from another disk and
run (from the ROOT dir):
lh x desktop.lzh /se
ΓòÉΓòÉΓòÉ 7. Warnings ΓòÉΓòÉΓòÉ
Warnings
- Do not use very long file names (>64 bytes) for archives that will
be distributed publicly (on an Electronic BBS, for example).
These long file names do not work well with the old FAT file system,
and do not work AT ALL with DOS. In fact, the DOS LHA program that
is required to extract the archive, may "crash" on the long file
names.
If the archive is for your own use, or, if a public archive, it's
use is clearly only for OS/2 users using the HPFS file system, than
you can disregard this warning.
- If you store a dir with an EA, dos and old LH/2 will not be able to
extract the archive correctly (the dirs will be extracted as a file,
preventing that dir from being created).
ΓòÉΓòÉΓòÉ 8. Hints ΓòÉΓòÉΓòÉ
Hints
- Think of LH as "XCOPY" with a transitional state: the *.lzh file.
Many of the options are the same as xcopy.
The same options must be used during both collection and extraction to
end up with the same layout that you started with. To get EXACTLY
what is on your disk (including file hidden/system/archive
attributes), you would do this:
copy in:
lh a myarchive /s /e /a
(this will work too: lh a myarchive /sea)
copy out:
lh x myarchive /s /e /a
Both of the above commands start from the current directory. If the
current directory is the root, your whole disk would be stored.
This is NOT recommended:
lh a mydrives c:\* d:\* e:\* /se
Since the drive letters are always removed when stored in an archive,
after extraction all of your files would end up on one disk.
ΓòÉΓòÉΓòÉ 9. Acknowledgements ΓòÉΓòÉΓòÉ
Acknowledgments
This program is based on the LZH (Lempel-Ziv-Huffman) compression
method developed by Haruhiko Okumura and Haruyasu Yoshizaki. The
compression routines were derived from the uncopyrighted LZHUF.C,
posted by Haruhiko Okumura.
The file format (*.lzh) is compatible with LHARC, the MSDOS archiver
by Haruyasu Yoshizaki. The format of LHARC files was learned from
the public domain LHX.H (LHX is a *.lzh file repair utility) by Mark
Armbrust.