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
@@ -2,16 +2,39 @@
|
|
2
2
|
|
3
3
|
#include "StdAfx.h"
|
4
4
|
|
5
|
-
#include
|
6
|
-
|
5
|
+
// #include <stdio.h>
|
6
|
+
|
7
|
+
#include "../../../../C/CpuArch.h"
|
8
|
+
|
9
|
+
#include "../../../Common/IntToString.h"
|
10
|
+
#include "../../../Common/UTFConvert.h"
|
7
11
|
|
8
12
|
#include "../../Common/LimitedStreams.h"
|
9
13
|
|
10
14
|
#include "ChmIn.h"
|
11
15
|
|
16
|
+
#define Get16(p) GetUi16(p)
|
17
|
+
#define Get32(p) GetUi32(p)
|
18
|
+
#define Get64(p) GetUi64(p)
|
19
|
+
|
12
20
|
namespace NArchive {
|
13
21
|
namespace NChm {
|
14
22
|
|
23
|
+
static const UInt32 kSignature_ITSP = 0x50535449;
|
24
|
+
static const UInt32 kSignature_PMGL = 0x4C474D50;
|
25
|
+
static const UInt32 kSignature_LZXC = 0x43585A4C;
|
26
|
+
|
27
|
+
static const UInt32 kSignature_IFCM = 0x4D434649;
|
28
|
+
static const UInt32 kSignature_AOLL = 0x4C4C4F41;
|
29
|
+
static const UInt32 kSignature_CAOL = 0x4C4F4143;
|
30
|
+
|
31
|
+
static const UInt32 kSignature_ITSF = 0x46535449;
|
32
|
+
static const UInt32 kSignature_ITOL = 0x4C4F5449;
|
33
|
+
static const UInt32 kSignature_ITLS = 0x534C5449;
|
34
|
+
|
35
|
+
struct CEnexpectedEndException {};
|
36
|
+
struct CHeaderErrorException {};
|
37
|
+
|
15
38
|
// define CHM_LOW, if you want to see low level items
|
16
39
|
// #define CHM_LOW
|
17
40
|
|
@@ -31,9 +54,9 @@ static bool AreGuidsEqual(REFGUID g1, REFGUID g2)
|
|
31
54
|
return true;
|
32
55
|
}
|
33
56
|
|
34
|
-
static char GetHex(
|
57
|
+
static char GetHex(unsigned v)
|
35
58
|
{
|
36
|
-
return (char)((
|
59
|
+
return (char)((v < 10) ? ('0' + v) : ('A' + (v - 10)));
|
37
60
|
}
|
38
61
|
|
39
62
|
static void PrintByte(Byte b, AString &s)
|
@@ -90,10 +113,10 @@ UString CMethodInfo::GetName() const
|
|
90
113
|
UString s;
|
91
114
|
if (IsLzx())
|
92
115
|
{
|
93
|
-
s
|
94
|
-
|
116
|
+
s.SetFromAscii("LZX:");
|
117
|
+
char temp[16];
|
95
118
|
ConvertUInt32ToString(LzxInfo.GetNumDictBits(), temp);
|
96
|
-
s
|
119
|
+
s.AddAscii(temp);
|
97
120
|
}
|
98
121
|
else
|
99
122
|
{
|
@@ -103,10 +126,10 @@ UString CMethodInfo::GetName() const
|
|
103
126
|
else
|
104
127
|
{
|
105
128
|
s2 = GetGuidString();
|
106
|
-
if (ControlData.
|
129
|
+
if (ControlData.Size() > 0)
|
107
130
|
{
|
108
131
|
s2 += ':';
|
109
|
-
for (size_t i = 0; i < ControlData.
|
132
|
+
for (size_t i = 0; i < ControlData.Size(); i++)
|
110
133
|
PrintByte(ControlData[i], s2);
|
111
134
|
}
|
112
135
|
}
|
@@ -130,12 +153,12 @@ UString CSectionInfo::GetMethodName() const
|
|
130
153
|
UString temp;
|
131
154
|
if (ConvertUTF8ToUnicode(Name, temp))
|
132
155
|
s += temp;
|
133
|
-
s
|
156
|
+
s.AddAscii(": ");
|
134
157
|
}
|
135
|
-
|
158
|
+
FOR_VECTOR (i, Methods)
|
136
159
|
{
|
137
160
|
if (i != 0)
|
138
|
-
s
|
161
|
+
s.Add_Space();
|
139
162
|
s += Methods[i].GetName();
|
140
163
|
}
|
141
164
|
return s;
|
@@ -145,50 +168,48 @@ Byte CInArchive::ReadByte()
|
|
145
168
|
{
|
146
169
|
Byte b;
|
147
170
|
if (!_inBuffer.ReadByte(b))
|
148
|
-
throw
|
171
|
+
throw CEnexpectedEndException();
|
149
172
|
return b;
|
150
173
|
}
|
151
174
|
|
152
175
|
void CInArchive::Skip(size_t size)
|
153
176
|
{
|
154
|
-
|
155
|
-
|
177
|
+
if (_inBuffer.Skip(size) != size)
|
178
|
+
throw CEnexpectedEndException();
|
156
179
|
}
|
157
180
|
|
158
181
|
void CInArchive::ReadBytes(Byte *data, UInt32 size)
|
159
182
|
{
|
160
|
-
|
161
|
-
|
183
|
+
if (_inBuffer.ReadBytes(data, size) != size)
|
184
|
+
throw CEnexpectedEndException();
|
162
185
|
}
|
163
186
|
|
164
187
|
UInt16 CInArchive::ReadUInt16()
|
165
188
|
{
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
return
|
189
|
+
Byte b0, b1;
|
190
|
+
if (!_inBuffer.ReadByte(b0)) throw CEnexpectedEndException();
|
191
|
+
if (!_inBuffer.ReadByte(b1)) throw CEnexpectedEndException();
|
192
|
+
return (UInt16)(((UInt16)b1 << 8) | b0);
|
170
193
|
}
|
171
194
|
|
172
195
|
UInt32 CInArchive::ReadUInt32()
|
173
196
|
{
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
return value;
|
197
|
+
Byte p[4];
|
198
|
+
ReadBytes(p, 4);
|
199
|
+
return Get32(p);
|
178
200
|
}
|
179
201
|
|
180
202
|
UInt64 CInArchive::ReadUInt64()
|
181
203
|
{
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
return value;
|
204
|
+
Byte p[8];
|
205
|
+
ReadBytes(p, 8);
|
206
|
+
return Get64(p);
|
186
207
|
}
|
187
208
|
|
188
209
|
UInt64 CInArchive::ReadEncInt()
|
189
210
|
{
|
190
|
-
UInt64 val = 0
|
191
|
-
for (int i = 0; i <
|
211
|
+
UInt64 val = 0;
|
212
|
+
for (int i = 0; i < 9; i++)
|
192
213
|
{
|
193
214
|
Byte b = ReadByte();
|
194
215
|
val |= (b & 0x7F);
|
@@ -196,7 +217,7 @@ UInt64 CInArchive::ReadEncInt()
|
|
196
217
|
return val;
|
197
218
|
val <<= 7;
|
198
219
|
}
|
199
|
-
throw
|
220
|
+
throw CHeaderErrorException();
|
200
221
|
}
|
201
222
|
|
202
223
|
void CInArchive::ReadGUID(GUID &g)
|
@@ -207,25 +228,20 @@ void CInArchive::ReadGUID(GUID &g)
|
|
207
228
|
ReadBytes(g.Data4, 8);
|
208
229
|
}
|
209
230
|
|
210
|
-
void CInArchive::ReadString(
|
231
|
+
void CInArchive::ReadString(unsigned size, AString &s)
|
211
232
|
{
|
212
233
|
s.Empty();
|
213
|
-
|
234
|
+
if (size != 0)
|
214
235
|
{
|
215
|
-
|
216
|
-
|
217
|
-
{
|
218
|
-
Skip(size);
|
219
|
-
return;
|
220
|
-
}
|
221
|
-
s += c;
|
236
|
+
ReadBytes((Byte *)s.GetBuf(size), size);
|
237
|
+
s.ReleaseBuf_CalcLen(size);
|
222
238
|
}
|
223
239
|
}
|
224
240
|
|
225
|
-
void CInArchive::ReadUString(
|
241
|
+
void CInArchive::ReadUString(unsigned size, UString &s)
|
226
242
|
{
|
227
243
|
s.Empty();
|
228
|
-
while(size-- != 0)
|
244
|
+
while (size-- != 0)
|
229
245
|
{
|
230
246
|
wchar_t c = ReadUInt16();
|
231
247
|
if (c == 0)
|
@@ -244,6 +260,7 @@ HRESULT CInArchive::ReadChunk(IInStream *inStream, UInt64 pos, UInt64 size)
|
|
244
260
|
CMyComPtr<ISequentialInStream> limitedStream(streamSpec);
|
245
261
|
streamSpec->SetStream(inStream);
|
246
262
|
streamSpec->Init(size);
|
263
|
+
m_InStreamRef = limitedStream;
|
247
264
|
_inBuffer.SetStream(limitedStream);
|
248
265
|
_inBuffer.Init();
|
249
266
|
return S_OK;
|
@@ -252,10 +269,10 @@ HRESULT CInArchive::ReadChunk(IInStream *inStream, UInt64 pos, UInt64 size)
|
|
252
269
|
HRESULT CInArchive::ReadDirEntry(CDatabase &database)
|
253
270
|
{
|
254
271
|
CItem item;
|
255
|
-
UInt64
|
256
|
-
if (
|
272
|
+
UInt64 nameLen = ReadEncInt();
|
273
|
+
if (nameLen == 0 || nameLen > (1 << 13))
|
257
274
|
return S_FALSE;
|
258
|
-
ReadString((
|
275
|
+
ReadString((unsigned)nameLen, item.Name);
|
259
276
|
item.Section = ReadEncInt();
|
260
277
|
item.Offset = ReadEncInt();
|
261
278
|
item.Size = ReadEncInt();
|
@@ -268,9 +285,14 @@ HRESULT CInArchive::OpenChm(IInStream *inStream, CDatabase &database)
|
|
268
285
|
UInt32 headerSize = ReadUInt32();
|
269
286
|
if (headerSize != 0x60)
|
270
287
|
return S_FALSE;
|
288
|
+
database.PhySize = headerSize;
|
289
|
+
|
271
290
|
UInt32 unknown1 = ReadUInt32();
|
272
291
|
if (unknown1 != 0 && unknown1 != 1) // it's 0 in one .sll file
|
273
292
|
return S_FALSE;
|
293
|
+
|
294
|
+
IsArc = true;
|
295
|
+
|
274
296
|
/* UInt32 timeStamp = */ ReadUInt32();
|
275
297
|
// Considered as a big-endian DWORD, it appears to contain seconds (MSB) and
|
276
298
|
// fractional seconds (second byte).
|
@@ -280,37 +302,39 @@ HRESULT CInArchive::OpenChm(IInStream *inStream, CDatabase &database)
|
|
280
302
|
GUID g;
|
281
303
|
ReadGUID(g); // {7C01FD10-7BAA-11D0-9E0C-00A0-C922-E6EC}
|
282
304
|
ReadGUID(g); // {7C01FD11-7BAA-11D0-9E0C-00A0-C922-E6EC}
|
283
|
-
const
|
305
|
+
const unsigned kNumSections = 2;
|
284
306
|
UInt64 sectionOffsets[kNumSections];
|
285
307
|
UInt64 sectionSizes[kNumSections];
|
286
|
-
|
308
|
+
unsigned i;
|
287
309
|
for (i = 0; i < kNumSections; i++)
|
288
310
|
{
|
289
311
|
sectionOffsets[i] = ReadUInt64();
|
290
312
|
sectionSizes[i] = ReadUInt64();
|
313
|
+
UInt64 end = sectionOffsets[i] + sectionSizes[i];
|
314
|
+
database.UpdatePhySize(end);
|
291
315
|
}
|
292
316
|
// if (chmVersion == 3)
|
293
317
|
database.ContentOffset = ReadUInt64();
|
294
318
|
/*
|
295
319
|
else
|
296
|
-
database.ContentOffset =
|
320
|
+
database.ContentOffset = database.StartPosition + 0x58
|
297
321
|
*/
|
298
322
|
|
299
|
-
/*
|
300
323
|
// Section 0
|
301
324
|
ReadChunk(inStream, sectionOffsets[0], sectionSizes[0]);
|
302
|
-
if (sectionSizes[0]
|
325
|
+
if (sectionSizes[0] < 0x18)
|
326
|
+
return S_FALSE;
|
327
|
+
if (ReadUInt32() != 0x01FE)
|
303
328
|
return S_FALSE;
|
304
|
-
ReadUInt32(); // unknown: 01FE
|
305
329
|
ReadUInt32(); // unknown: 0
|
306
330
|
UInt64 fileSize = ReadUInt64();
|
331
|
+
database.UpdatePhySize(fileSize);
|
307
332
|
ReadUInt32(); // unknown: 0
|
308
333
|
ReadUInt32(); // unknown: 0
|
309
|
-
*/
|
310
334
|
|
311
335
|
// Section 1: The Directory Listing
|
312
336
|
ReadChunk(inStream, sectionOffsets[1], sectionSizes[1]);
|
313
|
-
if (ReadUInt32() !=
|
337
|
+
if (ReadUInt32() != kSignature_ITSP)
|
314
338
|
return S_FALSE;
|
315
339
|
if (ReadUInt32() != 1) // version
|
316
340
|
return S_FALSE;
|
@@ -340,13 +364,13 @@ HRESULT CInArchive::OpenChm(IInStream *inStream, CDatabase &database)
|
|
340
364
|
for (UInt32 ci = 0; ci < numDirChunks; ci++)
|
341
365
|
{
|
342
366
|
UInt64 chunkPos = _inBuffer.GetProcessedSize();
|
343
|
-
if (ReadUInt32() ==
|
367
|
+
if (ReadUInt32() == kSignature_PMGL)
|
344
368
|
{
|
345
369
|
// The quickref area is written backwards from the end of the chunk.
|
346
370
|
// One quickref entry exists for every n entries in the file, where n
|
347
371
|
// is calculated as 1 + (1 << quickref density). So for density = 2, n = 5.
|
348
372
|
|
349
|
-
UInt32 quickrefLength = ReadUInt32(); //
|
373
|
+
UInt32 quickrefLength = ReadUInt32(); // Len of free space and/or quickref area at end of directory chunk
|
350
374
|
if (quickrefLength > dirChunkSize || quickrefLength < 2)
|
351
375
|
return S_FALSE;
|
352
376
|
ReadUInt32(); // Always 0
|
@@ -354,7 +378,8 @@ HRESULT CInArchive::OpenChm(IInStream *inStream, CDatabase &database)
|
|
354
378
|
// directory in sequence (-1 if this is the first listing chunk)
|
355
379
|
ReadUInt32(); // Chunk number of next listing chunk when reading
|
356
380
|
// directory in sequence (-1 if this is the last listing chunk)
|
357
|
-
|
381
|
+
unsigned numItems = 0;
|
382
|
+
|
358
383
|
for (;;)
|
359
384
|
{
|
360
385
|
UInt64 offset = _inBuffer.GetProcessedSize() - chunkPos;
|
@@ -366,9 +391,16 @@ HRESULT CInArchive::OpenChm(IInStream *inStream, CDatabase &database)
|
|
366
391
|
RINOK(ReadDirEntry(database));
|
367
392
|
numItems++;
|
368
393
|
}
|
394
|
+
|
369
395
|
Skip(quickrefLength - 2);
|
370
|
-
|
371
|
-
|
396
|
+
|
397
|
+
unsigned rrr = ReadUInt16();
|
398
|
+
if (rrr != numItems)
|
399
|
+
{
|
400
|
+
// Lazarus 9-26-2 chm contains 0 here.
|
401
|
+
if (rrr != 0)
|
402
|
+
return S_FALSE;
|
403
|
+
}
|
372
404
|
}
|
373
405
|
else
|
374
406
|
Skip(dirChunkSize - 4);
|
@@ -383,10 +415,13 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
383
415
|
if (ReadUInt32() != 0x28) // Location of header section table
|
384
416
|
return S_FALSE;
|
385
417
|
UInt32 numHeaderSections = ReadUInt32();
|
386
|
-
const
|
418
|
+
const unsigned kNumHeaderSectionsMax = 5;
|
387
419
|
if (numHeaderSections != kNumHeaderSectionsMax)
|
388
420
|
return S_FALSE;
|
389
|
-
|
421
|
+
|
422
|
+
IsArc = true;
|
423
|
+
|
424
|
+
ReadUInt32(); // Len of post-header table
|
390
425
|
GUID g;
|
391
426
|
ReadGUID(g); // {0A9007C1-4076-11D3-8789-0000F8105754}
|
392
427
|
|
@@ -398,6 +433,8 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
398
433
|
{
|
399
434
|
sectionOffsets[i] = ReadUInt64();
|
400
435
|
sectionSizes[i] = ReadUInt64();
|
436
|
+
UInt64 end = sectionOffsets[i] + sectionSizes[i];
|
437
|
+
database.UpdatePhySize(end);
|
401
438
|
}
|
402
439
|
|
403
440
|
// Post-Header
|
@@ -436,11 +473,11 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
436
473
|
ReadUInt32(); // $20000 (Same as field following chunk size in directory index)
|
437
474
|
|
438
475
|
ReadUInt64(); // 0 (unknown)
|
439
|
-
if (ReadUInt32() !=
|
476
|
+
if (ReadUInt32() != kSignature_CAOL)
|
440
477
|
return S_FALSE;
|
441
478
|
if (ReadUInt32() != 2) // (Most likely a version number)
|
442
479
|
return S_FALSE;
|
443
|
-
UInt32 caolLength = ReadUInt32(); // $50 (
|
480
|
+
UInt32 caolLength = ReadUInt32(); // $50 (Len of the CAOL section, which includes the ITSF section)
|
444
481
|
if (caolLength >= 0x2C)
|
445
482
|
{
|
446
483
|
/* UInt32 c7 = */ ReadUInt16(); // Unknown. Remains the same when identical files are built.
|
@@ -458,13 +495,15 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
458
495
|
ReadUInt32(); // 0 (Unknown)
|
459
496
|
if (caolLength == 0x2C)
|
460
497
|
{
|
461
|
-
|
498
|
+
// fprintf(stdout, "\n !!!NewFormat\n");
|
499
|
+
// fflush(stdout);
|
500
|
+
database.ContentOffset = 0; // maybe we must add database.StartPosition here?
|
462
501
|
database.NewFormat = true;
|
463
502
|
}
|
464
503
|
else if (caolLength == 0x50)
|
465
504
|
{
|
466
505
|
ReadUInt32(); // 0 (Unknown)
|
467
|
-
if (ReadUInt32() !=
|
506
|
+
if (ReadUInt32() != kSignature_ITSF)
|
468
507
|
return S_FALSE;
|
469
508
|
if (ReadUInt32() != 4) // $4 (Version number -- CHM uses 3)
|
470
509
|
return S_FALSE;
|
@@ -473,7 +512,7 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
473
512
|
UInt32 unknown = ReadUInt32();
|
474
513
|
if (unknown != 0 && unknown != 1) // = 0 for some HxW files, 1 in other cases;
|
475
514
|
return S_FALSE;
|
476
|
-
database.ContentOffset =
|
515
|
+
database.ContentOffset = database.StartPosition + ReadUInt64();
|
477
516
|
/* UInt32 timeStamp = */ ReadUInt32();
|
478
517
|
// A timestamp of some sort.
|
479
518
|
// Considered as a big-endian DWORD, it appears to contain
|
@@ -486,21 +525,21 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
486
525
|
return S_FALSE;
|
487
526
|
}
|
488
527
|
|
489
|
-
/*
|
490
528
|
// Section 0
|
491
|
-
ReadChunk(inStream,
|
492
|
-
if (sectionSizes[0]
|
529
|
+
ReadChunk(inStream, database.StartPosition + sectionOffsets[0], sectionSizes[0]);
|
530
|
+
if (sectionSizes[0] < 0x18)
|
531
|
+
return S_FALSE;
|
532
|
+
if (ReadUInt32() != 0x01FE)
|
493
533
|
return S_FALSE;
|
494
|
-
ReadUInt32(); // unknown: 01FE
|
495
534
|
ReadUInt32(); // unknown: 0
|
496
535
|
UInt64 fileSize = ReadUInt64();
|
536
|
+
database.UpdatePhySize(fileSize);
|
497
537
|
ReadUInt32(); // unknown: 0
|
498
538
|
ReadUInt32(); // unknown: 0
|
499
|
-
*/
|
500
539
|
|
501
540
|
// Section 1: The Directory Listing
|
502
|
-
ReadChunk(inStream,
|
503
|
-
if (ReadUInt32() !=
|
541
|
+
ReadChunk(inStream, database.StartPosition + sectionOffsets[1], sectionSizes[1]);
|
542
|
+
if (ReadUInt32() != kSignature_IFCM)
|
504
543
|
return S_FALSE;
|
505
544
|
if (ReadUInt32() != 1) // (probably a version number)
|
506
545
|
return S_FALSE;
|
@@ -516,9 +555,9 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
516
555
|
for (UInt32 ci = 0; ci < numDirChunks; ci++)
|
517
556
|
{
|
518
557
|
UInt64 chunkPos = _inBuffer.GetProcessedSize();
|
519
|
-
if (ReadUInt32() ==
|
558
|
+
if (ReadUInt32() == kSignature_AOLL)
|
520
559
|
{
|
521
|
-
UInt32 quickrefLength = ReadUInt32(); //
|
560
|
+
UInt32 quickrefLength = ReadUInt32(); // Len of quickref area at end of directory chunk
|
522
561
|
if (quickrefLength > dirChunkSize || quickrefLength < 2)
|
523
562
|
return S_FALSE;
|
524
563
|
ReadUInt64(); // Directory chunk number
|
@@ -533,7 +572,7 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
533
572
|
ReadUInt32(); // 1 (unknown -- other values have also been seen here)
|
534
573
|
ReadUInt32(); // 0 (unknown)
|
535
574
|
|
536
|
-
|
575
|
+
unsigned numItems = 0;
|
537
576
|
for (;;)
|
538
577
|
{
|
539
578
|
UInt64 offset = _inBuffer.GetProcessedSize() - chunkPos;
|
@@ -544,17 +583,17 @@ HRESULT CInArchive::OpenHelp2(IInStream *inStream, CDatabase &database)
|
|
544
583
|
break;
|
545
584
|
if (database.NewFormat)
|
546
585
|
{
|
547
|
-
UInt16
|
548
|
-
if (
|
586
|
+
UInt16 nameLen = ReadUInt16();
|
587
|
+
if (nameLen == 0)
|
549
588
|
return S_FALSE;
|
550
589
|
UString name;
|
551
|
-
ReadUString((
|
590
|
+
ReadUString((unsigned)nameLen, name);
|
552
591
|
AString s;
|
553
592
|
ConvertUnicodeToUTF8(name, s);
|
554
593
|
Byte b = ReadByte();
|
555
|
-
s
|
594
|
+
s.Add_Space();
|
556
595
|
PrintByte(b, s);
|
557
|
-
s
|
596
|
+
s.Add_Space();
|
558
597
|
UInt64 len = ReadEncInt();
|
559
598
|
// then number of items ?
|
560
599
|
// then length ?
|
@@ -609,12 +648,15 @@ static const char *kTransformList = "List";
|
|
609
648
|
|
610
649
|
static AString GetSectionPrefix(const AString &name)
|
611
650
|
{
|
612
|
-
|
651
|
+
AString s = kStorage;
|
652
|
+
s += name;
|
653
|
+
s += '/';
|
654
|
+
return s;
|
613
655
|
}
|
614
656
|
|
615
657
|
#define RINOZ(x) { int __tt = (x); if (__tt != 0) return __tt; }
|
616
658
|
|
617
|
-
static int CompareFiles(const
|
659
|
+
static int CompareFiles(const unsigned *p1, const unsigned *p2, void *param)
|
618
660
|
{
|
619
661
|
const CObjectVector<CItem> &items = *(const CObjectVector<CItem> *)param;
|
620
662
|
const CItem &item1 = items[*p1];
|
@@ -625,22 +667,24 @@ static int CompareFiles(const int *p1, const int *p2, void *param)
|
|
625
667
|
return -1;
|
626
668
|
if (isDir2)
|
627
669
|
{
|
628
|
-
if (isDir1)
|
629
|
-
return
|
630
|
-
|
670
|
+
if (!isDir1)
|
671
|
+
return 1;
|
672
|
+
}
|
673
|
+
else
|
674
|
+
{
|
675
|
+
RINOZ(MyCompare(item1.Section, item2.Section));
|
676
|
+
RINOZ(MyCompare(item1.Offset, item2.Offset));
|
677
|
+
RINOZ(MyCompare(item1.Size, item2.Size));
|
631
678
|
}
|
632
|
-
RINOZ(MyCompare(item1.Section, item2.Section));
|
633
|
-
RINOZ(MyCompare(item1.Offset, item2.Offset));
|
634
|
-
RINOZ(MyCompare(item1.Size, item2.Size));
|
635
679
|
return MyCompare(*p1, *p2);
|
636
680
|
}
|
637
681
|
|
638
682
|
void CFilesDatabase::SetIndices()
|
639
683
|
{
|
640
|
-
|
684
|
+
FOR_VECTOR (i, Items)
|
641
685
|
{
|
642
686
|
const CItem &item = Items[i];
|
643
|
-
if (item.IsUserItem() && item.Name.
|
687
|
+
if (item.IsUserItem() && item.Name.Len() != 1)
|
644
688
|
Indices.Add(i);
|
645
689
|
}
|
646
690
|
}
|
@@ -654,7 +698,7 @@ bool CFilesDatabase::Check()
|
|
654
698
|
{
|
655
699
|
UInt64 maxPos = 0;
|
656
700
|
UInt64 prevSection = 0;
|
657
|
-
|
701
|
+
FOR_VECTOR (i, Indices)
|
658
702
|
{
|
659
703
|
const CItem &item = Items[Indices[i]];
|
660
704
|
if (item.Section == 0 || item.IsDir())
|
@@ -674,6 +718,27 @@ bool CFilesDatabase::Check()
|
|
674
718
|
return true;
|
675
719
|
}
|
676
720
|
|
721
|
+
bool CFilesDatabase::CheckSectionRefs()
|
722
|
+
{
|
723
|
+
FOR_VECTOR (i, Indices)
|
724
|
+
{
|
725
|
+
const CItem &item = Items[Indices[i]];
|
726
|
+
if (item.Section == 0 || item.IsDir())
|
727
|
+
continue;
|
728
|
+
if (item.Section >= Sections.Size())
|
729
|
+
return false;
|
730
|
+
}
|
731
|
+
return true;
|
732
|
+
}
|
733
|
+
|
734
|
+
static int inline GetLog(UInt32 num)
|
735
|
+
{
|
736
|
+
for (int i = 0; i < 32; i++)
|
737
|
+
if (((UInt32)1 << i) == num)
|
738
|
+
return i;
|
739
|
+
return -1;
|
740
|
+
}
|
741
|
+
|
677
742
|
HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
678
743
|
{
|
679
744
|
{
|
@@ -681,24 +746,24 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
681
746
|
RINOK(DecompressStream(inStream, database, kNameList));
|
682
747
|
/* UInt16 length = */ ReadUInt16();
|
683
748
|
UInt16 numSections = ReadUInt16();
|
684
|
-
for (
|
749
|
+
for (unsigned i = 0; i < numSections; i++)
|
685
750
|
{
|
686
751
|
CSectionInfo section;
|
687
|
-
UInt16
|
752
|
+
UInt16 nameLen = ReadUInt16();
|
688
753
|
UString name;
|
689
|
-
ReadUString(
|
754
|
+
ReadUString(nameLen, name);
|
690
755
|
if (ReadUInt16() != 0)
|
691
756
|
return S_FALSE;
|
692
|
-
|
693
|
-
|
757
|
+
ConvertUnicodeToUTF8(name, section.Name);
|
758
|
+
// if (!ConvertUnicodeToUTF8(name, section.Name)) return S_FALSE;
|
694
759
|
database.Sections.Add(section);
|
695
760
|
}
|
696
761
|
}
|
697
762
|
|
698
|
-
|
699
|
-
for (
|
763
|
+
unsigned si;
|
764
|
+
for (si = 1; si < database.Sections.Size(); si++)
|
700
765
|
{
|
701
|
-
CSectionInfo §ion = database.Sections[
|
766
|
+
CSectionInfo §ion = database.Sections[si];
|
702
767
|
AString sectionPrefix = GetSectionPrefix(section.Name);
|
703
768
|
{
|
704
769
|
// Content
|
@@ -716,10 +781,10 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
716
781
|
RINOK(DecompressStream(inStream, database, transformPrefix + kTransformList));
|
717
782
|
if ((_chunkSize & 0xF) != 0)
|
718
783
|
return S_FALSE;
|
719
|
-
|
784
|
+
unsigned numGuids = (unsigned)(_chunkSize / 0x10);
|
720
785
|
if (numGuids < 1)
|
721
786
|
return S_FALSE;
|
722
|
-
for (
|
787
|
+
for (unsigned i = 0; i < numGuids; i++)
|
723
788
|
{
|
724
789
|
CMethodInfo method;
|
725
790
|
ReadGUID(method.Guid);
|
@@ -736,7 +801,8 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
736
801
|
{
|
737
802
|
// Control Data
|
738
803
|
RINOK(DecompressStream(inStream, database, sectionPrefix + kControlData));
|
739
|
-
|
804
|
+
|
805
|
+
FOR_VECTOR (mi, section.Methods)
|
740
806
|
{
|
741
807
|
CMethodInfo &method = section.Methods[mi];
|
742
808
|
UInt32 numDWORDS = ReadUInt32();
|
@@ -744,33 +810,31 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
744
810
|
{
|
745
811
|
if (numDWORDS < 5)
|
746
812
|
return S_FALSE;
|
747
|
-
if (ReadUInt32() !=
|
813
|
+
if (ReadUInt32() != kSignature_LZXC)
|
748
814
|
return S_FALSE;
|
749
815
|
CLzxInfo &li = method.LzxInfo;
|
750
816
|
li.Version = ReadUInt32();
|
751
817
|
if (li.Version != 2 && li.Version != 3)
|
752
818
|
return S_FALSE;
|
753
|
-
|
754
|
-
|
819
|
+
|
820
|
+
{
|
821
|
+
// There is bug in VC6, if we use function call as parameter for inline function
|
822
|
+
UInt32 val32 = ReadUInt32();
|
823
|
+
int n = GetLog(val32);
|
824
|
+
if (n < 0 || n > 16)
|
825
|
+
return S_FALSE;
|
826
|
+
li.ResetIntervalBits = n;
|
827
|
+
}
|
828
|
+
|
829
|
+
{
|
830
|
+
UInt32 val32 = ReadUInt32();
|
831
|
+
int n = GetLog(val32);
|
832
|
+
if (n < 0 || n > 16)
|
833
|
+
return S_FALSE;
|
834
|
+
li.WindowSizeBits = n;
|
835
|
+
}
|
836
|
+
|
755
837
|
li.CacheSize = ReadUInt32();
|
756
|
-
if (
|
757
|
-
li.ResetInterval != 1 &&
|
758
|
-
li.ResetInterval != 2 &&
|
759
|
-
li.ResetInterval != 4 &&
|
760
|
-
li.ResetInterval != 8 &&
|
761
|
-
li.ResetInterval != 16 &&
|
762
|
-
li.ResetInterval != 32 &&
|
763
|
-
li.ResetInterval != 64)
|
764
|
-
return S_FALSE;
|
765
|
-
if (
|
766
|
-
li.WindowSize != 1 &&
|
767
|
-
li.WindowSize != 2 &&
|
768
|
-
li.WindowSize != 4 &&
|
769
|
-
li.WindowSize != 8 &&
|
770
|
-
li.WindowSize != 16 &&
|
771
|
-
li.WindowSize != 32 &&
|
772
|
-
li.WindowSize != 64)
|
773
|
-
return S_FALSE;
|
774
838
|
numDWORDS -= 5;
|
775
839
|
while (numDWORDS-- != 0)
|
776
840
|
ReadUInt32();
|
@@ -778,7 +842,7 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
778
842
|
else
|
779
843
|
{
|
780
844
|
UInt32 numBytes = numDWORDS * 4;
|
781
|
-
method.ControlData.
|
845
|
+
method.ControlData.Alloc(numBytes);
|
782
846
|
ReadBytes(method.ControlData, numBytes);
|
783
847
|
}
|
784
848
|
}
|
@@ -791,7 +855,7 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
791
855
|
}
|
792
856
|
|
793
857
|
// read ResetTable for LZX
|
794
|
-
|
858
|
+
FOR_VECTOR (mi, section.Methods)
|
795
859
|
{
|
796
860
|
CMethodInfo &method = section.Methods[mi];
|
797
861
|
if (method.IsLzx())
|
@@ -800,6 +864,7 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
800
864
|
RINOK(DecompressStream(inStream, database, transformPrefix +
|
801
865
|
method.GetGuidString() + kResetTable));
|
802
866
|
CResetTable &rt = method.LzxInfo.ResetTable;
|
867
|
+
|
803
868
|
if (_chunkSize < 4)
|
804
869
|
{
|
805
870
|
if (_chunkSize != 0)
|
@@ -809,7 +874,7 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
809
874
|
return S_FALSE;
|
810
875
|
rt.UncompressedSize = 0;
|
811
876
|
rt.CompressedSize = 0;
|
812
|
-
rt.BlockSize = 0;
|
877
|
+
// rt.BlockSize = 0;
|
813
878
|
}
|
814
879
|
else
|
815
880
|
{
|
@@ -817,18 +882,45 @@ HRESULT CInArchive::OpenHighLevel(IInStream *inStream, CFilesDatabase &database)
|
|
817
882
|
if (ver != 2 && ver != 3)
|
818
883
|
return S_FALSE;
|
819
884
|
UInt32 numEntries = ReadUInt32();
|
820
|
-
|
885
|
+
const unsigned kEntrySize = 8;
|
886
|
+
if (ReadUInt32() != kEntrySize)
|
821
887
|
return S_FALSE;
|
822
|
-
|
888
|
+
const unsigned kRtHeaderSize = 4 * 4 + 8 * 3;
|
889
|
+
if (ReadUInt32() != kRtHeaderSize)
|
823
890
|
return S_FALSE;
|
891
|
+
if (kRtHeaderSize + kEntrySize * (UInt64)numEntries != _chunkSize)
|
892
|
+
return S_FALSE;
|
893
|
+
|
824
894
|
rt.UncompressedSize = ReadUInt64();
|
825
895
|
rt.CompressedSize = ReadUInt64();
|
826
|
-
|
827
|
-
if (
|
896
|
+
UInt64 blockSize = ReadUInt64();
|
897
|
+
if (blockSize != kBlockSize)
|
898
|
+
return S_FALSE;
|
899
|
+
UInt64 numBlocks = (rt.UncompressedSize + kBlockSize + 1) / kBlockSize;
|
900
|
+
if (numEntries != numBlocks &&
|
901
|
+
numEntries != numBlocks + 1)
|
828
902
|
return S_FALSE;
|
829
|
-
|
903
|
+
|
904
|
+
rt.ResetOffsets.ClearAndReserve(numEntries);
|
905
|
+
|
830
906
|
for (UInt32 i = 0; i < numEntries; i++)
|
831
|
-
|
907
|
+
{
|
908
|
+
UInt64 v = ReadUInt64();
|
909
|
+
if (i != 0 && v < rt.ResetOffsets[i - 1])
|
910
|
+
return S_FALSE;
|
911
|
+
rt.ResetOffsets.AddInReserved(v);
|
912
|
+
}
|
913
|
+
|
914
|
+
if (numEntries != 0)
|
915
|
+
if (rt.ResetOffsets[0] != 0)
|
916
|
+
return S_FALSE;
|
917
|
+
|
918
|
+
if (numEntries == numBlocks + 1)
|
919
|
+
{
|
920
|
+
// Lazarus 9-26-2 chm contains additional entty
|
921
|
+
if (rt.ResetOffsets.Back() != rt.CompressedSize)
|
922
|
+
return S_FALSE;
|
923
|
+
}
|
832
924
|
}
|
833
925
|
}
|
834
926
|
}
|
@@ -843,77 +935,96 @@ HRESULT CInArchive::Open2(IInStream *inStream,
|
|
843
935
|
const UInt64 *searchHeaderSizeLimit,
|
844
936
|
CFilesDatabase &database)
|
845
937
|
{
|
938
|
+
IsArc = false;
|
939
|
+
HeadersError = false;
|
940
|
+
UnexpectedEnd = false;
|
941
|
+
UnsupportedFeature = false;
|
942
|
+
|
846
943
|
database.Clear();
|
944
|
+
database.Help2Format = _help2;
|
945
|
+
const UInt32 chmVersion = 3;
|
847
946
|
|
848
|
-
RINOK(inStream->Seek(0, STREAM_SEEK_CUR, &
|
947
|
+
RINOK(inStream->Seek(0, STREAM_SEEK_CUR, &database.StartPosition));
|
849
948
|
|
850
|
-
|
851
|
-
|
949
|
+
if (!_inBuffer.Create(1 << 14))
|
950
|
+
return E_OUTOFMEMORY;
|
951
|
+
_inBuffer.SetStream(inStream);
|
952
|
+
_inBuffer.Init();
|
953
|
+
|
954
|
+
if (_help2)
|
852
955
|
{
|
853
|
-
|
854
|
-
|
855
|
-
_inBuffer.SetStream(inStream);
|
856
|
-
_inBuffer.Init();
|
857
|
-
UInt64 value = 0;
|
858
|
-
const int kSignatureSize = 8;
|
859
|
-
UInt64 hxsSignature = NHeader::GetHxsSignature();
|
860
|
-
UInt64 chmSignature = ((UInt64)chmVersion << 32)| NHeader::kItsfSignature;
|
956
|
+
const unsigned kSignatureSize = 8;
|
957
|
+
const UInt64 signature = ((UInt64)kSignature_ITLS << 32) | kSignature_ITOL;
|
861
958
|
UInt64 limit = 1 << 18;
|
959
|
+
|
862
960
|
if (searchHeaderSizeLimit)
|
863
961
|
if (limit > *searchHeaderSizeLimit)
|
864
962
|
limit = *searchHeaderSizeLimit;
|
865
963
|
|
964
|
+
UInt64 val = 0;
|
965
|
+
|
866
966
|
for (;;)
|
867
967
|
{
|
868
968
|
Byte b;
|
869
969
|
if (!_inBuffer.ReadByte(b))
|
870
970
|
return S_FALSE;
|
871
|
-
|
872
|
-
|
971
|
+
val >>= 8;
|
972
|
+
val |= ((UInt64)b) << ((kSignatureSize - 1) * 8);
|
873
973
|
if (_inBuffer.GetProcessedSize() >= kSignatureSize)
|
874
974
|
{
|
875
|
-
if (
|
975
|
+
if (val == signature)
|
876
976
|
break;
|
877
|
-
if (value == hxsSignature)
|
878
|
-
{
|
879
|
-
database.Help2Format = true;
|
880
|
-
break;
|
881
|
-
}
|
882
977
|
if (_inBuffer.GetProcessedSize() > limit)
|
883
978
|
return S_FALSE;
|
884
979
|
}
|
885
980
|
}
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
if (database.Help2Format)
|
890
|
-
{
|
981
|
+
|
982
|
+
database.StartPosition += _inBuffer.GetProcessedSize() - kSignatureSize;
|
891
983
|
RINOK(OpenHelp2(inStream, database));
|
892
984
|
if (database.NewFormat)
|
893
985
|
return S_OK;
|
894
986
|
}
|
895
987
|
else
|
896
988
|
{
|
989
|
+
if (ReadUInt32() != kSignature_ITSF)
|
990
|
+
return S_FALSE;
|
991
|
+
if (ReadUInt32() != chmVersion)
|
992
|
+
return S_FALSE;
|
897
993
|
RINOK(OpenChm(inStream, database));
|
898
994
|
}
|
899
995
|
|
996
|
+
|
900
997
|
#ifndef CHM_LOW
|
998
|
+
|
901
999
|
try
|
902
1000
|
{
|
903
|
-
|
904
|
-
|
1001
|
+
try
|
1002
|
+
{
|
1003
|
+
HRESULT res = OpenHighLevel(inStream, database);
|
1004
|
+
if (res == S_FALSE)
|
1005
|
+
{
|
1006
|
+
UnsupportedFeature = true;
|
1007
|
+
database.HighLevelClear();
|
1008
|
+
return S_OK;
|
1009
|
+
}
|
1010
|
+
RINOK(res);
|
1011
|
+
if (!database.CheckSectionRefs())
|
1012
|
+
HeadersError = true;
|
1013
|
+
database.LowLevel = false;
|
1014
|
+
}
|
1015
|
+
catch(...)
|
905
1016
|
{
|
906
1017
|
database.HighLevelClear();
|
907
|
-
|
1018
|
+
throw;
|
908
1019
|
}
|
909
|
-
RINOK(res);
|
910
|
-
database.LowLevel = false;
|
911
|
-
}
|
912
|
-
catch(...)
|
913
|
-
{
|
914
|
-
return S_OK;
|
915
1020
|
}
|
1021
|
+
// catch(const CInBufferException &e) { return e.ErrorCode; }
|
1022
|
+
catch(CEnexpectedEndException &) { UnexpectedEnd = true; }
|
1023
|
+
catch(CHeaderErrorException &) { HeadersError = true; }
|
1024
|
+
catch(...) { throw; }
|
1025
|
+
|
916
1026
|
#endif
|
1027
|
+
|
917
1028
|
return S_OK;
|
918
1029
|
}
|
919
1030
|
|
@@ -923,15 +1034,22 @@ HRESULT CInArchive::Open(IInStream *inStream,
|
|
923
1034
|
{
|
924
1035
|
try
|
925
1036
|
{
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
1037
|
+
try
|
1038
|
+
{
|
1039
|
+
HRESULT res = Open2(inStream, searchHeaderSizeLimit, database);
|
1040
|
+
m_InStreamRef.Release();
|
1041
|
+
return res;
|
1042
|
+
}
|
1043
|
+
catch(...)
|
1044
|
+
{
|
1045
|
+
m_InStreamRef.Release();
|
1046
|
+
throw;
|
1047
|
+
}
|
934
1048
|
}
|
1049
|
+
catch(const CInBufferException &e) { return e.ErrorCode; }
|
1050
|
+
catch(CEnexpectedEndException &) { UnexpectedEnd = true; }
|
1051
|
+
catch(CHeaderErrorException &) { HeadersError = true; }
|
1052
|
+
return S_FALSE;
|
935
1053
|
}
|
936
1054
|
|
937
1055
|
}}
|