seven-zip 1.4.2 → 1.7.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +49 -0
- data/.github/workflows/release.yml +21 -0
- data/README.md +13 -2
- data/Rakefile +2 -0
- data/ext/p7zip/C/7zBuf.h +4 -8
- data/ext/p7zip/C/7zBuf2.c +9 -3
- data/ext/p7zip/C/7zCrc.c +84 -32
- data/ext/p7zip/C/7zCrc.h +2 -2
- data/ext/p7zip/C/7zCrcOpt.c +89 -8
- data/ext/p7zip/C/7zStream.c +4 -2
- data/ext/p7zip/C/{Types.h → 7zTypes.h} +8 -6
- data/ext/p7zip/C/7zVersion.h +21 -6
- data/ext/p7zip/C/Aes.c +28 -15
- data/ext/p7zip/C/Aes.h +2 -2
- data/ext/p7zip/C/Alloc.c +60 -12
- data/ext/p7zip/C/Alloc.h +6 -7
- data/ext/p7zip/C/Bcj2.c +256 -0
- data/ext/p7zip/C/Bcj2.h +146 -0
- data/ext/p7zip/C/Bcj2Enc.c +312 -0
- data/ext/p7zip/C/Blake2.h +48 -0
- data/ext/p7zip/C/Blake2s.c +244 -0
- data/ext/p7zip/C/Bra.c +2 -0
- data/ext/p7zip/C/Bra.h +4 -8
- data/ext/p7zip/C/Bra86.c +48 -51
- data/ext/p7zip/C/BraIA64.c +3 -1
- data/ext/p7zip/C/BwtSort.c +3 -4
- data/ext/p7zip/C/BwtSort.h +4 -8
- data/ext/p7zip/C/Compiler.h +32 -0
- data/ext/p7zip/C/CpuArch.c +50 -7
- data/ext/p7zip/C/CpuArch.h +112 -41
- data/ext/p7zip/C/Delta.c +2 -0
- data/ext/p7zip/C/Delta.h +4 -8
- data/ext/p7zip/C/HuffEnc.c +8 -6
- data/ext/p7zip/C/HuffEnc.h +4 -8
- data/ext/p7zip/C/LzFind.c +391 -108
- data/ext/p7zip/C/LzFind.h +20 -18
- data/ext/p7zip/C/LzFindMt.c +100 -90
- data/ext/p7zip/C/LzFindMt.h +4 -8
- data/ext/p7zip/C/LzHash.h +23 -20
- data/ext/p7zip/C/Lzma2Dec.c +48 -26
- data/ext/p7zip/C/Lzma2Dec.h +4 -8
- data/ext/p7zip/C/Lzma2Enc.c +58 -15
- data/ext/p7zip/C/Lzma2Enc.h +3 -7
- data/ext/p7zip/C/{LzmaUtil/Lzma86Enc.h → Lzma86.h} +47 -14
- data/ext/p7zip/C/{LzmaUtil/Lzma86Dec.c → Lzma86Dec.c} +6 -13
- data/ext/p7zip/C/{LzmaUtil/Lzma86Enc.c → Lzma86Enc.c} +8 -15
- data/ext/p7zip/C/LzmaDec.c +180 -79
- data/ext/p7zip/C/LzmaDec.h +4 -8
- data/ext/p7zip/C/LzmaEnc.c +230 -147
- data/ext/p7zip/C/LzmaEnc.h +6 -8
- data/ext/p7zip/C/MtCoder.c +3 -3
- data/ext/p7zip/C/Ppmd.h +5 -5
- data/ext/p7zip/C/Ppmd7.c +9 -7
- data/ext/p7zip/C/Ppmd7.h +3 -3
- data/ext/p7zip/C/Ppmd7Dec.c +2 -0
- data/ext/p7zip/C/Ppmd7Enc.c +4 -2
- data/ext/p7zip/C/Ppmd8.c +34 -31
- data/ext/p7zip/C/Ppmd8.h +5 -1
- data/ext/p7zip/C/Ppmd8Dec.c +2 -0
- data/ext/p7zip/C/Ppmd8Enc.c +2 -0
- data/ext/p7zip/C/Precomp.h +10 -0
- data/ext/p7zip/C/RotateDefs.h +11 -1
- data/ext/p7zip/C/Sha1.c +340 -0
- data/ext/p7zip/C/Sha1.h +38 -0
- data/ext/p7zip/C/Sha256.c +107 -63
- data/ext/p7zip/C/Sha256.h +2 -2
- data/ext/p7zip/C/Sort.c +59 -11
- data/ext/p7zip/C/Sort.h +8 -10
- data/ext/p7zip/C/Threads.h +1 -1
- data/ext/p7zip/C/Xz.c +7 -5
- data/ext/p7zip/C/Xz.h +40 -17
- data/ext/p7zip/C/XzCrc64.c +69 -16
- data/ext/p7zip/C/XzCrc64.h +2 -2
- data/ext/p7zip/C/XzCrc64Opt.c +69 -0
- data/ext/p7zip/C/XzDec.c +93 -55
- data/ext/p7zip/C/XzEnc.c +206 -165
- data/ext/p7zip/C/XzEnc.h +23 -9
- data/ext/p7zip/C/XzIn.c +50 -43
- data/ext/p7zip/CPP/7zip/Archive/7z/7zCompressionMode.h +37 -13
- data/ext/p7zip/CPP/7zip/Archive/7z/7zDecode.cpp +392 -181
- data/ext/p7zip/CPP/7zip/Archive/7z/7zDecode.h +29 -29
- data/ext/p7zip/CPP/7zip/Archive/7z/7zEncode.cpp +424 -212
- data/ext/p7zip/CPP/7zip/Archive/7z/7zEncode.h +53 -16
- data/ext/p7zip/CPP/7zip/Archive/7z/7zExtract.cpp +312 -174
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderInStream.cpp +74 -61
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderInStream.h +22 -19
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHandler.cpp +505 -232
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHandler.h +70 -16
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHandlerOut.cpp +602 -172
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHeader.cpp +5 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHeader.h +54 -3
- data/ext/p7zip/CPP/7zip/Archive/7z/7zIn.cpp +981 -616
- data/ext/p7zip/CPP/7zip/Archive/7z/7zIn.h +275 -89
- data/ext/p7zip/CPP/7zip/Archive/7z/7zItem.h +77 -162
- data/ext/p7zip/CPP/7zip/Archive/7z/7zOut.cpp +288 -238
- data/ext/p7zip/CPP/7zip/Archive/7z/7zOut.h +189 -20
- data/ext/p7zip/CPP/7zip/Archive/7z/7zProperties.cpp +59 -49
- data/ext/p7zip/CPP/7zip/Archive/7z/7zRegister.cpp +12 -9
- data/ext/p7zip/CPP/7zip/Archive/7z/7zSpecStream.cpp +4 -6
- data/ext/p7zip/CPP/7zip/Archive/7z/7zSpecStream.h +5 -5
- data/ext/p7zip/CPP/7zip/Archive/7z/7zUpdate.cpp +1743 -447
- data/ext/p7zip/CPP/7zip/Archive/7z/7zUpdate.h +61 -10
- data/ext/p7zip/CPP/7zip/Archive/ApmHandler.cpp +84 -120
- data/ext/p7zip/CPP/7zip/Archive/ArHandler.cpp +854 -0
- data/ext/p7zip/CPP/7zip/Archive/ArchiveExports.cpp +48 -32
- data/ext/p7zip/CPP/7zip/Archive/ArjHandler.cpp +519 -340
- data/ext/p7zip/CPP/7zip/Archive/Bz2Handler.cpp +223 -203
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabBlockInStream.cpp +50 -139
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabBlockInStream.h +17 -18
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHandler.cpp +566 -234
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHandler.h +10 -1
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHeader.cpp +2 -2
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHeader.h +12 -15
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabIn.cpp +341 -122
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabIn.h +81 -66
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabItem.h +17 -14
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabRegister.cpp +10 -4
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHandler.cpp +190 -83
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHandler.h +7 -1
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmIn.cpp +292 -174
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmIn.h +73 -47
- data/ext/p7zip/CPP/7zip/Archive/ComHandler.cpp +886 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2.cpp +994 -71
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2.h +364 -101
- data/ext/p7zip/CPP/7zip/Archive/Common/DummyOutStream.cpp +7 -12
- data/ext/p7zip/CPP/7zip/Archive/Common/DummyOutStream.h +4 -3
- data/ext/p7zip/CPP/7zip/Archive/Common/FindSignature.cpp +6 -6
- data/ext/p7zip/CPP/7zip/Archive/Common/FindSignature.h +2 -2
- data/ext/p7zip/CPP/7zip/Archive/Common/HandlerOut.cpp +77 -543
- data/ext/p7zip/CPP/7zip/Archive/Common/HandlerOut.h +31 -51
- data/ext/p7zip/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +18 -14
- data/ext/p7zip/CPP/7zip/Archive/Common/ItemNameUtils.cpp +34 -7
- data/ext/p7zip/CPP/7zip/Archive/Common/ItemNameUtils.h +5 -2
- data/ext/p7zip/CPP/7zip/Archive/Common/MultiStream.cpp +25 -24
- data/ext/p7zip/CPP/7zip/Archive/Common/MultiStream.h +8 -3
- data/ext/p7zip/CPP/7zip/Archive/Common/OutStreamWithCRC.h +1 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/OutStreamWithSha1.cpp +2 -2
- data/ext/p7zip/CPP/7zip/Archive/Common/OutStreamWithSha1.h +5 -5
- data/ext/p7zip/CPP/7zip/Archive/Common/ParseProperties.cpp +0 -174
- data/ext/p7zip/CPP/7zip/Archive/Common/ParseProperties.h +2 -14
- data/ext/p7zip/CPP/7zip/Archive/CpioHandler.cpp +506 -335
- data/ext/p7zip/CPP/7zip/Archive/CramfsHandler.cpp +227 -84
- data/ext/p7zip/CPP/7zip/Archive/DeflateProps.cpp +0 -115
- data/ext/p7zip/CPP/7zip/Archive/DeflateProps.h +0 -29
- data/ext/p7zip/CPP/7zip/Archive/DllExports2.cpp +63 -17
- data/ext/p7zip/CPP/7zip/Archive/DmgHandler.cpp +1007 -339
- data/ext/p7zip/CPP/7zip/Archive/ElfHandler.cpp +618 -177
- data/ext/p7zip/CPP/7zip/Archive/ExtHandler.cpp +2867 -0
- data/ext/p7zip/CPP/7zip/Archive/FatHandler.cpp +136 -76
- data/ext/p7zip/CPP/7zip/Archive/FlvHandler.cpp +132 -150
- data/ext/p7zip/CPP/7zip/Archive/GptHandler.cpp +405 -0
- data/ext/p7zip/CPP/7zip/Archive/GzHandler.cpp +560 -214
- data/ext/p7zip/CPP/7zip/Archive/HandlerCont.cpp +288 -0
- data/ext/p7zip/CPP/7zip/Archive/HandlerCont.h +116 -0
- data/ext/p7zip/CPP/7zip/Archive/HfsHandler.cpp +1880 -0
- data/ext/p7zip/CPP/7zip/Archive/IArchive.h +415 -51
- data/ext/p7zip/CPP/7zip/Archive/IhexHandler.cpp +497 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHandler.cpp +158 -71
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHandler.h +2 -1
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHeader.cpp +0 -9
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHeader.h +8 -5
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoIn.cpp +311 -91
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoIn.h +101 -83
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoItem.h +48 -39
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoRegister.cpp +12 -4
- data/ext/p7zip/CPP/7zip/Archive/LzhHandler.cpp +127 -114
- data/ext/p7zip/CPP/7zip/Archive/LzmaHandler.cpp +264 -121
- data/ext/p7zip/CPP/7zip/Archive/MachoHandler.cpp +402 -242
- data/ext/p7zip/CPP/7zip/Archive/MbrHandler.cpp +56 -114
- data/ext/p7zip/CPP/7zip/Archive/MslzHandler.cpp +230 -90
- data/ext/p7zip/CPP/7zip/Archive/MubHandler.cpp +129 -153
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisDecode.cpp +179 -58
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisDecode.h +36 -7
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisHandler.cpp +407 -237
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisHandler.h +9 -16
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisIn.cpp +5535 -1098
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisIn.h +345 -81
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisRegister.cpp +11 -4
- data/ext/p7zip/CPP/7zip/Archive/NtfsHandler.cpp +1424 -434
- data/ext/p7zip/CPP/7zip/Archive/PeHandler.cpp +1831 -521
- data/ext/p7zip/CPP/7zip/Archive/PpmdHandler.cpp +50 -35
- data/ext/p7zip/CPP/7zip/Archive/QcowHandler.cpp +615 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/Rar5Handler.cpp +2746 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/Rar5Handler.h +411 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHandler.cpp +1241 -355
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHandler.h +70 -20
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHeader.h +38 -34
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarItem.h +34 -16
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarVol.h +129 -0
- data/ext/p7zip/CPP/7zip/Archive/RpmHandler.cpp +641 -194
- data/ext/p7zip/CPP/7zip/Archive/SplitHandler.cpp +174 -181
- data/ext/p7zip/CPP/7zip/Archive/SquashfsHandler.cpp +237 -174
- data/ext/p7zip/CPP/7zip/Archive/SwfHandler.cpp +471 -192
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHandler.cpp +350 -59
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHandler.h +24 -7
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHandlerOut.cpp +79 -27
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHeader.cpp +5 -7
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHeader.h +20 -44
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarIn.cpp +279 -64
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarIn.h +10 -1
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarItem.h +34 -8
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarOut.cpp +145 -87
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarOut.h +13 -5
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarRegister.cpp +14 -9
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarUpdate.cpp +154 -27
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarUpdate.h +10 -6
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfHandler.cpp +53 -128
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfHandler.h +6 -5
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfIn.cpp +384 -119
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfIn.h +40 -21
- data/ext/p7zip/CPP/7zip/Archive/UefiHandler.cpp +1618 -0
- data/ext/p7zip/CPP/7zip/Archive/VdiHandler.cpp +362 -0
- data/ext/p7zip/CPP/7zip/Archive/VhdHandler.cpp +438 -247
- data/ext/p7zip/CPP/7zip/Archive/VmdkHandler.cpp +1518 -0
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimHandler.cpp +837 -249
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimHandler.h +73 -47
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimHandlerOut.cpp +1614 -351
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimIn.cpp +1519 -513
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimIn.h +498 -139
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimRegister.cpp +13 -9
- data/ext/p7zip/CPP/7zip/Archive/XarHandler.cpp +272 -128
- data/ext/p7zip/CPP/7zip/Archive/XzHandler.cpp +502 -253
- data/ext/p7zip/CPP/7zip/Archive/XzHandler.h +65 -0
- data/ext/p7zip/CPP/7zip/Archive/ZHandler.cpp +114 -39
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipAddCommon.cpp +118 -134
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipAddCommon.h +6 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipCompressionMode.h +40 -20
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHandler.cpp +541 -274
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHandler.h +13 -40
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHandlerOut.cpp +165 -254
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHeader.h +70 -178
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipIn.cpp +1934 -550
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipIn.h +294 -63
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipItem.cpp +160 -86
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipItem.h +139 -110
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipOut.cpp +177 -154
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipOut.h +50 -18
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipRegister.cpp +18 -9
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipUpdate.cpp +367 -201
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipUpdate.h +11 -10
- data/ext/p7zip/CPP/7zip/Bundles/Format7zFree/makefile +2 -319
- data/ext/p7zip/CPP/7zip/Bundles/Format7zFree/makefile.depend +0 -4962
- data/ext/p7zip/CPP/7zip/Bundles/Format7zFree/makefile.list +1004 -259
- data/ext/p7zip/CPP/7zip/Common/CWrappers.cpp +26 -22
- data/ext/p7zip/CPP/7zip/Common/CWrappers.h +19 -14
- data/ext/p7zip/CPP/7zip/Common/CreateCoder.cpp +298 -130
- data/ext/p7zip/CPP/7zip/Common/CreateCoder.h +118 -34
- data/ext/p7zip/CPP/7zip/Common/FilePathAutoRename.cpp +24 -28
- data/ext/p7zip/CPP/7zip/Common/FilePathAutoRename.h +5 -5
- data/ext/p7zip/CPP/7zip/Common/FileStreams.cpp +268 -65
- data/ext/p7zip/CPP/7zip/Common/FileStreams.h +70 -33
- data/ext/p7zip/CPP/7zip/Common/FilterCoder.cpp +302 -131
- data/ext/p7zip/CPP/7zip/Common/FilterCoder.h +141 -43
- data/ext/p7zip/CPP/7zip/Common/InBuffer.cpp +87 -35
- data/ext/p7zip/CPP/7zip/Common/InBuffer.h +54 -45
- data/ext/p7zip/CPP/7zip/Common/InOutTempBuffer.cpp +22 -17
- data/ext/p7zip/CPP/7zip/Common/InOutTempBuffer.h +5 -5
- data/ext/p7zip/CPP/7zip/Common/LimitedStreams.cpp +256 -43
- data/ext/p7zip/CPP/7zip/Common/LimitedStreams.h +135 -8
- data/ext/p7zip/CPP/7zip/Common/MemBlocks.cpp +5 -5
- data/ext/p7zip/CPP/7zip/Common/MemBlocks.h +3 -3
- data/ext/p7zip/CPP/7zip/Common/MethodId.cpp +0 -24
- data/ext/p7zip/CPP/7zip/Common/MethodId.h +1 -1
- data/ext/p7zip/CPP/7zip/Common/MethodProps.cpp +430 -71
- data/ext/p7zip/CPP/7zip/Common/MethodProps.h +170 -17
- data/ext/p7zip/CPP/7zip/Common/OffsetStream.cpp +8 -4
- data/ext/p7zip/CPP/7zip/Common/OffsetStream.h +4 -3
- data/ext/p7zip/CPP/7zip/Common/OutBuffer.cpp +26 -31
- data/ext/p7zip/CPP/7zip/Common/OutBuffer.h +17 -18
- data/ext/p7zip/CPP/7zip/Common/OutMemStream.cpp +5 -5
- data/ext/p7zip/CPP/7zip/Common/OutMemStream.h +5 -4
- data/ext/p7zip/CPP/7zip/Common/ProgressUtils.cpp +22 -13
- data/ext/p7zip/CPP/7zip/Common/ProgressUtils.h +4 -3
- data/ext/p7zip/CPP/7zip/Common/PropId.cpp +108 -0
- data/ext/p7zip/CPP/7zip/Common/RegisterArc.h +63 -17
- data/ext/p7zip/CPP/7zip/Common/RegisterCodec.h +79 -6
- data/ext/p7zip/CPP/7zip/Common/StreamBinder.cpp +95 -90
- data/ext/p7zip/CPP/7zip/Common/StreamBinder.h +46 -23
- data/ext/p7zip/CPP/7zip/Common/StreamObjects.cpp +88 -24
- data/ext/p7zip/CPP/7zip/Common/StreamObjects.h +36 -14
- data/ext/p7zip/CPP/7zip/Common/StreamUtils.cpp +4 -4
- data/ext/p7zip/CPP/7zip/Common/StreamUtils.h +6 -6
- data/ext/p7zip/CPP/7zip/Common/UniqBlocks.cpp +57 -0
- data/ext/p7zip/CPP/7zip/Common/UniqBlocks.h +26 -0
- data/ext/p7zip/CPP/7zip/Common/VirtThread.cpp +8 -6
- data/ext/p7zip/CPP/7zip/Common/VirtThread.h +6 -5
- data/ext/p7zip/CPP/7zip/Compress/BZip2Const.h +13 -12
- data/ext/p7zip/CPP/7zip/Compress/BZip2Crc.h +1 -1
- data/ext/p7zip/CPP/7zip/Compress/BZip2Decoder.cpp +198 -147
- data/ext/p7zip/CPP/7zip/Compress/BZip2Decoder.h +60 -27
- data/ext/p7zip/CPP/7zip/Compress/BZip2Encoder.cpp +111 -116
- data/ext/p7zip/CPP/7zip/Compress/BZip2Encoder.h +53 -59
- data/ext/p7zip/CPP/7zip/Compress/BZip2Register.cpp +12 -7
- data/ext/p7zip/CPP/7zip/Compress/Bcj2Coder.cpp +554 -282
- data/ext/p7zip/CPP/7zip/Compress/Bcj2Coder.h +73 -71
- data/ext/p7zip/CPP/7zip/Compress/Bcj2Register.cpp +10 -5
- data/ext/p7zip/CPP/7zip/Compress/BcjCoder.cpp +13 -4
- data/ext/p7zip/CPP/7zip/Compress/BcjCoder.h +17 -5
- data/ext/p7zip/CPP/7zip/Compress/BcjRegister.cpp +7 -9
- data/ext/p7zip/CPP/7zip/Compress/BitlDecoder.cpp +2 -2
- data/ext/p7zip/CPP/7zip/Compress/BitlDecoder.h +58 -61
- data/ext/p7zip/CPP/7zip/Compress/BitlEncoder.h +24 -25
- data/ext/p7zip/CPP/7zip/Compress/BitmDecoder.h +46 -17
- data/ext/p7zip/CPP/7zip/Compress/BitmEncoder.h +18 -19
- data/ext/p7zip/CPP/7zip/Compress/BranchMisc.cpp +14 -28
- data/ext/p7zip/CPP/7zip/Compress/BranchMisc.h +27 -6
- data/ext/p7zip/CPP/7zip/Compress/BranchRegister.cpp +26 -15
- data/ext/p7zip/CPP/7zip/Compress/ByteSwap.cpp +45 -26
- data/ext/p7zip/CPP/7zip/Compress/CodecExports.cpp +254 -70
- data/ext/p7zip/CPP/7zip/Compress/CopyCoder.cpp +65 -17
- data/ext/p7zip/CPP/7zip/Compress/CopyCoder.h +15 -3
- data/ext/p7zip/CPP/7zip/Compress/CopyRegister.cpp +5 -4
- data/ext/p7zip/CPP/7zip/Compress/Deflate64Register.cpp +12 -6
- data/ext/p7zip/CPP/7zip/Compress/DeflateConst.h +43 -46
- data/ext/p7zip/CPP/7zip/Compress/DeflateDecoder.cpp +145 -81
- data/ext/p7zip/CPP/7zip/Compress/DeflateDecoder.h +31 -33
- data/ext/p7zip/CPP/7zip/Compress/DeflateEncoder.cpp +179 -162
- data/ext/p7zip/CPP/7zip/Compress/DeflateEncoder.h +35 -30
- data/ext/p7zip/CPP/7zip/Compress/DeflateRegister.cpp +11 -7
- data/ext/p7zip/CPP/7zip/Compress/DeltaFilter.cpp +55 -39
- data/ext/p7zip/CPP/7zip/Compress/{DllExports2.cpp → DllExports2Compress.cpp} +8 -8
- data/ext/p7zip/CPP/7zip/Compress/DllExportsCompress.cpp +48 -0
- data/ext/p7zip/CPP/7zip/Compress/HuffmanDecoder.h +220 -49
- data/ext/p7zip/CPP/7zip/Compress/ImplodeDecoder.cpp +14 -9
- data/ext/p7zip/CPP/7zip/Compress/ImplodeDecoder.h +2 -3
- data/ext/p7zip/CPP/7zip/Compress/ImplodeHuffmanDecoder.cpp +7 -7
- data/ext/p7zip/CPP/7zip/Compress/ImplodeHuffmanDecoder.h +1 -1
- data/ext/p7zip/CPP/7zip/Compress/LzOutWindow.cpp +1 -1
- data/ext/p7zip/CPP/7zip/Compress/LzOutWindow.h +21 -18
- data/ext/p7zip/CPP/7zip/Compress/LzhDecoder.cpp +171 -141
- data/ext/p7zip/CPP/7zip/Compress/LzhDecoder.h +32 -64
- data/ext/p7zip/CPP/7zip/Compress/Lzham/LICENSE +22 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/LzhamRegister.cpp +783 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/README.md +211 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/include/lzham.h +803 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/include/lzham_dynamic_lib.h +156 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/include/lzham_exports.inc +31 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/include/lzham_static_lib.h +59 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/include/zlib.h +2 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/CMakeLists.txt +69 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_comp.h +38 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_lzbase.cpp +244 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_lzbase.h +46 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_lzcomp.cpp +750 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_lzcomp_internal.cpp +2240 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_lzcomp_internal.h +503 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_lzcomp_state.cpp +1684 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_match_accel.cpp +947 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_match_accel.h +164 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_null_threading.h +98 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_pthreads_threading.cpp +214 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_pthreads_threading.h +535 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_threading.h +12 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_win32_threading.cpp +232 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzham_win32_threading.h +387 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamcomp/lzhamcomp.vcxproj +208 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/CMakeLists.txt +86 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_assert.cpp +80 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_assert.h +58 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_checksum.cpp +73 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_checksum.h +13 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_config.h +25 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_core.h +303 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_decomp.h +37 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_helpers.h +54 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_huffman_codes.cpp +286 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_huffman_codes.h +32 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_lzdecomp.cpp +1586 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_lzdecompbase.cpp +131 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_lzdecompbase.h +89 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_math.h +142 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_mem.cpp +463 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_mem.h +115 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_platform.cpp +159 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_platform.h +284 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_prefix_coding.cpp +431 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_prefix_coding.h +157 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_symbol_codec.cpp +1527 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_symbol_codec.h +494 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_timer.cpp +147 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_timer.h +99 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_traits.h +141 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_types.h +72 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_utils.h +58 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_vector.cpp +83 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzham_vector.h +628 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamdecomp/lzhamdecomp.vcxproj +224 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamlib/lzham_lib.cpp +179 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/lzhamlib/lzhamlib.vcxproj +187 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/makefile +10 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/makefile.depend +0 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzham/makefile.list +129 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Decoder.cpp +123 -46
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Decoder.h +29 -14
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Encoder.cpp +14 -9
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Encoder.h +1 -1
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Register.cpp +9 -7
- data/ext/p7zip/CPP/7zip/Compress/LzmaDecoder.cpp +24 -8
- data/ext/p7zip/CPP/7zip/Compress/LzmaDecoder.h +8 -1
- data/ext/p7zip/CPP/7zip/Compress/LzmaEncoder.cpp +30 -27
- data/ext/p7zip/CPP/7zip/Compress/LzmaEncoder.h +3 -1
- data/ext/p7zip/CPP/7zip/Compress/LzmaRegister.cpp +9 -7
- data/ext/p7zip/CPP/7zip/Compress/LzmsDecoder.cpp +576 -0
- data/ext/p7zip/CPP/7zip/Compress/LzmsDecoder.h +271 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzx.h +32 -36
- data/ext/p7zip/CPP/7zip/Compress/LzxDecoder.cpp +380 -238
- data/ext/p7zip/CPP/7zip/Compress/LzxDecoder.h +170 -83
- data/ext/p7zip/CPP/7zip/Compress/Mtf8.h +7 -9
- data/ext/p7zip/CPP/7zip/Compress/PpmdDecoder.cpp +1 -5
- data/ext/p7zip/CPP/7zip/Compress/PpmdEncoder.cpp +51 -18
- data/ext/p7zip/CPP/7zip/Compress/PpmdEncoder.h +18 -8
- data/ext/p7zip/CPP/7zip/Compress/PpmdRegister.cpp +9 -8
- data/ext/p7zip/CPP/7zip/Compress/PpmdZip.cpp +61 -25
- data/ext/p7zip/CPP/7zip/Compress/PpmdZip.h +21 -6
- data/ext/p7zip/CPP/7zip/Compress/QuantumDecoder.cpp +122 -102
- data/ext/p7zip/CPP/7zip/Compress/QuantumDecoder.h +68 -157
- data/ext/p7zip/CPP/7zip/Compress/Rar/makefile +33 -18
- data/ext/p7zip/CPP/7zip/Compress/Rar/makefile.depend +0 -158
- data/ext/p7zip/CPP/7zip/Compress/Rar/makefile.list +105 -56
- data/ext/p7zip/CPP/7zip/Compress/Rar1Decoder.cpp +34 -21
- data/ext/p7zip/CPP/7zip/Compress/Rar1Decoder.h +2 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar2Decoder.cpp +77 -67
- data/ext/p7zip/CPP/7zip/Compress/Rar2Decoder.h +12 -10
- data/ext/p7zip/CPP/7zip/Compress/Rar3Decoder.cpp +139 -118
- data/ext/p7zip/CPP/7zip/Compress/Rar3Decoder.h +48 -33
- data/ext/p7zip/CPP/7zip/Compress/Rar3Vm.cpp +148 -113
- data/ext/p7zip/CPP/7zip/Compress/Rar3Vm.h +35 -19
- data/ext/p7zip/CPP/7zip/Compress/Rar5Decoder.cpp +961 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar5Decoder.h +335 -0
- data/ext/p7zip/CPP/7zip/Compress/RarCodecsRegister.cpp +13 -6
- data/ext/p7zip/CPP/7zip/Compress/ShrinkDecoder.cpp +91 -71
- data/ext/p7zip/CPP/7zip/Compress/ShrinkDecoder.h +2 -4
- data/ext/p7zip/CPP/7zip/Compress/XpressDecoder.cpp +129 -0
- data/ext/p7zip/CPP/7zip/Compress/XpressDecoder.h +13 -0
- data/ext/p7zip/CPP/7zip/Compress/ZDecoder.cpp +98 -20
- data/ext/p7zip/CPP/7zip/Compress/ZDecoder.h +19 -7
- data/ext/p7zip/CPP/7zip/Compress/ZlibDecoder.cpp +14 -11
- data/ext/p7zip/CPP/7zip/Compress/ZlibDecoder.h +32 -1
- data/ext/p7zip/CPP/7zip/Crypto/7zAes.cpp +137 -101
- data/ext/p7zip/CPP/7zip/Crypto/7zAes.h +31 -30
- data/ext/p7zip/CPP/7zip/Crypto/7zAesRegister.cpp +8 -9
- data/ext/p7zip/CPP/7zip/Crypto/HmacSha1.cpp +39 -28
- data/ext/p7zip/CPP/7zip/Crypto/HmacSha1.h +3 -3
- data/ext/p7zip/CPP/7zip/Crypto/HmacSha256.cpp +62 -0
- data/ext/p7zip/CPP/7zip/Crypto/HmacSha256.h +27 -0
- data/ext/p7zip/CPP/7zip/Crypto/MyAes.cpp +73 -7
- data/ext/p7zip/CPP/7zip/Crypto/MyAes.h +25 -8
- data/ext/p7zip/CPP/7zip/Crypto/MyAesReg.cpp +16 -0
- data/ext/p7zip/CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp +29 -15
- data/ext/p7zip/CPP/7zip/Crypto/Pbkdf2HmacSha1.h +2 -1
- data/ext/p7zip/CPP/7zip/Crypto/RandGen.cpp +49 -34
- data/ext/p7zip/CPP/7zip/Crypto/RandGen.h +2 -2
- data/ext/p7zip/CPP/7zip/Crypto/Rar20Crypto.cpp +36 -39
- data/ext/p7zip/CPP/7zip/Crypto/Rar20Crypto.h +15 -17
- data/ext/p7zip/CPP/7zip/Crypto/Rar5Aes.cpp +257 -0
- data/ext/p7zip/CPP/7zip/Crypto/Rar5Aes.h +84 -0
- data/ext/p7zip/CPP/7zip/Crypto/RarAes.cpp +70 -71
- data/ext/p7zip/CPP/7zip/Crypto/RarAes.h +24 -19
- data/ext/p7zip/CPP/7zip/Crypto/Sha1Cls.h +51 -0
- data/ext/p7zip/CPP/7zip/Crypto/WzAes.cpp +68 -54
- data/ext/p7zip/CPP/7zip/Crypto/WzAes.h +37 -27
- data/ext/p7zip/CPP/7zip/Crypto/ZipCrypto.cpp +60 -34
- data/ext/p7zip/CPP/7zip/Crypto/ZipCrypto.h +28 -11
- data/ext/p7zip/CPP/7zip/Crypto/ZipStrong.cpp +90 -28
- data/ext/p7zip/CPP/7zip/Crypto/ZipStrong.h +13 -2
- data/ext/p7zip/CPP/7zip/Guid.txt +57 -11
- data/ext/p7zip/CPP/7zip/ICoder.h +202 -17
- data/ext/p7zip/CPP/7zip/IDecl.h +16 -3
- data/ext/p7zip/CPP/7zip/IPassword.h +1 -2
- data/ext/p7zip/CPP/7zip/IProgress.h +2 -16
- data/ext/p7zip/CPP/7zip/IStream.h +82 -13
- data/ext/p7zip/CPP/7zip/MyVersion.h +2 -11
- data/ext/p7zip/CPP/7zip/PropID.h +60 -9
- data/ext/p7zip/CPP/Common/C_FileIO.cpp +5 -1
- data/ext/p7zip/CPP/Common/C_FileIO.h +7 -1
- data/ext/p7zip/CPP/Common/CommandLineParser.cpp +122 -148
- data/ext/p7zip/CPP/Common/CommandLineParser.h +20 -29
- data/ext/p7zip/CPP/Common/Common.h +13 -0
- data/ext/p7zip/CPP/Common/CrcReg.cpp +98 -0
- data/ext/p7zip/CPP/Common/Defs.h +5 -10
- data/ext/p7zip/CPP/Common/DynLimBuf.cpp +93 -0
- data/ext/p7zip/CPP/Common/DynLimBuf.h +40 -0
- data/ext/p7zip/CPP/Common/DynamicBuffer.h +45 -31
- data/ext/p7zip/CPP/Common/IntToString.cpp +109 -40
- data/ext/p7zip/CPP/Common/IntToString.h +14 -9
- data/ext/p7zip/CPP/Common/Lang.cpp +120 -87
- data/ext/p7zip/CPP/Common/Lang.h +10 -15
- data/ext/p7zip/CPP/Common/ListFileUtils.cpp +82 -40
- data/ext/p7zip/CPP/Common/ListFileUtils.h +7 -4
- data/ext/p7zip/CPP/Common/MyBuffer.h +244 -0
- data/ext/p7zip/CPP/Common/MyCom.h +65 -28
- data/ext/p7zip/CPP/Common/MyGuidDef.h +1 -1
- data/ext/p7zip/CPP/Common/MyInitGuid.h +23 -0
- data/ext/p7zip/CPP/Common/MyLinux.h +42 -0
- data/ext/p7zip/CPP/Common/MyMap.cpp +8 -8
- data/ext/p7zip/CPP/Common/MyMap.h +2 -2
- data/ext/p7zip/CPP/Common/MyString.cpp +1643 -117
- data/ext/p7zip/CPP/Common/MyString.h +677 -486
- data/ext/p7zip/CPP/Common/MyTypes.h +38 -0
- data/ext/p7zip/CPP/Common/MyUnknown.h +4 -0
- data/ext/p7zip/CPP/Common/MyVector.cpp +0 -84
- data/ext/p7zip/CPP/Common/MyVector.h +472 -112
- data/ext/p7zip/CPP/Common/MyWindows.cpp +18 -1
- data/ext/p7zip/CPP/Common/MyWindows.h +8 -0
- data/ext/p7zip/CPP/Common/MyXml.cpp +169 -118
- data/ext/p7zip/CPP/Common/MyXml.h +14 -11
- data/ext/p7zip/CPP/Common/NewHandler.cpp +39 -0
- data/ext/p7zip/CPP/Common/NewHandler.h +55 -2
- data/ext/p7zip/CPP/Common/Random.h +14 -0
- data/ext/p7zip/CPP/Common/Sha1Reg.cpp +40 -0
- data/ext/p7zip/CPP/Common/Sha256Reg.cpp +40 -0
- data/ext/p7zip/CPP/Common/StdInStream.cpp +46 -27
- data/ext/p7zip/CPP/Common/StdInStream.h +11 -10
- data/ext/p7zip/CPP/Common/StdOutStream.cpp +48 -35
- data/ext/p7zip/CPP/Common/StdOutStream.h +44 -17
- data/ext/p7zip/CPP/Common/StringConvert.cpp +56 -17
- data/ext/p7zip/CPP/Common/StringConvert.h +7 -3
- data/ext/p7zip/CPP/Common/StringToInt.cpp +102 -48
- data/ext/p7zip/CPP/Common/StringToInt.h +13 -10
- data/ext/p7zip/CPP/Common/TextConfig.cpp +33 -47
- data/ext/p7zip/CPP/Common/TextConfig.h +3 -6
- data/ext/p7zip/CPP/Common/UTFConvert.cpp +218 -75
- data/ext/p7zip/CPP/Common/UTFConvert.h +4 -3
- data/ext/p7zip/CPP/Common/Wildcard.cpp +345 -125
- data/ext/p7zip/CPP/Common/Wildcard.h +82 -13
- data/ext/p7zip/CPP/Common/XzCrc64Reg.cpp +42 -0
- data/ext/p7zip/CPP/Windows/FileDir.cpp +427 -475
- data/ext/p7zip/CPP/Windows/FileDir.h +94 -72
- data/ext/p7zip/CPP/Windows/FileFind.cpp +235 -244
- data/ext/p7zip/CPP/Windows/FileFind.h +63 -59
- data/ext/p7zip/CPP/Windows/FileIO.cpp +29 -46
- data/ext/p7zip/CPP/Windows/FileIO.h +40 -42
- data/ext/p7zip/CPP/Windows/FileName.cpp +696 -17
- data/ext/p7zip/CPP/Windows/FileName.h +11 -3
- data/ext/p7zip/CPP/Windows/NtCheck.h +2 -0
- data/ext/p7zip/CPP/Windows/PropVariant.cpp +134 -30
- data/ext/p7zip/CPP/Windows/PropVariant.h +80 -24
- data/ext/p7zip/CPP/Windows/PropVariantUtils.cpp +89 -18
- data/ext/p7zip/CPP/Windows/PropVariantUtils.h +12 -7
- data/ext/p7zip/CPP/Windows/System.cpp +20 -15
- data/ext/p7zip/CPP/Windows/System.h +3 -2
- data/ext/p7zip/CPP/Windows/TimeUtils.cpp +203 -0
- data/ext/p7zip/CPP/Windows/TimeUtils.h +24 -0
- data/ext/p7zip/CPP/include_windows/basetyps.h +4 -4
- data/ext/p7zip/CPP/include_windows/windows.h +17 -11
- data/ext/p7zip/CPP/myWindows/StdAfx.h +97 -5
- data/ext/p7zip/CPP/myWindows/config.h +20 -5
- data/ext/p7zip/CPP/myWindows/myPrivate.h +8 -0
- data/ext/p7zip/CPP/myWindows/wine_date_and_time.cpp +34 -0
- data/ext/p7zip/ChangeLog +283 -35
- data/ext/p7zip/{DOCS → DOC}/7zC.txt +6 -13
- data/ext/p7zip/{DOCS → DOC}/License.txt +3 -2
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/add.htm +93 -87
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/bench.htm +88 -79
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/delete.htm +62 -59
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/extract.htm +96 -91
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/extract_full.htm +73 -68
- data/ext/p7zip/DOC/MANUAL/cmdline/commands/hash.htm +65 -0
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/index.htm +36 -33
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/list.htm +78 -77
- data/ext/p7zip/DOC/MANUAL/cmdline/commands/rename.htm +51 -0
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/style.css +232 -232
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/test.htm +47 -46
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/commands/update.htm +71 -66
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/exit_codes.htm +27 -27
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/index.htm +29 -29
- data/ext/p7zip/{DOCS/MANUAL/switches → DOC/MANUAL/cmdline}/style.css +232 -232
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/ar_exclude.htm +56 -56
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/ar_include.htm +80 -83
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/ar_no.htm +52 -52
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/bb.htm +61 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/bs.htm +67 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/charset.htm +61 -0
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/exclude.htm +71 -60
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/include.htm +89 -87
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/index.htm +95 -64
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/large_pages.htm +59 -50
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/list_tech.htm +36 -36
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/method.htm +738 -625
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/output_dir.htm +53 -53
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/overwrite.htm +56 -56
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/password.htm +55 -54
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/recurse.htm +85 -83
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/sa.htm +58 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/scc.htm +42 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/scrc.htm +53 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/sdel.htm +39 -0
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/sfx.htm +153 -156
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/shared.htm +40 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/sni.htm +56 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/sns.htm +77 -0
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/spf.htm +80 -0
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/ssc.htm +50 -50
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/stdin.htm +56 -55
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/stdout.htm +54 -50
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/stl.htm +39 -0
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/stop_switch.htm +31 -31
- data/ext/p7zip/DOC/MANUAL/cmdline/switches/stx.htm +50 -0
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline/switches}/style.css +232 -232
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/type.htm +121 -83
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/update.htm +177 -176
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/volume.htm +49 -49
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/working_dir.htm +56 -55
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/switches/yes.htm +48 -48
- data/ext/p7zip/{DOCS/MANUAL → DOC/MANUAL/cmdline}/syntax.htm +120 -120
- data/ext/p7zip/DOC/MANUAL/fm/about.htm +21 -0
- data/ext/p7zip/DOC/MANUAL/fm/benchmark.htm +56 -0
- data/ext/p7zip/DOC/MANUAL/fm/index.htm +54 -0
- data/ext/p7zip/DOC/MANUAL/fm/menu.htm +154 -0
- data/ext/p7zip/DOC/MANUAL/fm/options.htm +152 -0
- data/ext/p7zip/DOC/MANUAL/fm/plugins/7-zip/add.htm +311 -0
- data/ext/p7zip/DOC/MANUAL/fm/plugins/7-zip/extract.htm +78 -0
- data/ext/p7zip/DOC/MANUAL/fm/plugins/7-zip/index.htm +63 -0
- data/ext/p7zip/DOC/MANUAL/fm/plugins/7-zip/style.css +232 -0
- data/ext/p7zip/DOC/MANUAL/fm/plugins/index.htm +22 -0
- data/ext/p7zip/DOC/MANUAL/fm/plugins/style.css +232 -0
- data/ext/p7zip/DOC/MANUAL/fm/style.css +232 -0
- data/ext/p7zip/DOC/MANUAL/general/7z.htm +117 -0
- data/ext/p7zip/DOC/MANUAL/general/faq.htm +125 -0
- data/ext/p7zip/DOC/MANUAL/general/formats.htm +100 -0
- data/ext/p7zip/DOC/MANUAL/general/index.htm +27 -0
- data/ext/p7zip/DOC/MANUAL/general/license.htm +30 -0
- data/ext/p7zip/DOC/MANUAL/general/performance.htm +98 -0
- data/ext/p7zip/DOC/MANUAL/general/style.css +232 -0
- data/ext/p7zip/DOC/MANUAL/general/thanks.htm +43 -0
- data/ext/p7zip/DOC/MANUAL/start.htm +37 -0
- data/ext/p7zip/DOC/MANUAL/style.css +232 -0
- data/ext/p7zip/DOC/Methods.txt +158 -0
- data/ext/p7zip/{DOCS → DOC}/copying.txt +9 -11
- data/ext/p7zip/DOC/lzma.txt +328 -0
- data/ext/p7zip/{DOCS → DOC}/readme.txt +42 -65
- data/ext/p7zip/{DOCS/history.txt → DOC/src-history.txt} +88 -2
- data/ext/p7zip/README +117 -91
- data/ext/p7zip/TODO +0 -2
- data/ext/p7zip/install.sh +31 -29
- data/ext/p7zip/last_error +1 -0
- data/ext/p7zip/makefile +29 -125
- data/ext/p7zip/makefile.afl +23 -0
- data/ext/p7zip/makefile.aix_gcc +5 -4
- data/ext/p7zip/makefile.android_arm +49 -0
- data/ext/p7zip/makefile.beos +5 -4
- data/ext/p7zip/makefile.common +150 -0
- data/ext/p7zip/makefile.crc32 +3 -3
- data/ext/p7zip/makefile.cygwin +5 -4
- data/ext/p7zip/makefile.cygwin64 +21 -0
- data/ext/p7zip/makefile.cygwin64_asm +22 -0
- data/ext/p7zip/makefile.cygwin_asm +6 -4
- data/ext/p7zip/makefile.cygwin_clang +21 -0
- data/ext/p7zip/makefile.cygwin_clang_asm +23 -0
- data/ext/p7zip/{makefile.djgpp_old → makefile.djgpp} +5 -4
- data/ext/p7zip/makefile.djgpp_watt +7 -5
- data/ext/p7zip/makefile.freebsd5 +5 -4
- data/ext/p7zip/{makefile.freebsd6 → makefile.freebsd6+} +6 -5
- data/ext/p7zip/makefile.glb +27 -18
- data/ext/p7zip/makefile.gprof +3 -2
- data/ext/p7zip/makefile.haiku +19 -0
- data/ext/p7zip/makefile.hpux-acc +3 -2
- data/ext/p7zip/makefile.hpux-acc_64 +3 -2
- data/ext/p7zip/makefile.hpux-gcc +5 -4
- data/ext/p7zip/makefile.linux_amd64 +5 -4
- data/ext/p7zip/makefile.linux_amd64_asm +12 -5
- data/ext/p7zip/makefile.linux_amd64_asm_icc +5 -3
- data/ext/p7zip/makefile.linux_amd64_sanitizer +26 -0
- data/ext/p7zip/makefile.linux_any_cpu +5 -4
- data/ext/p7zip/makefile.linux_any_cpu_gcc_4.X +7 -4
- data/ext/p7zip/makefile.linux_clang_amd64_asm +25 -0
- data/ext/p7zip/makefile.linux_clang_amd64_asm_sanitize +27 -0
- data/ext/p7zip/makefile.linux_cross_aarch64 +25 -0
- data/ext/p7zip/makefile.linux_cross_arm +7 -4
- data/ext/p7zip/makefile.linux_cross_djgpp +27 -0
- data/ext/p7zip/makefile.linux_cross_m68k +26 -0
- data/ext/p7zip/makefile.linux_cross_mipsel +27 -0
- data/ext/p7zip/makefile.linux_cross_ppc +25 -0
- data/ext/p7zip/makefile.linux_cross_ppc64 +25 -0
- data/ext/p7zip/makefile.linux_cross_ppc64le +25 -0
- data/ext/p7zip/makefile.linux_cross_s390x +25 -0
- data/ext/p7zip/makefile.linux_cross_sparc64 +25 -0
- data/ext/p7zip/makefile.linux_gcc6_sanitize +23 -0
- data/ext/p7zip/makefile.linux_gcc_2.95_no_need_for_libstdc +6 -4
- data/ext/p7zip/makefile.linux_other +6 -5
- data/ext/p7zip/makefile.linux_s390x +5 -4
- data/ext/p7zip/{makefile.machine_base → makefile.linux_scan-build} +5 -4
- data/ext/p7zip/makefile.linux_valgrind +25 -0
- data/ext/p7zip/{makefile.linux_clang_amd64 → makefile.linux_x32} +6 -5
- data/ext/p7zip/makefile.linux_x86_asm_gcc_4.X +10 -5
- data/ext/p7zip/makefile.linux_x86_asm_gcc_4.X_fltk +8 -4
- data/ext/p7zip/makefile.linux_x86_asm_gcc_mudflap_4.X +4 -2
- data/ext/p7zip/makefile.linux_x86_asm_icc +4 -2
- data/ext/p7zip/makefile.linux_x86_icc +3 -2
- data/ext/p7zip/makefile.macosx_arm64 +17 -0
- data/ext/p7zip/{makefile.macosx_32bits → makefile.macosx_gcc_32bits} +3 -2
- data/ext/p7zip/{makefile.macosx_32bits_asm → makefile.macosx_gcc_32bits_asm} +5 -3
- data/ext/p7zip/{makefile.macosx_32bits_ppc → makefile.macosx_gcc_32bits_ppc} +3 -2
- data/ext/p7zip/{makefile.macosx_64bits → makefile.macosx_gcc_64bits} +3 -2
- data/ext/p7zip/makefile.macosx_llvm_64bits +9 -3
- data/ext/p7zip/makefile.netbsd +5 -4
- data/ext/p7zip/makefile.netware_asm_gcc_3.X +6 -4
- data/ext/p7zip/makefile.oldmake +41 -130
- data/ext/p7zip/makefile.openbsd +7 -3
- data/ext/p7zip/makefile.openbsd_no_port +9 -5
- data/ext/p7zip/makefile.qnx_shared.bin +5 -4
- data/ext/p7zip/makefile.qnx_static +5 -4
- data/ext/p7zip/makefile.solaris_sparc_CC_32 +5 -4
- data/ext/p7zip/makefile.solaris_sparc_CC_64 +6 -4
- data/ext/p7zip/makefile.solaris_sparc_gcc +7 -6
- data/ext/p7zip/makefile.solaris_x86 +5 -4
- data/ext/p7zip/makefile.tru64 +5 -4
- data/ext/seven_zip_ruby/extconf.rb +92 -6
- data/ext/seven_zip_ruby/seven_zip_archive.cpp +40 -17
- data/ext/seven_zip_ruby/seven_zip_archive.h +1 -1
- data/ext/seven_zip_ruby/utils.cpp +267 -124
- data/ext/seven_zip_ruby/utils.h +2 -0
- data/lib/seven_zip_ruby/7z.dll +0 -0
- data/lib/seven_zip_ruby/7z.sfx +0 -0
- data/lib/seven_zip_ruby/7z64.dll +0 -0
- data/lib/seven_zip_ruby/7zCon.sfx +0 -0
- data/lib/seven_zip_ruby/seven_zip_reader.rb +16 -1
- data/lib/seven_zip_ruby/version.rb +1 -1
- data/p7zip/.gitignore +7 -0
- data/p7zip/README.txt +29 -0
- data/p7zip/extract.sh +134 -0
- data/spec/seven_zip_ruby_spec.rb +22 -13
- data/test/res/The Flying Spaghetti Monster.txt +3 -0
- data/test/res/The Three Little Pigs.txt +5 -0
- data/test/res/UTF_content.txt +3 -0
- data/test/res/test_reader_data.7z +0 -0
- data/test/res/test_reader_filename_cp932.7z +0 -0
- data/test/res/test_reader_files.7z +0 -0
- data/test/test_seven_zip_reader.rb +187 -0
- data/test/test_seven_zip_writer.rb +184 -0
- metadata +267 -219
- data/.github/workflows/test-and-release.yml +0 -43
- data/ext/C/Types.h +0 -254
- data/ext/CPP/7zip/Archive/IArchive.h +0 -234
- data/ext/CPP/7zip/IDecl.h +0 -15
- data/ext/CPP/7zip/IPassword.h +0 -24
- data/ext/CPP/7zip/IProgress.h +0 -33
- data/ext/CPP/7zip/IStream.h +0 -58
- data/ext/CPP/7zip/PropID.h +0 -76
- data/ext/CPP/Common/MyCom.h +0 -225
- data/ext/CPP/Common/MyGuidDef.h +0 -54
- data/ext/CPP/Common/MyInitGuid.h +0 -22
- data/ext/CPP/Common/MyUnknown.h +0 -13
- data/ext/CPP/Common/MyWindows.h +0 -204
- data/ext/CPP/Common/Types.h +0 -11
- data/ext/CPP/Windows/PropVariant.h +0 -56
- data/ext/CPP/include_windows/basetyps.h +0 -19
- data/ext/CPP/include_windows/tchar.h +0 -89
- data/ext/CPP/include_windows/windows.h +0 -194
- data/ext/p7zip/Asm/x64/7zCrcT8U.asm +0 -103
- data/ext/p7zip/Asm/x86/7zCrcT8U.asm +0 -101
- data/ext/p7zip/C/7zCrcT8.c +0 -43
- data/ext/p7zip/C/Alloc.back3 +0 -238
- data/ext/p7zip/C/Alloc.c.back +0 -243
- data/ext/p7zip/C/Alloc.c.back2 +0 -222
- data/ext/p7zip/C/LzmaUtil/Lzma86Dec.h +0 -51
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderOutStream.cpp +0 -149
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderOutStream.h +0 -58
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHeader.cpp +0 -24
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHeader.h +0 -28
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmRegister.cpp +0 -13
- data/ext/p7zip/CPP/7zip/Archive/Com/ComHandler.cpp +0 -239
- data/ext/p7zip/CPP/7zip/Archive/Com/ComHandler.h +0 -28
- data/ext/p7zip/CPP/7zip/Archive/Com/ComIn.cpp +0 -389
- data/ext/p7zip/CPP/7zip/Archive/Com/ComIn.h +0 -119
- data/ext/p7zip/CPP/7zip/Archive/Com/ComRegister.cpp +0 -13
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2MT.cpp +0 -240
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2MT.h +0 -80
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2ST.cpp +0 -239
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2ST.h +0 -88
- data/ext/p7zip/CPP/7zip/Archive/Common/CrossThreadProgress.cpp +0 -15
- data/ext/p7zip/CPP/7zip/Archive/Common/CrossThreadProgress.h +0 -37
- data/ext/p7zip/CPP/7zip/Archive/DebHandler.cpp +0 -413
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsHandler.cpp +0 -243
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsHandler.h +0 -26
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsIn.cpp +0 -480
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsIn.h +0 -154
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsRegister.cpp +0 -13
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHeader.cpp +0 -21
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarIn.cpp +0 -478
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarIn.h +0 -123
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarItem.cpp +0 -55
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarRegister.cpp +0 -13
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarVolumeInStream.cpp +0 -78
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarVolumeInStream.h +0 -49
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfRegister.cpp +0 -13
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHeader.cpp +0 -36
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipItemEx.h +0 -34
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_7zFM.txt +0 -163
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_7zG.txt +0 -131
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_7za.txt +0 -253
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_ALL.txt +0 -32
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_Format7zFree.txt +0 -290
- data/ext/p7zip/CPP/7zip/CMAKE/generate.sh +0 -37
- data/ext/p7zip/CPP/7zip/CMAKE/generate_xcode.sh +0 -32
- data/ext/p7zip/CPP/7zip/Common/LockedStream.cpp +0 -23
- data/ext/p7zip/CPP/7zip/Common/LockedStream.h +0 -38
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder1.cpp +0 -309
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder1.h +0 -98
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder2.cpp +0 -90
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder2.h +0 -59
- data/ext/p7zip/CPP/7zip/Compress/BranchCoder.cpp +0 -19
- data/ext/p7zip/CPP/7zip/Compress/BranchCoder.h +0 -44
- data/ext/p7zip/CPP/7zip/Compress/DllExports.cpp +0 -39
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp +0 -531
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp +0 -1018
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBench.h +0 -48
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.cpp +0 -311
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.h +0 -20
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/makefile +0 -173
- data/ext/p7zip/CPP/7zip/Compress/Lzx86Converter.cpp +0 -90
- data/ext/p7zip/CPP/7zip/Compress/Lzx86Converter.h +0 -46
- data/ext/p7zip/CPP/7zip/Compress/RangeCoder.h +0 -205
- data/ext/p7zip/CPP/7zip/Compress/RangeCoderBit.h +0 -114
- data/ext/p7zip/CPP/7zip/Crypto/Sha1.cpp +0 -229
- data/ext/p7zip/CPP/7zip/Crypto/Sha1.h +0 -68
- data/ext/p7zip/CPP/7zip/PREMAKE/generate.sh +0 -18
- data/ext/p7zip/CPP/7zip/PREMAKE/premake4.lua +0 -263
- data/ext/p7zip/CPP/7zip/QMAKE/7ZA/7ZA.pro +0 -228
- data/ext/p7zip/CPP/7zip/QMAKE/7ZA/7ZA_osx.pro +0 -228
- data/ext/p7zip/CPP/7zip/QMAKE/test_emul/test_emul.pro +0 -26
- data/ext/p7zip/CPP/7zip/TEST/TestUI/TestUI.cpp +0 -560
- data/ext/p7zip/CPP/7zip/TEST/TestUI/makefile +0 -33
- data/ext/p7zip/CPP/7zip/TEST/TestUI/makefile.depend +0 -577
- data/ext/p7zip/CPP/7zip/TEST/TestUI/makefile.list +0 -16
- data/ext/p7zip/CPP/Common/Buffer.h +0 -77
- data/ext/p7zip/CPP/Common/Types.h +0 -11
- data/ext/p7zip/CPP/Windows/COM.cpp +0 -37
- data/ext/p7zip/CPP/Windows/COM.h +0 -69
- data/ext/p7zip/CPP/Windows/Clipboard.cpp +0 -160
- data/ext/p7zip/CPP/Windows/Clipboard.h +0 -28
- data/ext/p7zip/CPP/Windows/CommonDialog.h +0 -19
- data/ext/p7zip/CPP/Windows/Control/ComboBox.h +0 -82
- data/ext/p7zip/CPP/Windows/Control/Controls.cpp +0 -515
- data/ext/p7zip/CPP/Windows/Control/Dialog.cpp +0 -560
- data/ext/p7zip/CPP/Windows/Control/Dialog.h +0 -179
- data/ext/p7zip/CPP/Windows/Control/DialogImpl.h +0 -73
- data/ext/p7zip/CPP/Windows/Control/Edit.h +0 -24
- data/ext/p7zip/CPP/Windows/Control/ListView.h +0 -164
- data/ext/p7zip/CPP/Windows/Control/ProgressBar.h +0 -34
- data/ext/p7zip/CPP/Windows/Control/Static.h +0 -23
- data/ext/p7zip/CPP/Windows/Control/StatusBar.h +0 -56
- data/ext/p7zip/CPP/Windows/Control/Window2.cpp +0 -211
- data/ext/p7zip/CPP/Windows/Control/Window2.h +0 -111
- data/ext/p7zip/CPP/Windows/DLL.cpp +0 -193
- data/ext/p7zip/CPP/Windows/DLL.h +0 -48
- data/ext/p7zip/CPP/Windows/Error.cpp +0 -58
- data/ext/p7zip/CPP/Windows/Error.h +0 -33
- data/ext/p7zip/CPP/Windows/Menu.h +0 -4
- data/ext/p7zip/CPP/Windows/PropVariantConversions.cpp +0 -142
- data/ext/p7zip/CPP/Windows/PropVariantConversions.h +0 -14
- data/ext/p7zip/CPP/Windows/Registry.cpp +0 -313
- data/ext/p7zip/CPP/Windows/Registry.h +0 -113
- data/ext/p7zip/CPP/Windows/ResourceString.h +0 -22
- data/ext/p7zip/CPP/Windows/Shell.h +0 -21
- data/ext/p7zip/CPP/Windows/Time.cpp +0 -88
- data/ext/p7zip/CPP/Windows/Time.h +0 -21
- data/ext/p7zip/CPP/Windows/Window.cpp +0 -101
- data/ext/p7zip/CPP/Windows/Window.h +0 -43
- data/ext/p7zip/CPP/myWindows/initguid.h +0 -4
- data/ext/p7zip/CPP/myWindows/makefile +0 -21
- data/ext/p7zip/CPP/myWindows/makefile.depend +0 -32
- data/ext/p7zip/CPP/myWindows/makefile.list +0 -28
- data/ext/p7zip/CPP/myWindows/myAddExeFlag.cpp +0 -20
- data/ext/p7zip/CPP/myWindows/myGetTickCount.cpp +0 -8
- data/ext/p7zip/CPP/myWindows/mySplitCommandLine.cpp +0 -82
- data/ext/p7zip/CPP/myWindows/test_emul.cpp +0 -745
- data/ext/p7zip/CPP/myWindows/wine_GetXXXDefaultLangID.cpp +0 -741
- data/ext/p7zip/DOCS/MANUAL/switches/charset.htm +0 -49
- data/ext/p7zip/DOCS/Methods.txt +0 -152
- data/ext/p7zip/DOCS/lzma.txt +0 -598
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/ChangeLog +0 -41
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/readme +0 -21
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/readme.u7z +0 -30
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/u7z +0 -133
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/README +0 -21
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/check/check.sh +0 -117
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/check/files.tar +0 -0
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/man1/p7zip.1 +0 -33
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/p7zip +0 -144
- data/ext/p7zip/contrib/qnx630sp3/qnx630sp3-shared +0 -14
- data/ext/p7zip/contrib/qnx630sp3/qnx630sp3-static +0 -10
- data/ext/p7zip/integration_context_menu.txt +0 -51
- data/ext/p7zip/makefile.rules +0 -661
- /data/ext/p7zip/{DOCS → DOC}/7zFormat.txt +0 -0
- /data/ext/p7zip/{DOCS → DOC}/unRarLicense.txt +0 -0
data/ext/p7zip/C/LzmaEnc.c
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
/* LzmaEnc.c -- LZMA Encoder
|
2
|
-
|
2
|
+
2016-05-16 : Igor Pavlov : Public domain */
|
3
|
+
|
4
|
+
#include "Precomp.h"
|
3
5
|
|
4
6
|
#include <string.h>
|
5
7
|
|
@@ -18,9 +20,12 @@
|
|
18
20
|
#endif
|
19
21
|
|
20
22
|
#ifdef SHOW_STAT
|
21
|
-
static
|
23
|
+
static unsigned g_STAT_OFFSET = 0;
|
22
24
|
#endif
|
23
25
|
|
26
|
+
#define kMaxHistorySize ((UInt32)3 << 29)
|
27
|
+
/* #define kMaxHistorySize ((UInt32)7 << 29) */
|
28
|
+
|
24
29
|
#define kBlockSizeMax ((1 << LZMA_NUM_BLOCK_SIZE_BITS) - 1)
|
25
30
|
|
26
31
|
#define kBlockSize (9 << 10)
|
@@ -46,6 +51,7 @@ void LzmaEncProps_Init(CLzmaEncProps *p)
|
|
46
51
|
{
|
47
52
|
p->level = 5;
|
48
53
|
p->dictSize = p->mc = 0;
|
54
|
+
p->reduceSize = (UInt64)(Int64)-1;
|
49
55
|
p->lc = p->lp = p->pb = p->algo = p->fb = p->btMode = p->numHashBytes = p->numThreads = -1;
|
50
56
|
p->writeEndMark = 0;
|
51
57
|
}
|
@@ -55,15 +61,28 @@ void LzmaEncProps_Normalize(CLzmaEncProps *p)
|
|
55
61
|
int level = p->level;
|
56
62
|
if (level < 0) level = 5;
|
57
63
|
p->level = level;
|
64
|
+
|
58
65
|
if (p->dictSize == 0) p->dictSize = (level <= 5 ? (1 << (level * 2 + 14)) : (level == 6 ? (1 << 25) : (1 << 26)));
|
66
|
+
if (p->dictSize > p->reduceSize)
|
67
|
+
{
|
68
|
+
unsigned i;
|
69
|
+
for (i = 11; i <= 30; i++)
|
70
|
+
{
|
71
|
+
if ((UInt32)p->reduceSize <= ((UInt32)2 << i)) { p->dictSize = ((UInt32)2 << i); break; }
|
72
|
+
if ((UInt32)p->reduceSize <= ((UInt32)3 << i)) { p->dictSize = ((UInt32)3 << i); break; }
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
59
76
|
if (p->lc < 0) p->lc = 3;
|
60
77
|
if (p->lp < 0) p->lp = 0;
|
61
78
|
if (p->pb < 0) p->pb = 2;
|
79
|
+
|
62
80
|
if (p->algo < 0) p->algo = (level < 5 ? 0 : 1);
|
63
81
|
if (p->fb < 0) p->fb = (level < 7 ? 32 : 64);
|
64
82
|
if (p->btMode < 0) p->btMode = (p->algo == 0 ? 0 : 1);
|
65
83
|
if (p->numHashBytes < 0) p->numHashBytes = 4;
|
66
|
-
if (p->mc == 0)
|
84
|
+
if (p->mc == 0) p->mc = (16 + (p->fb >> 1)) >> (p->btMode ? 0 : 1);
|
85
|
+
|
67
86
|
if (p->numThreads < 0)
|
68
87
|
p->numThreads =
|
69
88
|
#ifndef _7ZIP_ST
|
@@ -80,17 +99,18 @@ UInt32 LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
|
|
80
99
|
return props.dictSize;
|
81
100
|
}
|
82
101
|
|
102
|
+
#if (_MSC_VER >= 1400)
|
103
|
+
/* BSR code is fast for some new CPUs */
|
83
104
|
/* #define LZMA_LOG_BSR */
|
84
|
-
|
85
|
-
|
105
|
+
#endif
|
86
106
|
|
87
107
|
#ifdef LZMA_LOG_BSR
|
88
108
|
|
89
|
-
#define kDicLogSizeMaxCompress
|
109
|
+
#define kDicLogSizeMaxCompress 32
|
90
110
|
|
91
|
-
#define BSR2_RET(pos, res) { unsigned long
|
111
|
+
#define BSR2_RET(pos, res) { unsigned long zz; _BitScanReverse(&zz, (pos)); res = (zz + zz) + ((pos >> (zz - 1)) & 1); }
|
92
112
|
|
93
|
-
UInt32 GetPosSlot1(UInt32 pos)
|
113
|
+
static UInt32 GetPosSlot1(UInt32 pos)
|
94
114
|
{
|
95
115
|
UInt32 res;
|
96
116
|
BSR2_RET(pos, res);
|
@@ -101,27 +121,44 @@ UInt32 GetPosSlot1(UInt32 pos)
|
|
101
121
|
|
102
122
|
#else
|
103
123
|
|
104
|
-
#define kNumLogBits (9 +
|
124
|
+
#define kNumLogBits (9 + sizeof(size_t) / 2)
|
125
|
+
/* #define kNumLogBits (11 + sizeof(size_t) / 8 * 3) */
|
126
|
+
|
105
127
|
#define kDicLogSizeMaxCompress ((kNumLogBits - 1) * 2 + 7)
|
106
128
|
|
107
|
-
void LzmaEnc_FastPosInit(Byte *g_FastPos)
|
129
|
+
static void LzmaEnc_FastPosInit(Byte *g_FastPos)
|
108
130
|
{
|
109
|
-
|
131
|
+
unsigned slot;
|
110
132
|
g_FastPos[0] = 0;
|
111
133
|
g_FastPos[1] = 1;
|
134
|
+
g_FastPos += 2;
|
112
135
|
|
113
|
-
for (
|
136
|
+
for (slot = 2; slot < kNumLogBits * 2; slot++)
|
114
137
|
{
|
115
|
-
|
116
|
-
|
117
|
-
for (j = 0; j < k; j
|
118
|
-
g_FastPos[
|
138
|
+
size_t k = ((size_t)1 << ((slot >> 1) - 1));
|
139
|
+
size_t j;
|
140
|
+
for (j = 0; j < k; j++)
|
141
|
+
g_FastPos[j] = (Byte)slot;
|
142
|
+
g_FastPos += k;
|
119
143
|
}
|
120
144
|
}
|
121
145
|
|
122
|
-
|
146
|
+
/* we can use ((limit - pos) >> 31) only if (pos < ((UInt32)1 << 31)) */
|
147
|
+
/*
|
148
|
+
#define BSR2_RET(pos, res) { UInt32 zz = 6 + ((kNumLogBits - 1) & \
|
123
149
|
(0 - (((((UInt32)1 << (kNumLogBits + 6)) - 1) - pos) >> 31))); \
|
124
|
-
res = p->g_FastPos[pos >>
|
150
|
+
res = p->g_FastPos[pos >> zz] + (zz * 2); }
|
151
|
+
*/
|
152
|
+
|
153
|
+
/*
|
154
|
+
#define BSR2_RET(pos, res) { UInt32 zz = 6 + ((kNumLogBits - 1) & \
|
155
|
+
(0 - (((((UInt32)1 << (kNumLogBits)) - 1) - (pos >> 6)) >> 31))); \
|
156
|
+
res = p->g_FastPos[pos >> zz] + (zz * 2); }
|
157
|
+
*/
|
158
|
+
|
159
|
+
#define BSR2_RET(pos, res) { UInt32 zz = (pos < (1 << (kNumLogBits + 6))) ? 6 : 6 + kNumLogBits - 1; \
|
160
|
+
res = p->g_FastPos[pos >> zz] + (zz * 2); }
|
161
|
+
|
125
162
|
/*
|
126
163
|
#define BSR2_RET(pos, res) { res = (pos < (1 << (kNumLogBits + 6))) ? \
|
127
164
|
p->g_FastPos[pos >> 6] + 12 : \
|
@@ -201,6 +238,7 @@ typedef struct
|
|
201
238
|
|
202
239
|
#define kNumStates 12
|
203
240
|
|
241
|
+
|
204
242
|
typedef struct
|
205
243
|
{
|
206
244
|
CLzmaProb choice;
|
@@ -210,14 +248,16 @@ typedef struct
|
|
210
248
|
CLzmaProb high[kLenNumHighSymbols];
|
211
249
|
} CLenEnc;
|
212
250
|
|
251
|
+
|
213
252
|
typedef struct
|
214
253
|
{
|
215
254
|
CLenEnc p;
|
216
|
-
UInt32 prices[LZMA_NUM_PB_STATES_MAX][kLenNumSymbolsTotal];
|
217
255
|
UInt32 tableSize;
|
256
|
+
UInt32 prices[LZMA_NUM_PB_STATES_MAX][kLenNumSymbolsTotal];
|
218
257
|
UInt32 counters[LZMA_NUM_PB_STATES_MAX];
|
219
258
|
} CLenPriceEnc;
|
220
259
|
|
260
|
+
|
221
261
|
typedef struct
|
222
262
|
{
|
223
263
|
UInt32 range;
|
@@ -232,10 +272,14 @@ typedef struct
|
|
232
272
|
SRes res;
|
233
273
|
} CRangeEnc;
|
234
274
|
|
275
|
+
|
235
276
|
typedef struct
|
236
277
|
{
|
237
278
|
CLzmaProb *litProbs;
|
238
279
|
|
280
|
+
UInt32 state;
|
281
|
+
UInt32 reps[LZMA_NUM_REPS];
|
282
|
+
|
239
283
|
CLzmaProb isMatch[kNumStates][LZMA_NUM_PB_STATES_MAX];
|
240
284
|
CLzmaProb isRep[kNumStates];
|
241
285
|
CLzmaProb isRepG0[kNumStates];
|
@@ -249,15 +293,49 @@ typedef struct
|
|
249
293
|
|
250
294
|
CLenPriceEnc lenEnc;
|
251
295
|
CLenPriceEnc repLenEnc;
|
252
|
-
|
253
|
-
UInt32 reps[LZMA_NUM_REPS];
|
254
|
-
UInt32 state;
|
255
296
|
} CSaveState;
|
256
297
|
|
298
|
+
|
257
299
|
typedef struct
|
258
300
|
{
|
259
|
-
IMatchFinder matchFinder;
|
260
301
|
void *matchFinderObj;
|
302
|
+
IMatchFinder matchFinder;
|
303
|
+
|
304
|
+
UInt32 optimumEndIndex;
|
305
|
+
UInt32 optimumCurrentIndex;
|
306
|
+
|
307
|
+
UInt32 longestMatchLength;
|
308
|
+
UInt32 numPairs;
|
309
|
+
UInt32 numAvail;
|
310
|
+
|
311
|
+
UInt32 numFastBytes;
|
312
|
+
UInt32 additionalOffset;
|
313
|
+
UInt32 reps[LZMA_NUM_REPS];
|
314
|
+
UInt32 state;
|
315
|
+
|
316
|
+
unsigned lc, lp, pb;
|
317
|
+
unsigned lpMask, pbMask;
|
318
|
+
unsigned lclp;
|
319
|
+
|
320
|
+
CLzmaProb *litProbs;
|
321
|
+
|
322
|
+
Bool fastMode;
|
323
|
+
Bool writeEndMark;
|
324
|
+
Bool finished;
|
325
|
+
Bool multiThread;
|
326
|
+
Bool needInit;
|
327
|
+
|
328
|
+
UInt64 nowPos64;
|
329
|
+
|
330
|
+
UInt32 matchPriceCount;
|
331
|
+
UInt32 alignPriceCount;
|
332
|
+
|
333
|
+
UInt32 distTableSize;
|
334
|
+
|
335
|
+
UInt32 dictSize;
|
336
|
+
SRes result;
|
337
|
+
|
338
|
+
CRangeEnc rc;
|
261
339
|
|
262
340
|
#ifndef _7ZIP_ST
|
263
341
|
Bool mtMode;
|
@@ -270,12 +348,6 @@ typedef struct
|
|
270
348
|
Byte pad[128];
|
271
349
|
#endif
|
272
350
|
|
273
|
-
UInt32 optimumEndIndex;
|
274
|
-
UInt32 optimumCurrentIndex;
|
275
|
-
|
276
|
-
UInt32 longestMatchLength;
|
277
|
-
UInt32 numPairs;
|
278
|
-
UInt32 numAvail;
|
279
351
|
COptimal opt[kNumOpts];
|
280
352
|
|
281
353
|
#ifndef LZMA_LOG_BSR
|
@@ -284,22 +356,10 @@ typedef struct
|
|
284
356
|
|
285
357
|
UInt32 ProbPrices[kBitModelTotal >> kNumMoveReducingBits];
|
286
358
|
UInt32 matches[LZMA_MATCH_LEN_MAX * 2 + 2 + 1];
|
287
|
-
UInt32 numFastBytes;
|
288
|
-
UInt32 additionalOffset;
|
289
|
-
UInt32 reps[LZMA_NUM_REPS];
|
290
|
-
UInt32 state;
|
291
359
|
|
292
360
|
UInt32 posSlotPrices[kNumLenToPosStates][kDistTableSizeMax];
|
293
361
|
UInt32 distancesPrices[kNumLenToPosStates][kNumFullDistances];
|
294
362
|
UInt32 alignPrices[kAlignTableSize];
|
295
|
-
UInt32 alignPriceCount;
|
296
|
-
|
297
|
-
UInt32 distTableSize;
|
298
|
-
|
299
|
-
unsigned lc, lp, pb;
|
300
|
-
unsigned lpMask, pbMask;
|
301
|
-
|
302
|
-
CLzmaProb *litProbs;
|
303
363
|
|
304
364
|
CLzmaProb isMatch[kNumStates][LZMA_NUM_PB_STATES_MAX];
|
305
365
|
CLzmaProb isRep[kNumStates];
|
@@ -315,27 +375,14 @@ typedef struct
|
|
315
375
|
CLenPriceEnc lenEnc;
|
316
376
|
CLenPriceEnc repLenEnc;
|
317
377
|
|
318
|
-
unsigned lclp;
|
319
|
-
|
320
|
-
Bool fastMode;
|
321
|
-
|
322
|
-
CRangeEnc rc;
|
323
|
-
|
324
|
-
Bool writeEndMark;
|
325
|
-
UInt64 nowPos64;
|
326
|
-
UInt32 matchPriceCount;
|
327
|
-
Bool finished;
|
328
|
-
Bool multiThread;
|
329
|
-
|
330
|
-
SRes result;
|
331
|
-
UInt32 dictSize;
|
332
|
-
UInt32 matchFinderCycles;
|
333
|
-
|
334
|
-
int needInit;
|
335
|
-
|
336
378
|
CSaveState saveState;
|
379
|
+
|
380
|
+
#ifndef _7ZIP_ST
|
381
|
+
Byte pad2[128];
|
382
|
+
#endif
|
337
383
|
} CLzmaEnc;
|
338
384
|
|
385
|
+
|
339
386
|
void LzmaEnc_SaveState(CLzmaEncHandle pp)
|
340
387
|
{
|
341
388
|
CLzmaEnc *p = (CLzmaEnc *)pp;
|
@@ -359,7 +406,7 @@ void LzmaEnc_SaveState(CLzmaEncHandle pp)
|
|
359
406
|
memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
|
360
407
|
memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
|
361
408
|
memcpy(dest->reps, p->reps, sizeof(p->reps));
|
362
|
-
memcpy(dest->litProbs, p->litProbs, (0x300 << p->lclp) * sizeof(CLzmaProb));
|
409
|
+
memcpy(dest->litProbs, p->litProbs, ((UInt32)0x300 << p->lclp) * sizeof(CLzmaProb));
|
363
410
|
}
|
364
411
|
|
365
412
|
void LzmaEnc_RestoreState(CLzmaEncHandle pp)
|
@@ -385,7 +432,7 @@ void LzmaEnc_RestoreState(CLzmaEncHandle pp)
|
|
385
432
|
memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
|
386
433
|
memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
|
387
434
|
memcpy(dest->reps, p->reps, sizeof(p->reps));
|
388
|
-
memcpy(dest->litProbs, p->litProbs, (0x300 << dest->lclp) * sizeof(CLzmaProb));
|
435
|
+
memcpy(dest->litProbs, p->litProbs, ((UInt32)0x300 << dest->lclp) * sizeof(CLzmaProb));
|
389
436
|
}
|
390
437
|
|
391
438
|
SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2)
|
@@ -394,11 +441,14 @@ SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2)
|
|
394
441
|
CLzmaEncProps props = *props2;
|
395
442
|
LzmaEncProps_Normalize(&props);
|
396
443
|
|
397
|
-
if (props.lc > LZMA_LC_MAX
|
398
|
-
|
444
|
+
if (props.lc > LZMA_LC_MAX
|
445
|
+
|| props.lp > LZMA_LP_MAX
|
446
|
+
|| props.pb > LZMA_PB_MAX
|
447
|
+
|| props.dictSize > ((UInt64)1 << kDicLogSizeMaxCompress)
|
448
|
+
|| props.dictSize > kMaxHistorySize)
|
399
449
|
return SZ_ERROR_PARAM;
|
450
|
+
|
400
451
|
p->dictSize = props.dictSize;
|
401
|
-
p->matchFinderCycles = props.mc;
|
402
452
|
{
|
403
453
|
unsigned fb = props.fb;
|
404
454
|
if (fb < 5)
|
@@ -411,7 +461,7 @@ SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2)
|
|
411
461
|
p->lp = props.lp;
|
412
462
|
p->pb = props.pb;
|
413
463
|
p->fastMode = (props.algo == 0);
|
414
|
-
p->matchFinderBase.btMode = props.btMode;
|
464
|
+
p->matchFinderBase.btMode = (Byte)(props.btMode ? 1 : 0);
|
415
465
|
{
|
416
466
|
UInt32 numHashBytes = 4;
|
417
467
|
if (props.btMode)
|
@@ -455,8 +505,8 @@ static const int kShortRepNextStates[kNumStates]= {9, 9, 9, 9, 9, 9, 9, 11, 11,
|
|
455
505
|
|
456
506
|
static void RangeEnc_Construct(CRangeEnc *p)
|
457
507
|
{
|
458
|
-
p->outStream =
|
459
|
-
p->bufBase =
|
508
|
+
p->outStream = NULL;
|
509
|
+
p->bufBase = NULL;
|
460
510
|
}
|
461
511
|
|
462
512
|
#define RangeEnc_GetProcessed(p) ((p)->processed + ((p)->buf - (p)->bufBase) + (p)->cacheSize)
|
@@ -464,10 +514,10 @@ static void RangeEnc_Construct(CRangeEnc *p)
|
|
464
514
|
#define RC_BUF_SIZE (1 << 16)
|
465
515
|
static int RangeEnc_Alloc(CRangeEnc *p, ISzAlloc *alloc)
|
466
516
|
{
|
467
|
-
if (p->bufBase
|
517
|
+
if (!p->bufBase)
|
468
518
|
{
|
469
519
|
p->bufBase = (Byte *)alloc->Alloc(alloc, RC_BUF_SIZE);
|
470
|
-
if (p->bufBase
|
520
|
+
if (!p->bufBase)
|
471
521
|
return 0;
|
472
522
|
p->bufLim = p->bufBase + RC_BUF_SIZE;
|
473
523
|
}
|
@@ -508,7 +558,7 @@ static void RangeEnc_FlushStream(CRangeEnc *p)
|
|
508
558
|
|
509
559
|
static void MY_FAST_CALL RangeEnc_ShiftLow(CRangeEnc *p)
|
510
560
|
{
|
511
|
-
if ((UInt32)p->low < (UInt32)0xFF000000 || (
|
561
|
+
if ((UInt32)p->low < (UInt32)0xFF000000 || (unsigned)(p->low >> 32) != 0)
|
512
562
|
{
|
513
563
|
Byte temp = p->cache;
|
514
564
|
do
|
@@ -534,7 +584,7 @@ static void RangeEnc_FlushData(CRangeEnc *p)
|
|
534
584
|
RangeEnc_ShiftLow(p);
|
535
585
|
}
|
536
586
|
|
537
|
-
static void RangeEnc_EncodeDirectBits(CRangeEnc *p, UInt32 value,
|
587
|
+
static void RangeEnc_EncodeDirectBits(CRangeEnc *p, UInt32 value, unsigned numBits)
|
538
588
|
{
|
539
589
|
do
|
540
590
|
{
|
@@ -597,7 +647,7 @@ static void LitEnc_EncodeMatched(CRangeEnc *p, CLzmaProb *probs, UInt32 symbol,
|
|
597
647
|
while (symbol < 0x10000);
|
598
648
|
}
|
599
649
|
|
600
|
-
void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
|
650
|
+
static void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
|
601
651
|
{
|
602
652
|
UInt32 i;
|
603
653
|
for (i = (1 << kNumMoveReducingBits) / 2; i < kBitModelTotal; i += (1 << kNumMoveReducingBits))
|
@@ -633,7 +683,7 @@ void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
|
|
633
683
|
#define GET_PRICE_0a(prob) ProbPrices[(prob) >> kNumMoveReducingBits]
|
634
684
|
#define GET_PRICE_1a(prob) ProbPrices[((prob) ^ (kBitModelTotal - 1)) >> kNumMoveReducingBits]
|
635
685
|
|
636
|
-
static UInt32 LitEnc_GetPrice(const CLzmaProb *probs, UInt32 symbol, UInt32 *ProbPrices)
|
686
|
+
static UInt32 LitEnc_GetPrice(const CLzmaProb *probs, UInt32 symbol, const UInt32 *ProbPrices)
|
637
687
|
{
|
638
688
|
UInt32 price = 0;
|
639
689
|
symbol |= 0x100;
|
@@ -646,7 +696,7 @@ static UInt32 LitEnc_GetPrice(const CLzmaProb *probs, UInt32 symbol, UInt32 *Pro
|
|
646
696
|
return price;
|
647
697
|
}
|
648
698
|
|
649
|
-
static UInt32 LitEnc_GetPriceMatched(const CLzmaProb *probs, UInt32 symbol, UInt32 matchByte, UInt32 *ProbPrices)
|
699
|
+
static UInt32 LitEnc_GetPriceMatched(const CLzmaProb *probs, UInt32 symbol, UInt32 matchByte, const UInt32 *ProbPrices)
|
650
700
|
{
|
651
701
|
UInt32 price = 0;
|
652
702
|
UInt32 offs = 0x100;
|
@@ -690,7 +740,7 @@ static void RcTree_ReverseEncode(CRangeEnc *rc, CLzmaProb *probs, int numBitLeve
|
|
690
740
|
}
|
691
741
|
}
|
692
742
|
|
693
|
-
static UInt32 RcTree_GetPrice(const CLzmaProb *probs, int numBitLevels, UInt32 symbol, UInt32 *ProbPrices)
|
743
|
+
static UInt32 RcTree_GetPrice(const CLzmaProb *probs, int numBitLevels, UInt32 symbol, const UInt32 *ProbPrices)
|
694
744
|
{
|
695
745
|
UInt32 price = 0;
|
696
746
|
symbol |= (1 << numBitLevels);
|
@@ -702,7 +752,7 @@ static UInt32 RcTree_GetPrice(const CLzmaProb *probs, int numBitLevels, UInt32 s
|
|
702
752
|
return price;
|
703
753
|
}
|
704
754
|
|
705
|
-
static UInt32 RcTree_ReverseGetPrice(const CLzmaProb *probs, int numBitLevels, UInt32 symbol, UInt32 *ProbPrices)
|
755
|
+
static UInt32 RcTree_ReverseGetPrice(const CLzmaProb *probs, int numBitLevels, UInt32 symbol, const UInt32 *ProbPrices)
|
706
756
|
{
|
707
757
|
UInt32 price = 0;
|
708
758
|
UInt32 m = 1;
|
@@ -753,7 +803,7 @@ static void LenEnc_Encode(CLenEnc *p, CRangeEnc *rc, UInt32 symbol, UInt32 posSt
|
|
753
803
|
}
|
754
804
|
}
|
755
805
|
|
756
|
-
static void LenEnc_SetPrices(CLenEnc *p, UInt32 posState, UInt32 numSymbols, UInt32 *prices, UInt32 *ProbPrices)
|
806
|
+
static void LenEnc_SetPrices(CLenEnc *p, UInt32 posState, UInt32 numSymbols, UInt32 *prices, const UInt32 *ProbPrices)
|
757
807
|
{
|
758
808
|
UInt32 a0 = GET_PRICE_0a(p->choice);
|
759
809
|
UInt32 a1 = GET_PRICE_1a(p->choice);
|
@@ -776,20 +826,20 @@ static void LenEnc_SetPrices(CLenEnc *p, UInt32 posState, UInt32 numSymbols, UIn
|
|
776
826
|
prices[i] = b1 + RcTree_GetPrice(p->high, kLenNumHighBits, i - kLenNumLowSymbols - kLenNumMidSymbols, ProbPrices);
|
777
827
|
}
|
778
828
|
|
779
|
-
static void MY_FAST_CALL LenPriceEnc_UpdateTable(CLenPriceEnc *p, UInt32 posState, UInt32 *ProbPrices)
|
829
|
+
static void MY_FAST_CALL LenPriceEnc_UpdateTable(CLenPriceEnc *p, UInt32 posState, const UInt32 *ProbPrices)
|
780
830
|
{
|
781
831
|
LenEnc_SetPrices(&p->p, posState, p->tableSize, p->prices[posState], ProbPrices);
|
782
832
|
p->counters[posState] = p->tableSize;
|
783
833
|
}
|
784
834
|
|
785
|
-
static void LenPriceEnc_UpdateTables(CLenPriceEnc *p, UInt32 numPosStates, UInt32 *ProbPrices)
|
835
|
+
static void LenPriceEnc_UpdateTables(CLenPriceEnc *p, UInt32 numPosStates, const UInt32 *ProbPrices)
|
786
836
|
{
|
787
837
|
UInt32 posState;
|
788
838
|
for (posState = 0; posState < numPosStates; posState++)
|
789
839
|
LenPriceEnc_UpdateTable(p, posState, ProbPrices);
|
790
840
|
}
|
791
841
|
|
792
|
-
static void LenEnc_Encode2(CLenPriceEnc *p, CRangeEnc *rc, UInt32 symbol, UInt32 posState, Bool updatePrice, UInt32 *ProbPrices)
|
842
|
+
static void LenEnc_Encode2(CLenPriceEnc *p, CRangeEnc *rc, UInt32 symbol, UInt32 posState, Bool updatePrice, const UInt32 *ProbPrices)
|
793
843
|
{
|
794
844
|
LenEnc_Encode(&p->p, rc, symbol, posState);
|
795
845
|
if (updatePrice)
|
@@ -803,9 +853,10 @@ static void LenEnc_Encode2(CLenPriceEnc *p, CRangeEnc *rc, UInt32 symbol, UInt32
|
|
803
853
|
static void MovePos(CLzmaEnc *p, UInt32 num)
|
804
854
|
{
|
805
855
|
#ifdef SHOW_STAT
|
806
|
-
|
807
|
-
printf("\n MovePos %
|
856
|
+
g_STAT_OFFSET += num;
|
857
|
+
printf("\n MovePos %u", num);
|
808
858
|
#endif
|
859
|
+
|
809
860
|
if (num != 0)
|
810
861
|
{
|
811
862
|
p->additionalOffset += num;
|
@@ -818,28 +869,32 @@ static UInt32 ReadMatchDistances(CLzmaEnc *p, UInt32 *numDistancePairsRes)
|
|
818
869
|
UInt32 lenRes = 0, numPairs;
|
819
870
|
p->numAvail = p->matchFinder.GetNumAvailableBytes(p->matchFinderObj);
|
820
871
|
numPairs = p->matchFinder.GetMatches(p->matchFinderObj, p->matches);
|
872
|
+
|
821
873
|
#ifdef SHOW_STAT
|
822
|
-
printf("\n i = %
|
823
|
-
|
874
|
+
printf("\n i = %u numPairs = %u ", g_STAT_OFFSET, numPairs / 2);
|
875
|
+
g_STAT_OFFSET++;
|
824
876
|
{
|
825
877
|
UInt32 i;
|
826
878
|
for (i = 0; i < numPairs; i += 2)
|
827
|
-
printf("%
|
879
|
+
printf("%2u %6u | ", p->matches[i], p->matches[i + 1]);
|
828
880
|
}
|
829
881
|
#endif
|
882
|
+
|
830
883
|
if (numPairs > 0)
|
831
884
|
{
|
832
885
|
lenRes = p->matches[numPairs - 2];
|
833
886
|
if (lenRes == p->numFastBytes)
|
834
887
|
{
|
835
|
-
const Byte *pby = p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - 1;
|
836
|
-
UInt32 distance = p->matches[numPairs - 1] + 1;
|
837
888
|
UInt32 numAvail = p->numAvail;
|
838
889
|
if (numAvail > LZMA_MATCH_LEN_MAX)
|
839
890
|
numAvail = LZMA_MATCH_LEN_MAX;
|
840
891
|
{
|
841
|
-
const Byte *
|
842
|
-
|
892
|
+
const Byte *pbyCur = p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - 1;
|
893
|
+
const Byte *pby = pbyCur + lenRes;
|
894
|
+
ptrdiff_t dif = (ptrdiff_t)-1 - p->matches[numPairs - 1];
|
895
|
+
const Byte *pbyLim = pbyCur + numAvail;
|
896
|
+
for (; pby != pbyLim && *pby == pby[dif]; pby++);
|
897
|
+
lenRes = (UInt32)(pby - pbyCur);
|
843
898
|
}
|
844
899
|
}
|
845
900
|
}
|
@@ -924,16 +979,21 @@ static UInt32 Backward(CLzmaEnc *p, UInt32 *backRes, UInt32 cur)
|
|
924
979
|
return p->optimumCurrentIndex;
|
925
980
|
}
|
926
981
|
|
927
|
-
#define LIT_PROBS(pos, prevByte) (p->litProbs + ((((pos) & p->lpMask) << p->lc) + ((prevByte) >> (8 - p->lc))) * 0x300)
|
982
|
+
#define LIT_PROBS(pos, prevByte) (p->litProbs + ((((pos) & p->lpMask) << p->lc) + ((prevByte) >> (8 - p->lc))) * (UInt32)0x300)
|
928
983
|
|
929
984
|
static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
930
985
|
{
|
931
|
-
UInt32
|
932
|
-
UInt32 matchPrice, repMatchPrice, normalMatchPrice;
|
986
|
+
UInt32 lenEnd, cur;
|
933
987
|
UInt32 reps[LZMA_NUM_REPS], repLens[LZMA_NUM_REPS];
|
934
988
|
UInt32 *matches;
|
989
|
+
|
990
|
+
{
|
991
|
+
|
992
|
+
UInt32 numAvail, mainLen, numPairs, repMaxIndex, i, posState, len;
|
993
|
+
UInt32 matchPrice, repMatchPrice, normalMatchPrice;
|
935
994
|
const Byte *data;
|
936
995
|
Byte curByte, matchByte;
|
996
|
+
|
937
997
|
if (p->optimumEndIndex != p->optimumCurrentIndex)
|
938
998
|
{
|
939
999
|
const COptimal *opt = &p->opt[p->optimumCurrentIndex];
|
@@ -968,7 +1028,7 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
968
1028
|
UInt32 lenTest;
|
969
1029
|
const Byte *data2;
|
970
1030
|
reps[i] = p->reps[i];
|
971
|
-
data2 = data -
|
1031
|
+
data2 = data - reps[i] - 1;
|
972
1032
|
if (data[0] != data2[0] || data[1] != data2[1])
|
973
1033
|
{
|
974
1034
|
repLens[i] = 0;
|
@@ -1112,17 +1172,20 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
1112
1172
|
cur = 0;
|
1113
1173
|
|
1114
1174
|
#ifdef SHOW_STAT2
|
1115
|
-
if (position >= 0)
|
1175
|
+
/* if (position >= 0) */
|
1116
1176
|
{
|
1117
1177
|
unsigned i;
|
1118
1178
|
printf("\n pos = %4X", position);
|
1119
1179
|
for (i = cur; i <= lenEnd; i++)
|
1120
|
-
printf("\nprice[%4X] = %
|
1180
|
+
printf("\nprice[%4X] = %u", position - cur + i, p->opt[i].price);
|
1121
1181
|
}
|
1122
1182
|
#endif
|
1123
1183
|
|
1184
|
+
}
|
1185
|
+
|
1124
1186
|
for (;;)
|
1125
1187
|
{
|
1188
|
+
UInt32 numAvail;
|
1126
1189
|
UInt32 numAvailFull, newLen, numPairs, posPrev, state, posState, startLen;
|
1127
1190
|
UInt32 curPrice, curAnd1Price, matchPrice, repMatchPrice;
|
1128
1191
|
Bool nextIsChar;
|
@@ -1269,7 +1332,7 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
1269
1332
|
/* try Literal + rep0 */
|
1270
1333
|
UInt32 temp;
|
1271
1334
|
UInt32 lenTest2;
|
1272
|
-
const Byte *data2 = data -
|
1335
|
+
const Byte *data2 = data - reps[0] - 1;
|
1273
1336
|
UInt32 limit = p->numFastBytes + 1;
|
1274
1337
|
if (limit > numAvailFull)
|
1275
1338
|
limit = numAvailFull;
|
@@ -1312,7 +1375,7 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
1312
1375
|
UInt32 lenTest;
|
1313
1376
|
UInt32 lenTestTemp;
|
1314
1377
|
UInt32 price;
|
1315
|
-
const Byte *data2 = data -
|
1378
|
+
const Byte *data2 = data - reps[repIndex] - 1;
|
1316
1379
|
if (data[0] != data2[0] || data[1] != data2[1])
|
1317
1380
|
continue;
|
1318
1381
|
for (lenTest = 2; lenTest < numAvail && data[lenTest] == data2[lenTest]; lenTest++);
|
@@ -1342,13 +1405,13 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
1342
1405
|
{
|
1343
1406
|
UInt32 lenTest2 = lenTest + 1;
|
1344
1407
|
UInt32 limit = lenTest2 + p->numFastBytes;
|
1345
|
-
UInt32 nextRepMatchPrice;
|
1346
1408
|
if (limit > numAvailFull)
|
1347
1409
|
limit = numAvailFull;
|
1348
1410
|
for (; lenTest2 < limit && data[lenTest2] == data2[lenTest2]; lenTest2++);
|
1349
1411
|
lenTest2 -= lenTest + 1;
|
1350
1412
|
if (lenTest2 >= 2)
|
1351
1413
|
{
|
1414
|
+
UInt32 nextRepMatchPrice;
|
1352
1415
|
UInt32 state2 = kRepNextStates[state];
|
1353
1416
|
UInt32 posStateNext = (position + lenTest) & p->pbMask;
|
1354
1417
|
UInt32 curAndLenCharPrice =
|
@@ -1410,6 +1473,7 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
1410
1473
|
for (lenTest = /*2*/ startLen; ; lenTest++)
|
1411
1474
|
{
|
1412
1475
|
UInt32 curAndLenPrice = normalMatchPrice + p->lenEnc.prices[posState][lenTest - LZMA_MATCH_LEN_MIN];
|
1476
|
+
{
|
1413
1477
|
UInt32 lenToPosState = GetLenToPosState(lenTest);
|
1414
1478
|
COptimal *opt;
|
1415
1479
|
if (curBack < kNumFullDistances)
|
@@ -1425,20 +1489,21 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
1425
1489
|
opt->backPrev = curBack + LZMA_NUM_REPS;
|
1426
1490
|
opt->prev1IsChar = False;
|
1427
1491
|
}
|
1492
|
+
}
|
1428
1493
|
|
1429
1494
|
if (/*_maxMode && */lenTest == matches[offs])
|
1430
1495
|
{
|
1431
1496
|
/* Try Match + Literal + Rep0 */
|
1432
|
-
const Byte *data2 = data -
|
1497
|
+
const Byte *data2 = data - curBack - 1;
|
1433
1498
|
UInt32 lenTest2 = lenTest + 1;
|
1434
1499
|
UInt32 limit = lenTest2 + p->numFastBytes;
|
1435
|
-
UInt32 nextRepMatchPrice;
|
1436
1500
|
if (limit > numAvailFull)
|
1437
1501
|
limit = numAvailFull;
|
1438
1502
|
for (; lenTest2 < limit && data[lenTest2] == data2[lenTest2]; lenTest2++);
|
1439
1503
|
lenTest2 -= lenTest + 1;
|
1440
1504
|
if (lenTest2 >= 2)
|
1441
1505
|
{
|
1506
|
+
UInt32 nextRepMatchPrice;
|
1442
1507
|
UInt32 state2 = kMatchNextStates[state];
|
1443
1508
|
UInt32 posStateNext = (position + lenTest) & p->pbMask;
|
1444
1509
|
UInt32 curAndLenCharPrice = curAndLenPrice +
|
@@ -1454,15 +1519,15 @@ static UInt32 GetOptimum(CLzmaEnc *p, UInt32 position, UInt32 *backRes)
|
|
1454
1519
|
/* for (; lenTest2 >= 2; lenTest2--) */
|
1455
1520
|
{
|
1456
1521
|
UInt32 offset = cur + lenTest + 1 + lenTest2;
|
1457
|
-
UInt32
|
1522
|
+
UInt32 curAndLenPrice2;
|
1458
1523
|
COptimal *opt;
|
1459
1524
|
while (lenEnd < offset)
|
1460
1525
|
p->opt[++lenEnd].price = kInfinityPrice;
|
1461
|
-
|
1526
|
+
curAndLenPrice2 = nextRepMatchPrice + GetRepPrice(p, 0, lenTest2, state2, posStateNext);
|
1462
1527
|
opt = &p->opt[offset];
|
1463
|
-
if (
|
1528
|
+
if (curAndLenPrice2 < opt->price)
|
1464
1529
|
{
|
1465
|
-
opt->price =
|
1530
|
+
opt->price = curAndLenPrice2;
|
1466
1531
|
opt->posPrev = cur + lenTest + 1;
|
1467
1532
|
opt->backPrev = 0;
|
1468
1533
|
opt->prev1IsChar = True;
|
@@ -1512,7 +1577,7 @@ static UInt32 GetOptimumFast(CLzmaEnc *p, UInt32 *backRes)
|
|
1512
1577
|
for (i = 0; i < LZMA_NUM_REPS; i++)
|
1513
1578
|
{
|
1514
1579
|
UInt32 len;
|
1515
|
-
const Byte *data2 = data -
|
1580
|
+
const Byte *data2 = data - p->reps[i] - 1;
|
1516
1581
|
if (data[0] != data2[0] || data[1] != data2[1])
|
1517
1582
|
continue;
|
1518
1583
|
for (len = 2; len < numAvail && data[len] == data2[len]; len++);
|
@@ -1581,7 +1646,7 @@ static UInt32 GetOptimumFast(CLzmaEnc *p, UInt32 *backRes)
|
|
1581
1646
|
for (i = 0; i < LZMA_NUM_REPS; i++)
|
1582
1647
|
{
|
1583
1648
|
UInt32 len, limit;
|
1584
|
-
const Byte *data2 = data -
|
1649
|
+
const Byte *data2 = data - p->reps[i] - 1;
|
1585
1650
|
if (data[0] != data2[0] || data[1] != data2[1])
|
1586
1651
|
continue;
|
1587
1652
|
limit = mainLen - 1;
|
@@ -1663,7 +1728,6 @@ static void FillDistancesPrices(CLzmaEnc *p)
|
|
1663
1728
|
|
1664
1729
|
{
|
1665
1730
|
UInt32 *distancesPrices = p->distancesPrices[lenToPosState];
|
1666
|
-
UInt32 i;
|
1667
1731
|
for (i = 0; i < kStartPosModelIndex; i++)
|
1668
1732
|
distancesPrices[i] = posSlotPrices[i];
|
1669
1733
|
for (; i < kNumFullDistances; i++)
|
@@ -1677,6 +1741,7 @@ void LzmaEnc_Construct(CLzmaEnc *p)
|
|
1677
1741
|
{
|
1678
1742
|
RangeEnc_Construct(&p->rc);
|
1679
1743
|
MatchFinder_Construct(&p->matchFinderBase);
|
1744
|
+
|
1680
1745
|
#ifndef _7ZIP_ST
|
1681
1746
|
MatchFinderMt_Construct(&p->matchFinderMt);
|
1682
1747
|
p->matchFinderMt.MatchFinder = &p->matchFinderBase;
|
@@ -1693,15 +1758,15 @@ void LzmaEnc_Construct(CLzmaEnc *p)
|
|
1693
1758
|
#endif
|
1694
1759
|
|
1695
1760
|
LzmaEnc_InitPriceTables(p->ProbPrices);
|
1696
|
-
p->litProbs =
|
1697
|
-
p->saveState.litProbs =
|
1761
|
+
p->litProbs = NULL;
|
1762
|
+
p->saveState.litProbs = NULL;
|
1698
1763
|
}
|
1699
1764
|
|
1700
1765
|
CLzmaEncHandle LzmaEnc_Create(ISzAlloc *alloc)
|
1701
1766
|
{
|
1702
1767
|
void *p;
|
1703
1768
|
p = alloc->Alloc(alloc, sizeof(CLzmaEnc));
|
1704
|
-
if (p
|
1769
|
+
if (p)
|
1705
1770
|
LzmaEnc_Construct((CLzmaEnc *)p);
|
1706
1771
|
return p;
|
1707
1772
|
}
|
@@ -1710,8 +1775,8 @@ void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
|
|
1710
1775
|
{
|
1711
1776
|
alloc->Free(alloc, p->litProbs);
|
1712
1777
|
alloc->Free(alloc, p->saveState.litProbs);
|
1713
|
-
p->litProbs =
|
1714
|
-
p->saveState.litProbs =
|
1778
|
+
p->litProbs = NULL;
|
1779
|
+
p->saveState.litProbs = NULL;
|
1715
1780
|
}
|
1716
1781
|
|
1717
1782
|
void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
|
@@ -1719,6 +1784,7 @@ void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
|
|
1719
1784
|
#ifndef _7ZIP_ST
|
1720
1785
|
MatchFinderMt_Destruct(&p->matchFinderMt, allocBig);
|
1721
1786
|
#endif
|
1787
|
+
|
1722
1788
|
MatchFinder_Free(&p->matchFinderBase, allocBig);
|
1723
1789
|
LzmaEnc_FreeLits(p, alloc);
|
1724
1790
|
RangeEnc_Free(&p->rc, alloc);
|
@@ -1755,7 +1821,7 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize
|
|
1755
1821
|
ReadMatchDistances(p, &numPairs);
|
1756
1822
|
RangeEnc_EncodeBit(&p->rc, &p->isMatch[p->state][0], 0);
|
1757
1823
|
p->state = kLiteralNextStates[p->state];
|
1758
|
-
curByte = p->matchFinder.
|
1824
|
+
curByte = *(p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - p->additionalOffset);
|
1759
1825
|
LitEnc_Encode(&p->rc, p->litProbs, curByte);
|
1760
1826
|
p->additionalOffset--;
|
1761
1827
|
nowPos32++;
|
@@ -1772,7 +1838,7 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize
|
|
1772
1838
|
len = GetOptimum(p, nowPos32, &pos);
|
1773
1839
|
|
1774
1840
|
#ifdef SHOW_STAT2
|
1775
|
-
printf("\n pos = %4X, len = %
|
1841
|
+
printf("\n pos = %4X, len = %u pos = %u", nowPos32, len, pos);
|
1776
1842
|
#endif
|
1777
1843
|
|
1778
1844
|
posState = nowPos32 & p->pbMask;
|
@@ -1881,7 +1947,7 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize
|
|
1881
1947
|
RangeEnc_GetProcessed(&p->rc) + kNumOpts * 2 >= maxPackSize)
|
1882
1948
|
break;
|
1883
1949
|
}
|
1884
|
-
else if (processed >= (1 <<
|
1950
|
+
else if (processed >= (1 << 17))
|
1885
1951
|
{
|
1886
1952
|
p->nowPos64 += nowPos32 - startPos32;
|
1887
1953
|
return CheckErrors(p);
|
@@ -1897,22 +1963,21 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize
|
|
1897
1963
|
static SRes LzmaEnc_Alloc(CLzmaEnc *p, UInt32 keepWindowSize, ISzAlloc *alloc, ISzAlloc *allocBig)
|
1898
1964
|
{
|
1899
1965
|
UInt32 beforeSize = kNumOpts;
|
1900
|
-
Bool btMode;
|
1901
1966
|
if (!RangeEnc_Alloc(&p->rc, alloc))
|
1902
1967
|
return SZ_ERROR_MEM;
|
1903
|
-
|
1968
|
+
|
1904
1969
|
#ifndef _7ZIP_ST
|
1905
|
-
p->mtMode = (p->multiThread && !p->fastMode && btMode);
|
1970
|
+
p->mtMode = (p->multiThread && !p->fastMode && (p->matchFinderBase.btMode != 0));
|
1906
1971
|
#endif
|
1907
1972
|
|
1908
1973
|
{
|
1909
1974
|
unsigned lclp = p->lc + p->lp;
|
1910
|
-
if (p->litProbs
|
1975
|
+
if (!p->litProbs || !p->saveState.litProbs || p->lclp != lclp)
|
1911
1976
|
{
|
1912
1977
|
LzmaEnc_FreeLits(p, alloc);
|
1913
|
-
p->litProbs = (CLzmaProb *)alloc->Alloc(alloc, (0x300 << lclp) * sizeof(CLzmaProb));
|
1914
|
-
p->saveState.litProbs = (CLzmaProb *)alloc->Alloc(alloc, (0x300 << lclp) * sizeof(CLzmaProb));
|
1915
|
-
if (p->litProbs
|
1978
|
+
p->litProbs = (CLzmaProb *)alloc->Alloc(alloc, ((UInt32)0x300 << lclp) * sizeof(CLzmaProb));
|
1979
|
+
p->saveState.litProbs = (CLzmaProb *)alloc->Alloc(alloc, ((UInt32)0x300 << lclp) * sizeof(CLzmaProb));
|
1980
|
+
if (!p->litProbs || !p->saveState.litProbs)
|
1916
1981
|
{
|
1917
1982
|
LzmaEnc_FreeLits(p, alloc);
|
1918
1983
|
return SZ_ERROR_MEM;
|
@@ -1921,7 +1986,7 @@ static SRes LzmaEnc_Alloc(CLzmaEnc *p, UInt32 keepWindowSize, ISzAlloc *alloc, I
|
|
1921
1986
|
}
|
1922
1987
|
}
|
1923
1988
|
|
1924
|
-
p->matchFinderBase.bigHash = (p->dictSize > kBigHashDicLimit);
|
1989
|
+
p->matchFinderBase.bigHash = (Byte)(p->dictSize > kBigHashDicLimit ? 1 : 0);
|
1925
1990
|
|
1926
1991
|
if (beforeSize + p->dictSize < keepWindowSize)
|
1927
1992
|
beforeSize = keepWindowSize - p->dictSize;
|
@@ -1941,6 +2006,7 @@ static SRes LzmaEnc_Alloc(CLzmaEnc *p, UInt32 keepWindowSize, ISzAlloc *alloc, I
|
|
1941
2006
|
p->matchFinderObj = &p->matchFinderBase;
|
1942
2007
|
MatchFinder_CreateVTable(&p->matchFinderBase, &p->matchFinder);
|
1943
2008
|
}
|
2009
|
+
|
1944
2010
|
return SZ_OK;
|
1945
2011
|
}
|
1946
2012
|
|
@@ -1969,9 +2035,10 @@ void LzmaEnc_Init(CLzmaEnc *p)
|
|
1969
2035
|
}
|
1970
2036
|
|
1971
2037
|
{
|
1972
|
-
UInt32 num = 0x300 << (p->lp + p->lc);
|
2038
|
+
UInt32 num = (UInt32)0x300 << (p->lp + p->lc);
|
2039
|
+
CLzmaProb *probs = p->litProbs;
|
1973
2040
|
for (i = 0; i < num; i++)
|
1974
|
-
|
2041
|
+
probs[i] = kProbInitValue;
|
1975
2042
|
}
|
1976
2043
|
|
1977
2044
|
{
|
@@ -2078,10 +2145,11 @@ void LzmaEnc_Finish(CLzmaEncHandle pp)
|
|
2078
2145
|
if (p->mtMode)
|
2079
2146
|
MatchFinderMt_ReleaseStream(&p->matchFinderMt);
|
2080
2147
|
#else
|
2081
|
-
pp
|
2148
|
+
UNUSED_VAR(pp);
|
2082
2149
|
#endif
|
2083
2150
|
}
|
2084
2151
|
|
2152
|
+
|
2085
2153
|
typedef struct
|
2086
2154
|
{
|
2087
2155
|
ISeqOutStream funcTable;
|
@@ -2111,12 +2179,14 @@ UInt32 LzmaEnc_GetNumAvailableBytes(CLzmaEncHandle pp)
|
|
2111
2179
|
return p->matchFinder.GetNumAvailableBytes(p->matchFinderObj);
|
2112
2180
|
}
|
2113
2181
|
|
2182
|
+
|
2114
2183
|
const Byte *LzmaEnc_GetCurBuf(CLzmaEncHandle pp)
|
2115
2184
|
{
|
2116
2185
|
const CLzmaEnc *p = (CLzmaEnc *)pp;
|
2117
2186
|
return p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - p->additionalOffset;
|
2118
2187
|
}
|
2119
2188
|
|
2189
|
+
|
2120
2190
|
SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
|
2121
2191
|
Byte *dest, size_t *destLen, UInt32 desiredPackSize, UInt32 *unpackSize)
|
2122
2192
|
{
|
@@ -2151,23 +2221,23 @@ SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
|
|
2151
2221
|
return res;
|
2152
2222
|
}
|
2153
2223
|
|
2224
|
+
|
2154
2225
|
static SRes LzmaEnc_Encode2(CLzmaEnc *p, ICompressProgress *progress)
|
2155
2226
|
{
|
2156
2227
|
SRes res = SZ_OK;
|
2157
2228
|
|
2158
2229
|
#ifndef _7ZIP_ST
|
2159
2230
|
Byte allocaDummy[0x300];
|
2160
|
-
|
2161
|
-
|
2162
|
-
allocaDummy[i] = (Byte)i;
|
2231
|
+
allocaDummy[0] = 0;
|
2232
|
+
allocaDummy[1] = allocaDummy[0];
|
2163
2233
|
#endif
|
2164
2234
|
|
2165
2235
|
for (;;)
|
2166
2236
|
{
|
2167
2237
|
res = LzmaEnc_CodeOneBlock(p, False, 0, 0);
|
2168
|
-
if (res != SZ_OK || p->finished
|
2238
|
+
if (res != SZ_OK || p->finished)
|
2169
2239
|
break;
|
2170
|
-
if (progress
|
2240
|
+
if (progress)
|
2171
2241
|
{
|
2172
2242
|
res = progress->Progress(progress, p->nowPos64, RangeEnc_GetProcessed(&p->rc));
|
2173
2243
|
if (res != SZ_OK)
|
@@ -2177,10 +2247,19 @@ static SRes LzmaEnc_Encode2(CLzmaEnc *p, ICompressProgress *progress)
|
|
2177
2247
|
}
|
2178
2248
|
}
|
2179
2249
|
}
|
2250
|
+
|
2180
2251
|
LzmaEnc_Finish(p);
|
2252
|
+
|
2253
|
+
/*
|
2254
|
+
if (res == S_OK && !Inline_MatchFinder_IsFinishedOK(&p->matchFinderBase))
|
2255
|
+
res = SZ_ERROR_FAIL;
|
2256
|
+
}
|
2257
|
+
*/
|
2258
|
+
|
2181
2259
|
return res;
|
2182
2260
|
}
|
2183
2261
|
|
2262
|
+
|
2184
2263
|
SRes LzmaEnc_Encode(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress,
|
2185
2264
|
ISzAlloc *alloc, ISzAlloc *allocBig)
|
2186
2265
|
{
|
@@ -2188,28 +2267,27 @@ SRes LzmaEnc_Encode(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *i
|
|
2188
2267
|
return LzmaEnc_Encode2((CLzmaEnc *)pp, progress);
|
2189
2268
|
}
|
2190
2269
|
|
2270
|
+
|
2191
2271
|
SRes LzmaEnc_WriteProperties(CLzmaEncHandle pp, Byte *props, SizeT *size)
|
2192
2272
|
{
|
2193
2273
|
CLzmaEnc *p = (CLzmaEnc *)pp;
|
2194
|
-
|
2274
|
+
unsigned i;
|
2195
2275
|
UInt32 dictSize = p->dictSize;
|
2196
2276
|
if (*size < LZMA_PROPS_SIZE)
|
2197
2277
|
return SZ_ERROR_PARAM;
|
2198
2278
|
*size = LZMA_PROPS_SIZE;
|
2199
2279
|
props[0] = (Byte)((p->pb * 5 + p->lp) * 9 + p->lc);
|
2200
2280
|
|
2201
|
-
|
2281
|
+
if (dictSize >= ((UInt32)1 << 22))
|
2202
2282
|
{
|
2203
|
-
|
2204
|
-
|
2205
|
-
dictSize = (
|
2206
|
-
|
2207
|
-
|
2208
|
-
|
2209
|
-
{
|
2210
|
-
|
2211
|
-
break;
|
2212
|
-
}
|
2283
|
+
UInt32 kDictMask = ((UInt32)1 << 20) - 1;
|
2284
|
+
if (dictSize < (UInt32)0xFFFFFFFF - kDictMask)
|
2285
|
+
dictSize = (dictSize + kDictMask) & ~kDictMask;
|
2286
|
+
}
|
2287
|
+
else for (i = 11; i <= 30; i++)
|
2288
|
+
{
|
2289
|
+
if (dictSize <= ((UInt32)2 << i)) { dictSize = (2 << i); break; }
|
2290
|
+
if (dictSize <= ((UInt32)3 << i)) { dictSize = (3 << i); break; }
|
2213
2291
|
}
|
2214
2292
|
|
2215
2293
|
for (i = 0; i < 4; i++)
|
@@ -2217,6 +2295,7 @@ SRes LzmaEnc_WriteProperties(CLzmaEncHandle pp, Byte *props, SizeT *size)
|
|
2217
2295
|
return SZ_OK;
|
2218
2296
|
}
|
2219
2297
|
|
2298
|
+
|
2220
2299
|
SRes LzmaEnc_MemEncode(CLzmaEncHandle pp, Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
|
2221
2300
|
int writeEndMark, ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig)
|
2222
2301
|
{
|
@@ -2225,19 +2304,22 @@ SRes LzmaEnc_MemEncode(CLzmaEncHandle pp, Byte *dest, SizeT *destLen, const Byte
|
|
2225
2304
|
|
2226
2305
|
CSeqOutStreamBuf outStream;
|
2227
2306
|
|
2228
|
-
LzmaEnc_SetInputBuf(p, src, srcLen);
|
2229
|
-
|
2230
2307
|
outStream.funcTable.Write = MyWrite;
|
2231
2308
|
outStream.data = dest;
|
2232
2309
|
outStream.rem = *destLen;
|
2233
2310
|
outStream.overflow = False;
|
2234
2311
|
|
2235
2312
|
p->writeEndMark = writeEndMark;
|
2236
|
-
|
2237
2313
|
p->rc.outStream = &outStream.funcTable;
|
2314
|
+
|
2238
2315
|
res = LzmaEnc_MemPrepare(pp, src, srcLen, 0, alloc, allocBig);
|
2316
|
+
|
2239
2317
|
if (res == SZ_OK)
|
2318
|
+
{
|
2240
2319
|
res = LzmaEnc_Encode2(p, progress);
|
2320
|
+
if (res == SZ_OK && p->nowPos64 != srcLen)
|
2321
|
+
res = SZ_ERROR_FAIL;
|
2322
|
+
}
|
2241
2323
|
|
2242
2324
|
*destLen -= outStream.rem;
|
2243
2325
|
if (outStream.overflow)
|
@@ -2245,13 +2327,14 @@ SRes LzmaEnc_MemEncode(CLzmaEncHandle pp, Byte *dest, SizeT *destLen, const Byte
|
|
2245
2327
|
return res;
|
2246
2328
|
}
|
2247
2329
|
|
2330
|
+
|
2248
2331
|
SRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
|
2249
2332
|
const CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark,
|
2250
2333
|
ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig)
|
2251
2334
|
{
|
2252
2335
|
CLzmaEnc *p = (CLzmaEnc *)LzmaEnc_Create(alloc);
|
2253
2336
|
SRes res;
|
2254
|
-
if (p
|
2337
|
+
if (!p)
|
2255
2338
|
return SZ_ERROR_MEM;
|
2256
2339
|
|
2257
2340
|
res = LzmaEnc_SetProps(p, props);
|