                       
                        lxLite revision history
                       

 [;] Comment
 [*] Modified
 [+] Added feature
 [-] Removed feature
 [!] Bug fix

 1.1.5
  19-Jun-96 another bug fix :-)
  [!]  AT LAST! The famous `cannot open configuration file` bug fixed :-)
       The problem was that CMD.EXE puts in environment the command line
       that you used to start lxLite AS-IS while 4OS2 replaced it by
       fully-qualified lxLite filename followed by its command-line
       parameters. I used it to compute lxLite`s source path; however
       program`s environment contains ANOTHER fully-qualified filename
       path which I use now :-) and which is ALWAYS fully-qualified.
  [+]  Because nobody understands how the /G switch works (I got a lot of
       e-mail regarding this) I added a new switch: /O{X|D|S}{+|-}. If it
       is disabled (/O-, default state) the /G switch works as before, i.e.
       the data is written only if discarded from source file. If the /O+
       option is used, the data is written always (if filemask is specified
       by /G option).
  [!]  Fixed an non-serious bug in CRT.PAS - now lxLite works as expected
       even if it is redirected into a device other than CON (i.e. /dev/nul),
       not only into files or pipes.
  [+]  After a lot of thougts I added into lxLite utility pack my first PM
       program for OS/2 - SysIcons. It is an simple program which allow you
       to change system pointers (including but not limiting to mouse pointers,
       as System Setup->Mouse->Pointer does). Also I included three of my best
       sets of pointers - one which I partially designed myself, partialy
       aquired from different sources, second is the B&W version of first
       and third (white gloves) which I got from somewhere and converted to
       B&W (because on my Cirrus Logic B&W pointers are supported by hardware
       and does not flicker). Sorry to the author of White Gloves set, but I
       lost original archive and copyright notice; I hope you`ll excuse me.
   [!] Improved a bit error checking; previous versions sometimes (seldom)
       failed on almost-good-exe-files (specifically GVPM.EXE which had one
       of non-mandatory internal table beyond the limits of EXE files which
       caused lxLite to fail with an runtime error).

 1.1.4
  14-Jun-96 minor fixes & additions
  [!]  Fixed displaying the question about extra LX data - I forgot to add
       an carriage return after it. Also I removed the warning about the
       possibility that resulting file will become non-functional.
  [!]  Fixed a stupid bug (sizeOf(F) instead of fileSize(F)) which sometimes
       forced lxLite to discard debug info even if you specify to leave
       it in resulting file. In such cases lxLite displayed that file
       has X bytes of extra data and the same amount of debug info.
  [+]  Added an sub-option for /G[X|D|S]{#} - the /GX option now specifies
       the filemask for files where to store stubs (even if lxlite won`t
       remove them).
  [!]  Fixed a minor bug in lxLite - when file was already processed but
       stored with debug info and you process it again and choose to discard
       debug info it refused to do it because `file was already processed`.
  [!]  Fixed a serious bug - the /G option in version 1.1.3 DOES NOT DO WHAT
       YOU PRESUME :-) It stored garbage instead of debug/extra data.
  [*]  The option /GX*.$x$ is used by default. This was done for those
       executables which failed to run after packing because the extra data
       has been stripped. Use COPY /B {file}.exe+{file}.x {newfile}.exe
       command to append extra LX data back - in most cases this will
       restore the functionality of LX files. Note that now lxLite leaves
       those *.$x$ files as garbage, so don`t forget to test the executable
       functionality and to delete them if executable still works.
  [*]  Improved performance of ChCase - now when computed filename will
       be the same as initial file will be simply skipped.

 1.1.3
  28-May-96 fixes & changes
  [*]  Modified lxLite to redraw its progress bar only when it really changes.
       This may improve its execution speed when running it in windowed
       sessions (however I don`t use them :-)
  [+]  Added option /G[X|D] which specifies an file mask for files where to
       store the e[X]tra LX data and [D]ebug info when encountered and if
       user chooses to discard it.
  [+]  The /S switch now displays the status of the /I switch also.
       This is done for those who don`t believe that it always works
       (you know who you are :-)
  [-]  Removed the /O{#} option which has proven to be useless.
  [-]  Removed the old /D{+|-} switch (debug info remove on/off). Now lxLite
       prompts the user if the debug info is encountered; however the default
       behavior is to discard debug info (/YDD) as before. Now /D switch have
       other meaning (see below).
  [+]  Added (other) /D switch to set exclusion filemasks. Filemasks uses the
       same rule as OS/2 does (in fact, lxLite uses OS/2 API to do that).
       For example, /Dex*re.??e:*.zip:*.pas:*.obj will exclude these files
       from lxLite`s field of view. The default configuration now includes
       the [exclude] configuration which excludes all known executables
       on which packing cannot be performed (such as PMJPEG, Watcom C etc).
       Masks should be separated by ':'; the ',' and ';' symbols can be
       present in HPFS long filenames, so they aren`t taken into account.
  [+]  The /Y switch is modified (expanded). Now you can specify answers
       for each type of possible questions separately. The /Y switch must
       be followed by a letter - ID of answered question, then a letter -
       what do you want answer to be to that question. The possible IDs
       for now are:
       -----------------------------------------------------------------------
       Module is in [U]se (answers: [R]eplace, [S]kip or [A]bort);
       File contains [D]ebug info ([D]iscard, [L]eave, [S]kip or [A]bort);
       File contains e[X]tra data ([D]iscard, [L]eave, [S]kip or [A]bort);
       .[B]AK file already exists ([O]verwrite, [N]o backup, [S]kip or [A]bort);
       Confirmation (/P+) ([P]rocess, [S]kip or [A]bort);
       -----------------------------------------------------------------------
       For example, the /YUR switch will instruct lxLite always to replace
       modules which are in use. The defaults are: /YBN /YDD and /YXD.
  [+]  Added /L{#} switch to specify an [L]og file name. If no filename is
       specified, the log file will be created as lxLite.log in the same
       directory as lxLite.exe. The log file contains a list of processed
       files, their initial and final sizes, and also all problems (if any)
       which have been encountered when processing the file.

 1.1.2
  22-May-96 minor additions and changes
  [;]  The BOXER for OS/2 APAR is closed now :-) At last I downloaded it
       from hobbes and it works packed absolutely without any problems.
       This is due to the effect of `overlayed data` for which support
       has been added in version 1.1.1.
  [+]  Added an alternative [D]iscard choice when prompting for an action
       when data out of LX structure is detected. Some DLL`s (even from
       \OS2\DLL) seems to contain some garbage after end of LX file.
  [*]  Changed memory allocation strategy - now memory manager allocate
       memory in 64K chunks which can fix the problem of slow performance
       on low-memory machines (8mb and less) when processing large files
       (i.e. TUTORMRI.DLL). I can`t check this - please mail me if it works.
  [*]  Changed backup strategy - now lxLite always make .BAK file even if
       backups are disabled (/B-). If operation succeeds and backups are
       disabled it is then removed. No more `$lxlite$.tmp` file.
  [*]  Now lxLite says '(very!)' in phrase
       'It is (very!) possible that resulting file will be non-functional'
       only if the size of data out of LX structure is bigger than 256 bytes
       (this can be changed by /O{#} option /see below/). If overlay size is
       bigger and /Y+ switch is specified file is skipped otherwise overlayed
       data is [D]iscarded.
  [+]  Added /O{#} option which allows to specify threshold size for overlay
       data. All overlays less than this value are discarded with /Y+ switch.
       For more information please refer to english documentation.
  [*]  Modified defaults - now lxLite by default doesn`t pack using
       run-length method AT ALL (i.e. as if you specified /MRN switch).
       That is because I hadn`t found even a case when using this method
       lxLite produced packed files by at least A BYTE less in size.
       Instead it compresses now A LOT faster.

 1.1.1
  07-May-96 bugfix
  [!]  noEA and chCase v1.0.0 does not work on directories - they says that
       the module is in use. Version 1.0.1 is fixed.
  [!]  lxLite, noEA, unLock and chCase leaves sometimes garbage on screen
       especially when processing long subdirectories. Fixed.

 1.1.0
  06-May-96 some additions + minor bugfix
  [*]  Change in version numeration: Now version numbers conforms to GNU
       standards. The first is major release number; second is minor release
       ordinal and third is incremented only on bug-fixes.
  [!]  Now lxLite checks for a valid MZ header in DOS executable stub.
  [!]  Fixed: lxLite stops sometimes after trying to `pack` locked files
       (i.e. swapper.dat) with a runtime error. The cause was a bug (sic!)
       in DosEnumAttribute - when you issue it on a locked file it trashes
       memory AFTER buffer passed to it (in my cause this trashed the stack).
  [+]  Now lxLite understands quoted long complex filenames on the command
       line like most OS/2 commands do. I.e. you can write
        lxLite "my own subdirectory\my executable file.exe" /cmax
  [+]  Added option /Q - query list of configurations.
  [+]  Added option /I{+|-} - Run/don`t run at idle priority
  [+]  Added detection of `overlayed` executables (usually from Watcom) -
       for more information see English documentation.
  [+]  Added `lxLite utility pack` which now consists of:
        - unLock which allow to unlock `locked` executables
        - chCase which allow to automatically change case of individual
          filenames as well as of groups of filenames
        - colMng is a simple utility to manage your WPS color palettes
        - noEA which allow to remove extended attributes from files
          and directories

 1.01
  23-Feb-96 minor bugfix
  [!] Bugfix :-) in v1.00 docs I erroneously stated that Alice was born
      at 13-Feb-96; however the real date is 12-Feb-1996 :-)
  [!] Now lxLite preserves not only timestamp but also file attributes.
      The version 1.00 erroneously stated that file is used by another
      process in the case lxLite failed to access it because of read-only
      or system attribute.
  [!] Fixed: lxLite preserves now extended attributes of the file. Sometimes
      EAs are useful, although mostly occupies disk space :-)
  [!] Fixed: lxLite now COPIES file into/from backup copies instead of
      renaming them: this caused the WorkPlace Shell to track such operations
      and to change the `program filename` field in program object.
  [*] Now /R{#} option can be used to re-align pages even on 1 (byte)
      boundary. This will get some extra bytes, however LINK386 does not
      allow this value to be less than 4 (but OS/2 eats it) - use at your
      own risk.
  [-] Removed `Switch-to-foreground-when-asking` feature. This was
      implemented rather as a lab work than a useful feature :-)
      On the other hand, the version with this feature must use
      PMSHAPI.DLL which is not always available (in particular when
      booting from OS/2 repair/installation diskettes).

 1.00
  15-Feb-96 first release version
  [!] When an invalid page is encountered don`t exit with an error but
      check first if this page is used. (Encountered on npswpsri.dll 1.81).
      This is an invalid executable; however error is not fatal because
      page isn`t used and OS/2 loads that DLL without problems.
  [!] Now lxLite keeps and restores original executable timestamp.
  [!] Fixed an error when OS/2 locks up on some DOS executables because
      it contained a 0 at offset 3Ch in DOS EXE header.
  [*] Changed format of .CFG file. Now it is a plain ASCII text file. For
      details refer to documentation, section about options.
  [-] Removed /D# option - use a text editor to add new cfgs.
  [+] Added /D{+|-} option allowing to remove debug information.
  [+] Added ability to recognize files packed with ABSOLUTELY THE SAME
      options, so lxLite will not proceed the same file twice. "The same"
      means that files will be recognized as packed ONLY if it has been
      processed with the same switch(-es) which influence resulting file
      size. Use /F+ (see below) switch to bypass this detection if you
      want to process file anyway - for example if it has been already
      packed, but not so good as it can be, i.e. by LINK386 or REPACK.
  [+] Added /F{+|-} option allowing to force repacking even if lxLite
      thinks that it is not needed. Use to bypass autodetection (`already
      processed' message).
  [+] Added /T{#} option allowing to replace DOS stubs. Use /T alone to
      completely remove DOS stubs - useful for DLLs `cause they cannot
      be run from DOS session at all.
  [+] Added ability to replace even USED! i.e. `active` .DLL`s and
      executables. Now you can repack entire \os2\*\*.* subdirectory
      without having to do a clean boot. Note that you better reboot after
      such operations because OS/2 will throw away all its internal cache
      buffers for this module and it (i.e. its old copy) will be kept
      entirely in memory/swapfile.
  [+] Now lxLite runs at the idle:16 priority so it won`t overload your CPU.
  [+] Now when lxLite encounters a problem to which he needs your answer he
      brings itself to the foreground. The only thing to say about it is:
      because of that lxLite uses now PMSHAPI & PMWIN.DLL, so it most likely
      will not run under T-Shell. Because of that there are TWO supplied
      versions of lxLite: lxLite-T.exe and lxLite.exe. Delete first if you
      will not need lxLite with a clean boot.
  [+] Added /Z{#} option which defines the threshold for lxLite to separate
      programs with `functional` stubs such as dual-mode executables from
      'dummy' stubs. Default size is 1024 bytes, i.e. on all executables with
      stub size bigger than 1024 bytes the /T{#} option will have no effect.

 0.99b
  07-Feb-96 beta-test version
  [;] What`s new? Nice question :-)
