7z Archiver updated / LZMA SDK 4.57

Dennis Schridde devurandom at gmx.net
Tue Dec 18 18:31:06 EST 2007


I included the lzma sdk 4.57 (it still has the nasty disrespect for 
_SZ_ONE_DIRECTORY and also still has the hardcoded X86 functions) and 
therefore changed the directory structure to match.
- I included all files of the C implementation. This includes the example file 
and several files which are apparently not needed. It eased the update a bit, 
since lots of functionality was moved around... Maybe they are helpful later? 
(If this is a problem, I can of course remove the unnecessary things.)
- I also included the docs, which were present in the root dir of the sdk. 
They were moved to the doc/ subdir. Certainly helpful in case someone wants 
to work on the archiver...

The only incompatibilty between 4.43 and 4.57 is InitCrcTable, which is now 
called CrcGenerateTable. (archiver/lzma.c:~447)

I also updated the archiver, though that is still not entirely finished.
- It finally supports last-modification-time. (Thanks to the new SDK. They use 
Microsoft FILETIME, which counts nanoseconds since 01.01.1601...)
- I don't use linked lists anymore for 7z files. Instead they are simple 
arrays. They are now sorted, too.
- In regards to intialisation I moved closer to the zip implementation. 
(Initialisation of files was moved from openRead to openArchive.)
- Enumeration was completely overhauled. It is now very much more 
straight-forward. (Eg. by gaining some advantage from the fact that 
directories are handled like files by 7z.)
- Several cleanups, renames, simplifications.

What I still need to do:
- Gain advantage from the sorted file list. Finding an entry is now 
centralised in lzma_find_file, which could obviously be a little bit more 
clever than traversing the whole list...
- Improved comments...

The patches are attached.
lzma457sdk.patch is only the inclusion of the lzma 4.57 sdk.
lzma457archiver.patch depends on the former and includes the overhauled 

Comments and suggestions are welcome.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: lzma457sdk.patch
Type: text/x-diff
Size: 358425 bytes
Desc: not available
URL: <http://icculus.org/pipermail/physfs/attachments/20071219/f9f80461/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lzma457archiver.patch
Type: text/x-diff
Size: 21829 bytes
Desc: not available
URL: <http://icculus.org/pipermail/physfs/attachments/20071219/f9f80461/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://icculus.org/pipermail/physfs/attachments/20071219/f9f80461/attachment.pgp>

More information about the physfs mailing list