***************************************************************************
*                     HISTORY FOR THE UNPACK.LIBRARY                      *
***************************************************************************

        Unpack.library V37.32

        The unpack.library was coded by Thomas Neumann alias Tax of
        Access for SHI (Safe Hex International).

        See also the doc file for more information about this library.

***************************************************************************
*                    Ideas coming up in newer versions                    *
***************************************************************************

- Detect more crunchers, ofcourse :-)

***************************************************************************
*                              New functions                              *
***************************************************************************

V34.1   TestHunk(), UnpackNum(), UnpackList() & UnpackListNext()
V34.20  LoadFile(), FreeFile()
V36.30  UseDrive(), UnuseDrive(), SendCmd()
V37.32  NewUnpackNum()

***************************************************************************
*                         BUG Report and changes                          *
***************************************************************************

V34.1
-----

Nico  Franois  has  changed  the Hunk_Reloc32 structure in his PowerPacker
V4.0. I haven't noticed it before, so when you decrunch a V4.0 Object file,
you will get a defect object file. This is fixed now.

Moved  the  UI_CrunchLen in the info structure from the private area to the
user area and added a UI_CrunchLenTemp at the old place instead.

V34.11
------

When  you  decrunch  a  file and there isn't enought memory, the error flag
didn't indicate a memory error. This is fixed now.

V34.20
------

A new bit in the UI_CrunchType are implemented. It's bit number 7. This bit
indicates  if  the file are encrypted, like PowerPacker encryption. If set,
it's an encrypted file.

When the Unpack() function calls the TestHunk() function and the TestHunk()
returns  an error, the computer makes a system failure. (I forgot to return
a value from the stack :-(

A little bug fixed in the TestHunk() function.

A NOTE TO Nico Franois:
------------------------

I  think  there  are  a  bug  in your PowerPacker when you handle overlayed
files.  I  have  try  with  an  old  version  of DeluxePaint III and in the
unpacked file the header says there are 12 hunks, where the first three are
loaded  first  and the rest are overlays. Then I crunch it with PowerPacker
and  your  decruncher  have  only  2  hunks  to  be loaded and the rest are
overlays,  but  the  header  still  says there are 12 hunks!!! (Tested with
PowerPacker V4.2).

The  Determine()  function  have  some  problems  with Imploder 4.0 library
header. This should be fixed now.

There  was  a  bug  in the delete routine in the filepack unpacker. It goes
into  a  never  ending  loop if it tries to delete a directory there are in
use,  for  example  if  you  have  an assign to a directory and then try to
delete  it,  the  routine goes into the loop. This is fixed, I just have to
test the DOS error number for number 202 (Object in use).

A little bug in the UnpackListNext() function are fixed.

V34.21
------

Compressor Crackings Inc. cruncher are changed to TNM Cruncher.

V35.22
------

A  bug  in  the  LHA  unpacker  routine  fixed. It didn't check for the LHA
program failed.

The NoFree bit in the UI_Flag has been born.

Added a UserData field in the info structure.

A  little  bug  in the LoadFile() function fixed. Didn't free the memory if
there occurs an error when reading the file.

The file currupt error implemented.

A bug in the Titantic Decruncher fixed.

When  you  try to decrunch a LHA file, you have to open a CLI window first.
This  is  because  when  I  call  the  Execute()  function, I give zero for
standard  input  and  output.  Now  I  open  the  NIL:  first  and use this
filehandler.  If  you  still find any errors with the LHA unpacker routine,
please contact me.

V36.30
------

A bug in the powerpacker decruncher routine fixed. Couldn't handle BSS_Hunk
correctly.

The code in the library are rotated and optimized some places.

Cache clearing are implemented.

I forgot to put the UI_UserData field in A1 when unpacking archive files.

Added  some new fields in the info structure and a few new functions so the
programmer easy can unpack track-crunched files.

V36.31
------

A bug in the determine routine for the Double Action cruncher fixed.

Doc's are fixed and removed into different directories.

V37.32
------

The  CLI  command  version will now work. I don't know how long time I have
used to fix this bug. It was just a stupid 'V' before the version number in
the ID string :^<

The  Gnu  Packer  numbers  are changed a bit, see the include file for more
information.

Woooow!!!  I  have  optimized the DetermineFile() function a lot, so now is
must faster and fill about 1.5K less than the old one!!!! Isn't that great?
8-O

An  enforcer  hit  was  detected  in  the old DetermineFile() function, but
this is fixed now in the new function.

An ErrorMsg pointer are implemented.

The NoLoad flag are implemented and the UI_CrunchAdr field are made public.

The   UnpackNum()   function  are  made  OBSOLETE!!!  A  new  function  are
implemented so the C programmers can use this function.

The  UnpackListNext()  function  returns now a zero in A1 when there are no
more crunchers in the list.

A big bug fixed in the StoneCracker 2.92-2.99d unpacker routine.

A  little  bug  fixed in the Crunch Mania Reloc unpacker routine and in the
determine routine.

A giga bug fixed in the TurboSqueeze 8.0 unpacker routine. Didn't reloc the
file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

If you find any bugs, then feel free to contact me on this address:

                             Thomas Neumann
                             Kongensgade 78
                             3550 Slangerrup
                             Denmark

***************************************************************************
*                                                                         *
***************************************************************************

          Have fun with this library, signed

          Thomas Neumann, member of the SHI Anti Virus Group.
