Commit Graph

571 Commits

Author SHA1 Message Date
Timofey Solomko 59a0896fa5 Add tests for different 7z compression methods 2017-08-10 16:48:36 +03:00
Timofey Solomko b8eb63b834 Minor code improvements. 2017-08-06 18:17:43 +03:00
Timofey Solomko ece5bc5c99 Fix problems with reading entries' data caused by incorrect interpretation of packedStreams property of 7zFolder 2017-08-06 17:44:24 +03:00
Timofey Solomko c341a9263c Fix incorrect reading of substreams' crcs 2017-08-06 17:43:23 +03:00
Timofey Solomko ffb1c78434 Fix incorrect read of end byte in 7z substream 2017-08-05 15:11:22 +03:00
Timofey Solomko f76a7c677a Add support for several 7z coders 2017-08-03 00:32:32 +03:00
Timofey Solomko e79924bf84 Populate entryAttributes for 7z entry; set linkPath, too 2017-08-02 17:34:09 +03:00
Timofey Solomko 8ca5f9e37c Use new attribute types in 7z entry info 2017-08-02 17:31:33 +03:00
Timofey Solomko 0bc1d470e9 Add some types for permissions/attributes 2017-07-31 18:55:56 +03:00
Timofey Solomko 42553d82bf Fix problem with 7z containers with empty and non-empty files
unpackSizes array doesn't have values for empty files.
2017-07-31 17:49:44 +03:00
Timofey Solomko f0c0c24d90 Return empty arrays for completely empty containers 2017-07-30 22:26:25 +03:00
Timofey Solomko 995ee29531 Parse 7zEntryInfo into 7zEntry.entryAttributes 2017-07-30 20:03:26 +03:00
Timofey Solomko 5831c5201d Add encryptionNotSupported error for 7z 2017-07-30 18:36:07 +03:00
Timofey Solomko e9774296a5 Use folder.unpack(data:) function for unpacking packed headers 2017-07-30 16:00:06 +03:00
Timofey Solomko a7dfb66820 Fix problems with unpacking files
We now account for the fact that one stream contains information for several files.
2017-07-30 15:53:52 +03:00
Timofey Solomko 3503bcbb89 Support unavailable data in SevenZipEntry (when no substreamInfo is found) 2017-07-30 15:52:28 +03:00
Timofey Solomko f0bdff081a Extract function for unpacking data in 7z 2017-07-30 15:48:03 +03:00
Timofey Solomko 45e70d5f7a Fix incorrect badge link in README 2017-07-29 23:38:03 +03:00
Timofey Solomko c477194969 Don't return empty info array when no substreamInfo found
In this case we can still get some information about files and we should return it.
2017-07-29 23:28:33 +03:00
Timofey Solomko 0968395757 Implement SevenZipContainer.open function
There are some problems when one packed stream contains several files, though.
2017-07-29 23:28:33 +03:00
Timofey Solomko b1bc89ecdd Add update-crc version for crc32 function with Data argument 2017-07-29 23:28:33 +03:00
Timofey Solomko 559c47a42d Fixes for packed header decoding
Don't use optional for storing packed header end index, use correct pointer data object for LZMA2 decoding.
2017-07-29 23:28:33 +03:00
Timofey Solomko b3dcb761d9 Style improvements 2017-07-29 15:44:09 +03:00
Timofey Solomko a222b05c71 Make winAttributes uint32 2017-07-29 15:35:05 +03:00
Timofey Solomko 8f9a0393f7 Remove unused 7zFileInfo.File properties 2017-07-29 15:34:46 +03:00
Timofey Solomko 363fe78ead Add 7zEntry class and its first iteration 2017-07-29 00:02:17 +03:00
Timofey Solomko 8c558c5a77 Fix problems with isDirectory and times in 7zEntryInfo 2017-07-28 20:26:14 +03:00
Timofey Solomko 83c2a0d213 Add new EntryInfo struct for 7z and public function for getting them 2017-07-28 19:48:48 +03:00
Timofey Solomko c98ed2a62e Extract function to read "definedBits" as a BitReader extension 2017-07-28 19:19:23 +03:00
Timofey Solomko 3b31a51792 Use BitReader everywhere in 7z
It should protect from not updating index in DWP when we switch between DWP and BitReader.
2017-07-28 19:19:11 +03:00
Timofey Solomko e0f84717de Return only integer in multi-byte decode function for 7z
We never use its bytes for anything.
2017-07-28 19:03:14 +03:00
Timofey Solomko 415d6669d5 Throw error on detected additional streams
Because we don't support them (yet?)
2017-07-28 19:00:07 +03:00
Timofey Solomko f4786d0cba Parse files' properties 2017-07-28 18:59:30 +03:00
Timofey Solomko b8ca1f5e29 Extract packed header processing code into initializer 2017-07-25 22:17:19 +03:00
Timofey Solomko 27ca50ecfb Correctly unpack LZMA/LZMA2 packed headers 2017-07-25 22:03:33 +03:00
Timofey Solomko c608d2b48f Add ability to specify lzma properties for LZMADecoder externally 2017-07-25 22:02:56 +03:00
Timofey Solomko af5b4402e9 Some small improvements to LZMADecoder code 2017-07-25 21:17:51 +03:00
Timofey Solomko 0287bd4443 Make 7zCoder equatable; add packed header processing 2017-07-25 21:17:36 +03:00
Timofey Solomko 133d2325fc Another iteration of 7zip implementation
Extracted 7zProperty into a separate file; converted all structs to classes (to eliminates cows); replaced switches with ifs to ensure correct order of structures; overall completed implementation of structures (except fileinfo properties and packed header); codec renamed to coder.
2017-07-25 17:35:03 +03:00
Timofey Solomko 2f75d9b53b Fix szMbd typo 2017-07-25 14:09:56 +03:00
Timofey Solomko 0b3d8523bd Numerous changes to 7z code
Added correct verion of DWP.multiByteDecode for 7-zip; added detection of packed headers, as well as reading of their streaminfos; added SevenZipProperty struct which used as ArchiveProperties in header and as Properties in FilesInfo (for now, until parsing of these properties is added).
2017-07-25 13:58:25 +03:00
Timofey Solomko adf55c3d64 Revert "Extract multiByteDecode for use in 7z"
This reverts commit e390e582b1.
2017-07-25 13:42:20 +03:00
Timofey Solomko 097aaf7b24 Complete 7zip structures implementations
Though some questions, problems and opportunities for improvements are remaining.
2017-07-25 00:35:57 +03:00
Timofey Solomko f76c2b575a More 7z progress 2017-07-18 23:28:17 +03:00
Timofey Solomko 507db69ddb Add a lot of 7z related files for structures 2017-07-18 21:06:37 +03:00
Timofey Solomko e390e582b1 Extract multiByteDecode for use in 7z 2017-07-18 21:06:22 +03:00
Timofey Solomko dbb876dec4 Add some structures and code for 7z 2017-07-18 20:25:42 +03:00
Timofey Solomko b5c0032f38 First steps in 7z development 2017-07-18 18:50:27 +03:00
Timofey Solomko 5219240cb7 Prepare for 3.2.0 2017-07-16 11:07:58 +03:00
Timofey Solomko ffe8be6d37 Set correct offset to the beginning of end of CD record 2017-07-16 10:59:49 +03:00