CVSROOT:        /home/cvs
Module name:    freesci
Changes by:     cvsuser 00/12/10 11:49:32

Modified files:
        doc            : sci.sgml 
        src/engine     : vm.c 
        src/include    : gfx_operations.h resource.h 
        src/scicore    : decompress0.c decompress1.c resource.c 
Added files:
        src/scicore    : huffmake.pl hufftree.1 hufftree.2 hufftree.3 
                         treedef.1 treedef.2 

Log message:
+ Implemented DCL Explode (incorrectly called DCL Implode, which is the
compression algorithm, in the online docs)
+ Small refactorings inside the resource decompressor

I implemented Petr's algorithm; so far, it appears to work. However, some
resources (messages, to be precise) use ASCII mode, which means that literal
tokens are read from a separate huffman tree instead of being stored as
literals. I put down some of them in hufftree.3, but a lot more work will
be needed to figure out all of them.

Also, some other compression mechanisms are built on top of DCL Explode. These
haven't been implemented yet either.

Regarding the files and their structure:
huffmake.pl can be used to generate treedef.* from hufftree.* (hufftree.3 is
not syntactically correct ATM). treedef.[12] are included in decompress1.c
as actual trees. The algorithm implemented in huffmake.pl is a good example
for an inefficient algorithm, but it works, which is all we need there.

-- Christoph


Reply via email to