7z Archiver updated / LZMA SDK 4.57

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


Hi!

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 
archiver.

Comments and suggestions are welcome.

--Dennis
-------------- 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