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,12 +2,25 @@
|
|
2
2
|
|
3
3
|
#include "StdAfx.h"
|
4
4
|
|
5
|
+
// #define SHOW_DEBUG_INFO
|
6
|
+
|
7
|
+
#ifdef SHOW_DEBUG_INFO
|
8
|
+
#include <stdio.h>
|
9
|
+
#endif
|
10
|
+
|
5
11
|
#include "../../../../C/CpuArch.h"
|
6
12
|
|
13
|
+
#include "../../Common/RegisterArc.h"
|
7
14
|
#include "../../Common/StreamUtils.h"
|
8
15
|
|
9
16
|
#include "UdfIn.h"
|
10
17
|
|
18
|
+
#ifdef SHOW_DEBUG_INFO
|
19
|
+
#define PRF(x) x
|
20
|
+
#else
|
21
|
+
#define PRF(x)
|
22
|
+
#endif
|
23
|
+
|
11
24
|
#define Get16(p) GetUi16(p)
|
12
25
|
#define Get32(p) GetUi32(p)
|
13
26
|
#define Get64(p) GetUi64(p)
|
@@ -15,24 +28,22 @@
|
|
15
28
|
namespace NArchive {
|
16
29
|
namespace NUdf {
|
17
30
|
|
18
|
-
const
|
19
|
-
const
|
20
|
-
const
|
21
|
-
const
|
22
|
-
const
|
23
|
-
const
|
24
|
-
const UInt32 kNumExtentsMax = (UInt32)1 << 30;
|
25
|
-
const UInt64 kFileNameLengthTotalMax = (UInt64)1 << 33;
|
26
|
-
const UInt64 kInlineExtentsSizeMax = (UInt64)1 << 33;
|
27
|
-
|
28
|
-
void MY_FAST_CALL Crc16GenerateTable(void);
|
31
|
+
static const unsigned kNumPartitionsMax = 64;
|
32
|
+
static const unsigned kNumLogVolumesMax = 64;
|
33
|
+
static const unsigned kNumRecursionLevelsMax = 1 << 10;
|
34
|
+
static const unsigned kNumItemsMax = 1 << 27;
|
35
|
+
static const unsigned kNumFilesMax = 1 << 28;
|
36
|
+
static const unsigned kNumRefsMax = 1 << 28;
|
37
|
+
static const UInt32 kNumExtentsMax = (UInt32)1 << 30;
|
38
|
+
static const UInt64 kFileNameLengthTotalMax = (UInt64)1 << 33;
|
39
|
+
static const UInt64 kInlineExtentsSizeMax = (UInt64)1 << 33;
|
29
40
|
|
30
41
|
#define CRC16_INIT_VAL 0
|
31
42
|
#define CRC16_GET_DIGEST(crc) (crc)
|
32
|
-
#define CRC16_UPDATE_BYTE(crc, b) (g_Crc16Table[(((crc) >> 8) ^ (b)) & 0xFF] ^ ((crc) << 8))
|
43
|
+
#define CRC16_UPDATE_BYTE(crc, b) ((UInt16)(g_Crc16Table[(((crc) >> 8) ^ (b)) & 0xFF] ^ ((crc) << 8)))
|
33
44
|
|
34
45
|
#define kCrc16Poly 0x1021
|
35
|
-
UInt16 g_Crc16Table[256];
|
46
|
+
static UInt16 g_Crc16Table[256];
|
36
47
|
|
37
48
|
void MY_FAST_CALL Crc16GenerateTable(void)
|
38
49
|
{
|
@@ -61,25 +72,24 @@ UInt16 MY_FAST_CALL Crc16Calc(const void *data, size_t size)
|
|
61
72
|
|
62
73
|
struct CCrc16TableInit { CCrc16TableInit() { Crc16GenerateTable(); } } g_Crc16TableInit;
|
63
74
|
|
64
|
-
|
75
|
+
|
65
76
|
|
66
77
|
void CDString::Parse(const Byte *p, unsigned size)
|
67
78
|
{
|
68
|
-
Data.
|
69
|
-
memcpy(Data, p, size);
|
79
|
+
Data.CopyFrom(p, size);
|
70
80
|
}
|
71
81
|
|
72
|
-
static UString ParseDString(const Byte *data,
|
82
|
+
static UString ParseDString(const Byte *data, unsigned size)
|
73
83
|
{
|
74
84
|
UString res;
|
75
|
-
wchar_t *p;
|
76
85
|
if (size > 0)
|
77
86
|
{
|
87
|
+
wchar_t *p;
|
78
88
|
Byte type = data[0];
|
79
89
|
if (type == 8)
|
80
90
|
{
|
81
|
-
p = res.
|
82
|
-
for (
|
91
|
+
p = res.GetBuf(size);
|
92
|
+
for (unsigned i = 1; i < size; i++)
|
83
93
|
{
|
84
94
|
wchar_t c = data[i];
|
85
95
|
if (c == 0)
|
@@ -89,10 +99,10 @@ static UString ParseDString(const Byte *data, int size)
|
|
89
99
|
}
|
90
100
|
else if (type == 16)
|
91
101
|
{
|
92
|
-
p = res.
|
93
|
-
for (
|
102
|
+
p = res.GetBuf(size / 2);
|
103
|
+
for (unsigned i = 1; i + 2 <= size; i += 2)
|
94
104
|
{
|
95
|
-
wchar_t c = (
|
105
|
+
wchar_t c = GetBe16(data + i);
|
96
106
|
if (c == 0)
|
97
107
|
break;
|
98
108
|
*p++ = c;
|
@@ -100,19 +110,20 @@ static UString ParseDString(const Byte *data, int size)
|
|
100
110
|
}
|
101
111
|
else
|
102
112
|
return L"[unknow]";
|
103
|
-
*p
|
104
|
-
res.
|
113
|
+
*p = 0;
|
114
|
+
res.ReleaseBuf_SetLen((unsigned)(p - (const wchar_t *)res));
|
105
115
|
}
|
106
116
|
return res;
|
107
117
|
}
|
108
118
|
|
109
|
-
UString CDString:: GetString() const { return ParseDString(Data, (int)Data.GetCapacity()); }
|
110
119
|
UString CDString128::GetString() const
|
111
120
|
{
|
112
|
-
|
113
|
-
return ParseDString(Data, MyMin(size, (
|
121
|
+
unsigned size = Data[sizeof(Data) - 1];
|
122
|
+
return ParseDString(Data, MyMin(size, (unsigned)(sizeof(Data) - 1)));
|
114
123
|
}
|
115
124
|
|
125
|
+
UString CDString::GetString() const { return ParseDString(Data, (unsigned)Data.Size()); }
|
126
|
+
|
116
127
|
void CTime::Parse(const Byte *buf) { memcpy(Data, buf, sizeof(Data)); }
|
117
128
|
|
118
129
|
/*
|
@@ -161,8 +172,8 @@ HRESULT CTag::Parse(const Byte *buf, size_t size)
|
|
161
172
|
return S_FALSE;
|
162
173
|
Byte sum = 0;
|
163
174
|
int i;
|
164
|
-
for (i = 0; i < 4; i++) sum = sum + buf[i];
|
165
|
-
for (i = 5; i < 16; i++) sum = sum + buf[i];
|
175
|
+
for (i = 0; i < 4; i++) sum = (Byte)(sum + buf[i]);
|
176
|
+
for (i = 5; i < 16; i++) sum = (Byte)(sum + buf[i]);
|
166
177
|
if (sum != buf[4] || buf[5] != 0) return S_FALSE;
|
167
178
|
|
168
179
|
Id = Get16(buf);
|
@@ -182,27 +193,27 @@ HRESULT CTag::Parse(const Byte *buf, size_t size)
|
|
182
193
|
|
183
194
|
enum EDescriptorType
|
184
195
|
{
|
185
|
-
DESC_TYPE_SpoaringTable
|
186
|
-
DESC_TYPE_PrimVol
|
187
|
-
DESC_TYPE_AnchorVolPtr
|
188
|
-
DESC_TYPE_VolPtr
|
189
|
-
DESC_TYPE_ImplUseVol
|
190
|
-
DESC_TYPE_Partition
|
191
|
-
DESC_TYPE_LogicalVol
|
192
|
-
DESC_TYPE_UnallocSpace
|
193
|
-
DESC_TYPE_Terminating
|
196
|
+
DESC_TYPE_SpoaringTable = 0, // UDF
|
197
|
+
DESC_TYPE_PrimVol = 1,
|
198
|
+
DESC_TYPE_AnchorVolPtr = 2,
|
199
|
+
DESC_TYPE_VolPtr = 3,
|
200
|
+
DESC_TYPE_ImplUseVol = 4,
|
201
|
+
DESC_TYPE_Partition = 5,
|
202
|
+
DESC_TYPE_LogicalVol = 6,
|
203
|
+
DESC_TYPE_UnallocSpace = 7,
|
204
|
+
DESC_TYPE_Terminating = 8,
|
194
205
|
DESC_TYPE_LogicalVolIntegrity = 9,
|
195
|
-
DESC_TYPE_FileSet
|
196
|
-
DESC_TYPE_FileId
|
197
|
-
DESC_TYPE_AllocationExtent
|
198
|
-
DESC_TYPE_Indirect
|
199
|
-
DESC_TYPE_Terminal
|
200
|
-
DESC_TYPE_File
|
201
|
-
DESC_TYPE_ExtendedAttrHeader
|
202
|
-
DESC_TYPE_UnallocatedSpace
|
203
|
-
DESC_TYPE_SpaceBitmap
|
204
|
-
DESC_TYPE_PartitionIntegrity
|
205
|
-
DESC_TYPE_ExtendedFile
|
206
|
+
DESC_TYPE_FileSet = 256,
|
207
|
+
DESC_TYPE_FileId = 257,
|
208
|
+
DESC_TYPE_AllocationExtent = 258,
|
209
|
+
DESC_TYPE_Indirect = 259,
|
210
|
+
DESC_TYPE_Terminal = 260,
|
211
|
+
DESC_TYPE_File = 261,
|
212
|
+
DESC_TYPE_ExtendedAttrHeader = 262,
|
213
|
+
DESC_TYPE_UnallocatedSpace = 263,
|
214
|
+
DESC_TYPE_SpaceBitmap = 264,
|
215
|
+
DESC_TYPE_PartitionIntegrity = 265,
|
216
|
+
DESC_TYPE_ExtendedFile = 266
|
206
217
|
};
|
207
218
|
|
208
219
|
|
@@ -237,6 +248,8 @@ void CLongAllocDesc::Parse(const Byte *buf)
|
|
237
248
|
bool CInArchive::CheckExtent(int volIndex, int partitionRef, UInt32 blockPos, UInt32 len) const
|
238
249
|
{
|
239
250
|
const CLogVol &vol = LogVols[volIndex];
|
251
|
+
if (partitionRef >= (int)vol.PartitionMaps.Size())
|
252
|
+
return false;
|
240
253
|
const CPartition &partition = Partitions[vol.PartitionMaps[partitionRef].PartitionIndex];
|
241
254
|
UInt64 offset = ((UInt64)partition.Pos << SecLogSize) + (UInt64)blockPos * vol.BlockSize;
|
242
255
|
return (offset + len) <= (((UInt64)partition.Pos + partition.Len) << SecLogSize);
|
@@ -244,7 +257,7 @@ bool CInArchive::CheckExtent(int volIndex, int partitionRef, UInt32 blockPos, UI
|
|
244
257
|
|
245
258
|
bool CInArchive::CheckItemExtents(int volIndex, const CItem &item) const
|
246
259
|
{
|
247
|
-
|
260
|
+
FOR_VECTOR (i, item.Extents)
|
248
261
|
{
|
249
262
|
const CMyExtent &e = item.Extents[i];
|
250
263
|
if (!CheckExtent(volIndex, e.PartitionRef, e.Pos, e.GetLen()))
|
@@ -259,9 +272,14 @@ HRESULT CInArchive::Read(int volIndex, int partitionRef, UInt32 blockPos, UInt32
|
|
259
272
|
return S_FALSE;
|
260
273
|
const CLogVol &vol = LogVols[volIndex];
|
261
274
|
const CPartition &partition = Partitions[vol.PartitionMaps[partitionRef].PartitionIndex];
|
262
|
-
|
263
|
-
|
264
|
-
|
275
|
+
UInt64 offset = ((UInt64)partition.Pos << SecLogSize) + (UInt64)blockPos * vol.BlockSize;
|
276
|
+
RINOK(_stream->Seek(offset, STREAM_SEEK_SET, NULL));
|
277
|
+
HRESULT res = ReadStream_FALSE(_stream, buf, len);
|
278
|
+
if (res == S_FALSE && offset + len > FileSize)
|
279
|
+
UnexpectedEnd = true;
|
280
|
+
RINOK(res);
|
281
|
+
UpdatePhySize(offset + len);
|
282
|
+
return S_OK;
|
265
283
|
}
|
266
284
|
|
267
285
|
HRESULT CInArchive::Read(int volIndex, const CLongAllocDesc &lad, Byte *buf)
|
@@ -278,9 +296,9 @@ HRESULT CInArchive::ReadFromFile(int volIndex, const CItem &item, CByteBuffer &b
|
|
278
296
|
buf = item.InlineData;
|
279
297
|
return S_OK;
|
280
298
|
}
|
281
|
-
buf.
|
299
|
+
buf.Alloc((size_t)item.Size);
|
282
300
|
size_t pos = 0;
|
283
|
-
|
301
|
+
FOR_VECTOR (i, item.Extents)
|
284
302
|
{
|
285
303
|
const CMyExtent &e = item.Extents[i];
|
286
304
|
UInt32 len = e.GetLen();
|
@@ -371,7 +389,10 @@ HRESULT CInArchive::ReadFileItem(int volIndex, int fsIndex, const CLongAllocDesc
|
|
371
389
|
return S_FALSE;
|
372
390
|
CFile &file = Files.Back();
|
373
391
|
const CLogVol &vol = LogVols[volIndex];
|
374
|
-
|
392
|
+
unsigned partitionRef = lad.Location.PartitionRef;
|
393
|
+
if (partitionRef >= vol.PartitionMaps.Size())
|
394
|
+
return S_FALSE;
|
395
|
+
CPartition &partition = Partitions[vol.PartitionMaps[partitionRef].PartitionIndex];
|
375
396
|
|
376
397
|
UInt32 key = lad.Location.Pos;
|
377
398
|
UInt32 value;
|
@@ -407,14 +428,15 @@ HRESULT CInArchive::ReadItem(int volIndex, int fsIndex, const CLongAllocDesc &la
|
|
407
428
|
if (lad.GetLen() != vol.BlockSize)
|
408
429
|
return S_FALSE;
|
409
430
|
|
410
|
-
|
411
|
-
|
412
|
-
buf.SetCapacity(size);
|
431
|
+
const size_t size = lad.GetLen();
|
432
|
+
CByteBuffer buf(size);
|
413
433
|
RINOK(Read(volIndex, lad, buf));
|
414
434
|
|
415
435
|
CTag tag;
|
416
436
|
const Byte *p = buf;
|
417
437
|
RINOK(tag.Parse(p, size));
|
438
|
+
if (size < 176)
|
439
|
+
return S_FALSE;
|
418
440
|
if (tag.Id != DESC_TYPE_File)
|
419
441
|
return S_FALSE;
|
420
442
|
|
@@ -432,7 +454,7 @@ HRESULT CInArchive::ReadItem(int volIndex, int fsIndex, const CLongAllocDesc &la
|
|
432
454
|
|
433
455
|
if ((extendedAttrLen & 3) != 0)
|
434
456
|
return S_FALSE;
|
435
|
-
|
457
|
+
size_t pos = 176;
|
436
458
|
if (extendedAttrLen > size - pos)
|
437
459
|
return S_FALSE;
|
438
460
|
/*
|
@@ -456,8 +478,7 @@ HRESULT CInArchive::ReadItem(int volIndex, int fsIndex, const CLongAllocDesc &la
|
|
456
478
|
if (desctType == ICB_DESC_TYPE_INLINE)
|
457
479
|
{
|
458
480
|
item.IsInline = true;
|
459
|
-
item.InlineData.
|
460
|
-
memcpy(item.InlineData, p + pos, allocDescriptorsLen);
|
481
|
+
item.InlineData.CopyFrom(p + pos, allocDescriptorsLen);
|
461
482
|
}
|
462
483
|
else
|
463
484
|
{
|
@@ -497,20 +518,20 @@ HRESULT CInArchive::ReadItem(int volIndex, int fsIndex, const CLongAllocDesc &la
|
|
497
518
|
{
|
498
519
|
if (!item.CheckChunkSizes() || !CheckItemExtents(volIndex, item))
|
499
520
|
return S_FALSE;
|
500
|
-
CByteBuffer
|
501
|
-
RINOK(ReadFromFile(volIndex, item,
|
521
|
+
CByteBuffer buf2;
|
522
|
+
RINOK(ReadFromFile(volIndex, item, buf2));
|
502
523
|
item.Size = 0;
|
503
524
|
item.Extents.ClearAndFree();
|
504
525
|
item.InlineData.Free();
|
505
526
|
|
506
|
-
const Byte *
|
507
|
-
|
527
|
+
const Byte *p2 = buf2;
|
528
|
+
const size_t size2 = buf2.Size();
|
508
529
|
size_t processedTotal = 0;
|
509
|
-
for (; processedTotal <
|
530
|
+
for (; processedTotal < size2;)
|
510
531
|
{
|
511
532
|
size_t processedCur;
|
512
533
|
CFileId fileId;
|
513
|
-
RINOK(fileId.Parse(
|
534
|
+
RINOK(fileId.Parse(p2 + processedTotal, size2 - processedTotal, processedCur));
|
514
535
|
if (!fileId.IsItLinkParent())
|
515
536
|
{
|
516
537
|
CFile file;
|
@@ -519,7 +540,7 @@ HRESULT CInArchive::ReadItem(int volIndex, int fsIndex, const CLongAllocDesc &la
|
|
519
540
|
// file.ImplUse = fileId.ImplUse;
|
520
541
|
file.Id = fileId.Id;
|
521
542
|
|
522
|
-
_fileNameLengthTotal += file.Id.Data.
|
543
|
+
_fileNameLengthTotal += file.Id.Data.Size();
|
523
544
|
if (_fileNameLengthTotal > kFileNameLengthTotalMax)
|
524
545
|
return S_FALSE;
|
525
546
|
|
@@ -538,17 +559,17 @@ HRESULT CInArchive::ReadItem(int volIndex, int fsIndex, const CLongAllocDesc &la
|
|
538
559
|
return S_FALSE;
|
539
560
|
_numExtents += item.Extents.Size();
|
540
561
|
|
541
|
-
if (item.InlineData.
|
562
|
+
if (item.InlineData.Size() > kInlineExtentsSizeMax - _inlineExtentsSize)
|
542
563
|
return S_FALSE;
|
543
|
-
_inlineExtentsSize += item.InlineData.
|
564
|
+
_inlineExtentsSize += item.InlineData.Size();
|
544
565
|
}
|
545
566
|
|
546
567
|
return S_OK;
|
547
568
|
}
|
548
569
|
|
549
|
-
HRESULT CInArchive::FillRefs(CFileSet &fs,
|
570
|
+
HRESULT CInArchive::FillRefs(CFileSet &fs, unsigned fileIndex, int parent, int numRecurseAllowed)
|
550
571
|
{
|
551
|
-
if (_numRefs
|
572
|
+
if ((_numRefs & 0xFFF) == 0)
|
552
573
|
{
|
553
574
|
RINOK(_progress->SetCompleted());
|
554
575
|
}
|
@@ -563,58 +584,134 @@ HRESULT CInArchive::FillRefs(CFileSet &fs, int fileIndex, int parent, int numRec
|
|
563
584
|
parent = fs.Refs.Size();
|
564
585
|
fs.Refs.Add(ref);
|
565
586
|
const CItem &item = Items[Files[fileIndex].ItemIndex];
|
566
|
-
|
587
|
+
FOR_VECTOR (i, item.SubFiles)
|
567
588
|
{
|
568
589
|
RINOK(FillRefs(fs, item.SubFiles[i], parent, numRecurseAllowed));
|
569
590
|
}
|
570
591
|
return S_OK;
|
571
592
|
}
|
572
593
|
|
594
|
+
API_FUNC_IsArc IsArc_Udf(const Byte *p, size_t size)
|
595
|
+
{
|
596
|
+
UInt32 res = k_IsArc_Res_NO;
|
597
|
+
unsigned SecLogSize;
|
598
|
+
for (SecLogSize = 11;; SecLogSize -= 3)
|
599
|
+
{
|
600
|
+
if (SecLogSize < 8)
|
601
|
+
return res;
|
602
|
+
const UInt32 offset = (UInt32)256 << SecLogSize;
|
603
|
+
const UInt32 bufSize = (UInt32)1 << SecLogSize;
|
604
|
+
if (offset + bufSize > size)
|
605
|
+
res = k_IsArc_Res_NEED_MORE;
|
606
|
+
else
|
607
|
+
{
|
608
|
+
CTag tag;
|
609
|
+
if (tag.Parse(p + offset, bufSize) == S_OK)
|
610
|
+
if (tag.Id == DESC_TYPE_AnchorVolPtr)
|
611
|
+
return k_IsArc_Res_YES;
|
612
|
+
}
|
613
|
+
}
|
614
|
+
}
|
615
|
+
|
616
|
+
|
573
617
|
HRESULT CInArchive::Open2()
|
574
618
|
{
|
575
619
|
Clear();
|
576
|
-
|
577
620
|
UInt64 fileSize;
|
578
621
|
RINOK(_stream->Seek(0, STREAM_SEEK_END, &fileSize));
|
622
|
+
FileSize = fileSize;
|
579
623
|
|
580
|
-
// Some UDFs contain additional
|
581
|
-
|
582
|
-
|
583
|
-
Byte kSizesLog[] = { 11, 8, 12 };
|
624
|
+
// Some UDFs contain additional pad zeros (2 KB).
|
625
|
+
// Seek to STREAM_SEEK_END for direct DVD reading can return 8 KB more, so we check last 16 KB.
|
626
|
+
// And when we read last block, result read size can be smaller than required size.
|
584
627
|
|
585
|
-
|
628
|
+
/*
|
629
|
+
const size_t kBufSize = 1 << 14;
|
630
|
+
Byte buf[kBufSize];
|
631
|
+
size_t readSize = (fileSize < kBufSize) ? (size_t)fileSize : kBufSize;
|
632
|
+
RINOK(_stream->Seek(fileSize - readSize, STREAM_SEEK_SET, NULL));
|
633
|
+
RINOK(ReadStream(_stream, buf, &readSize));
|
634
|
+
size_t i = readSize;
|
635
|
+
for (;;)
|
586
636
|
{
|
587
|
-
|
637
|
+
const size_t kSecSizeMin = 1 << 8;
|
638
|
+
if (i < kSecSizeMin)
|
588
639
|
return S_FALSE;
|
589
|
-
|
590
|
-
|
591
|
-
if (bufSize > fileSize)
|
592
|
-
return S_FALSE;
|
593
|
-
RINOK(_stream->Seek(-bufSize, STREAM_SEEK_END, NULL));
|
594
|
-
RINOK(ReadStream_FALSE(_stream, buf, bufSize));
|
640
|
+
i -= kSecSizeMin;
|
641
|
+
SecLogSize = (readSize - i < ((size_t)1 << 11)) ? 8 : 11;
|
595
642
|
CTag tag;
|
596
|
-
if (tag.Parse(buf,
|
643
|
+
if (tag.Parse(buf + i, (1 << SecLogSize)) == S_OK)
|
597
644
|
if (tag.Id == DESC_TYPE_AnchorVolPtr)
|
598
645
|
break;
|
599
646
|
}
|
600
|
-
|
601
|
-
|
647
|
+
PhySize = fileSize;
|
648
|
+
CExtent extentVDS;
|
649
|
+
extentVDS.Parse(buf + i + 16);
|
650
|
+
*/
|
651
|
+
|
652
|
+
const size_t kBufSize = 1 << 11;
|
653
|
+
Byte buf[kBufSize];
|
654
|
+
|
655
|
+
for (SecLogSize = 11;; SecLogSize -= 3)
|
656
|
+
{
|
657
|
+
if (SecLogSize < 8)
|
658
|
+
return S_FALSE;
|
659
|
+
UInt32 offset = (UInt32)256 << SecLogSize;
|
660
|
+
if (offset >= fileSize)
|
661
|
+
continue;
|
662
|
+
RINOK(_stream->Seek(offset, STREAM_SEEK_SET, NULL));
|
663
|
+
const size_t bufSize = (size_t)1 << SecLogSize;
|
664
|
+
size_t readSize = bufSize;
|
665
|
+
RINOK(ReadStream(_stream, buf, &readSize));
|
666
|
+
if (readSize == bufSize)
|
667
|
+
{
|
668
|
+
CTag tag;
|
669
|
+
if (tag.Parse(buf, readSize) == S_OK)
|
670
|
+
if (tag.Id == DESC_TYPE_AnchorVolPtr)
|
671
|
+
break;
|
672
|
+
}
|
673
|
+
}
|
674
|
+
|
675
|
+
PhySize = (UInt32)(256 + 1) << SecLogSize;
|
676
|
+
IsArc = true;
|
602
677
|
|
603
678
|
CExtent extentVDS;
|
604
679
|
extentVDS.Parse(buf + 16);
|
680
|
+
{
|
681
|
+
CExtent extentVDS2;
|
682
|
+
extentVDS2.Parse(buf + 24);
|
683
|
+
UpdatePhySize(((UInt64)extentVDS.Pos << SecLogSize) + extentVDS.Len);
|
684
|
+
UpdatePhySize(((UInt64)extentVDS2.Pos << SecLogSize) + extentVDS2.Len);
|
685
|
+
}
|
605
686
|
|
606
|
-
for (UInt32 location =
|
687
|
+
for (UInt32 location = 0; ; location++)
|
607
688
|
{
|
608
|
-
size_t bufSize = 1 << SecLogSize;
|
609
|
-
|
610
|
-
|
611
|
-
|
689
|
+
const size_t bufSize = (size_t)1 << SecLogSize;
|
690
|
+
if (((UInt64)(location + 1) << SecLogSize) > extentVDS.Len)
|
691
|
+
return S_FALSE;
|
692
|
+
|
693
|
+
UInt64 offs = (UInt64)(extentVDS.Pos + location) << SecLogSize;
|
694
|
+
RINOK(_stream->Seek(offs, STREAM_SEEK_SET, NULL));
|
695
|
+
HRESULT res = ReadStream_FALSE(_stream, buf, bufSize);
|
696
|
+
if (res == S_FALSE && offs + bufSize > FileSize)
|
697
|
+
UnexpectedEnd = true;
|
698
|
+
RINOK(res);
|
699
|
+
|
700
|
+
|
612
701
|
CTag tag;
|
613
|
-
|
702
|
+
{
|
703
|
+
const size_t pos = 0;
|
704
|
+
RINOK(tag.Parse(buf + pos, bufSize - pos));
|
705
|
+
}
|
614
706
|
if (tag.Id == DESC_TYPE_Terminating)
|
615
707
|
break;
|
708
|
+
|
616
709
|
if (tag.Id == DESC_TYPE_Partition)
|
617
710
|
{
|
711
|
+
// Partition Descriptor
|
712
|
+
// ECMA 167 3/10.5
|
713
|
+
// UDF / 2.2.14
|
714
|
+
|
618
715
|
if (Partitions.Size() >= kNumPartitionsMax)
|
619
716
|
return S_FALSE;
|
620
717
|
CPartition partition;
|
@@ -632,10 +729,15 @@ HRESULT CInArchive::Open2()
|
|
632
729
|
// partition.ImplId.Parse(buf + 196);
|
633
730
|
// memcpy(partition.ImplUse, buf + 228, sizeof(partition.ImplUse));
|
634
731
|
|
732
|
+
PRF(printf("\nPartition number = %2d pos = %d len = %d", partition.Number, partition.Pos, partition.Len));
|
635
733
|
Partitions.Add(partition);
|
636
734
|
}
|
637
735
|
else if (tag.Id == DESC_TYPE_LogicalVol)
|
638
736
|
{
|
737
|
+
/* Logical Volume Descriptor
|
738
|
+
ECMA 3/10.6
|
739
|
+
UDF 2.60 2.2.4 */
|
740
|
+
|
639
741
|
if (LogVols.Size() >= kNumLogVolumesMax)
|
640
742
|
return S_FALSE;
|
641
743
|
CLogVol vol;
|
@@ -648,6 +750,8 @@ HRESULT CInArchive::Open2()
|
|
648
750
|
|
649
751
|
// memcpy(vol.ContentsUse, buf + 248, sizeof(vol.ContentsUse));
|
650
752
|
vol.FileSetLocation.Parse(buf + 248);
|
753
|
+
/* the extent in which the first File Set Descriptor Sequence
|
754
|
+
of the logical volume is recorded */
|
651
755
|
|
652
756
|
// UInt32 mapTableLength = Get32(buf + 264);
|
653
757
|
UInt32 numPartitionMaps = Get32(buf + 268);
|
@@ -655,6 +759,8 @@ HRESULT CInArchive::Open2()
|
|
655
759
|
return S_FALSE;
|
656
760
|
// vol.ImplId.Parse(buf + 272);
|
657
761
|
// memcpy(vol.ImplUse, buf + 128, sizeof(vol.ImplUse));
|
762
|
+
|
763
|
+
PRF(printf("\nLogicalVol numPartitionMaps = %2d", numPartitionMaps));
|
658
764
|
size_t pos = 440;
|
659
765
|
for (UInt32 i = 0; i < numPartitionMaps; i++)
|
660
766
|
{
|
@@ -671,10 +777,33 @@ HRESULT CInArchive::Open2()
|
|
671
777
|
// memcpy(pm.Data, buf + pos + 2, pm.Length - 2);
|
672
778
|
if (pm.Type == 1)
|
673
779
|
{
|
674
|
-
if (
|
780
|
+
if (len != 6) // < 6
|
675
781
|
return S_FALSE;
|
676
782
|
// pm.VolSeqNumber = Get16(buf + pos + 2);
|
677
783
|
pm.PartitionNumber = Get16(buf + pos + 4);
|
784
|
+
PRF(printf("\nPartitionMap type 1 PartitionNumber = %2d", pm.PartitionNumber));
|
785
|
+
}
|
786
|
+
else if (pm.Type == 2)
|
787
|
+
{
|
788
|
+
if (len != 64)
|
789
|
+
return S_FALSE;
|
790
|
+
/* ECMA 10.7.3 / Type 2 Partition Map
|
791
|
+
62 bytes: Partition Identifier. */
|
792
|
+
|
793
|
+
/* UDF 2.6
|
794
|
+
2.2.8 Virtual Partition Map
|
795
|
+
This is an extension of ECMA 167 to expand its scope to include
|
796
|
+
sequentially written media (eg. CD-R). This extension is for a
|
797
|
+
Partition Map entry to describe a virtual space. */
|
798
|
+
|
799
|
+
// It's not implemented still.
|
800
|
+
if (Get16(buf + pos + 2) != 0)
|
801
|
+
return S_FALSE;
|
802
|
+
// pm.VolSeqNumber = Get16(buf + pos + 36);
|
803
|
+
pm.PartitionNumber = Get16(buf + pos + 38);
|
804
|
+
PRF(printf("\nPartitionMap type 2 PartitionNumber = %2d", pm.PartitionNumber));
|
805
|
+
// Unsupported = true;
|
806
|
+
return S_FALSE;
|
678
807
|
}
|
679
808
|
else
|
680
809
|
return S_FALSE;
|
@@ -687,21 +816,26 @@ HRESULT CInArchive::Open2()
|
|
687
816
|
|
688
817
|
UInt64 totalSize = 0;
|
689
818
|
|
690
|
-
|
819
|
+
unsigned volIndex;
|
691
820
|
for (volIndex = 0; volIndex < LogVols.Size(); volIndex++)
|
692
821
|
{
|
693
822
|
CLogVol &vol = LogVols[volIndex];
|
694
|
-
|
823
|
+
FOR_VECTOR (pmIndex, vol.PartitionMaps)
|
695
824
|
{
|
696
825
|
CPartitionMap &pm = vol.PartitionMaps[pmIndex];
|
697
|
-
|
826
|
+
unsigned i;
|
698
827
|
for (i = 0; i < Partitions.Size(); i++)
|
699
828
|
{
|
700
829
|
CPartition &part = Partitions[i];
|
701
830
|
if (part.Number == pm.PartitionNumber)
|
702
831
|
{
|
703
832
|
if (part.VolIndex >= 0)
|
704
|
-
|
833
|
+
{
|
834
|
+
// it's for 2.60. Fix it
|
835
|
+
if (part.VolIndex != (int)volIndex)
|
836
|
+
return S_FALSE;
|
837
|
+
// return S_FALSE;
|
838
|
+
}
|
705
839
|
pm.PartitionIndex = i;
|
706
840
|
part.VolIndex = volIndex;
|
707
841
|
|
@@ -716,27 +850,39 @@ HRESULT CInArchive::Open2()
|
|
716
850
|
|
717
851
|
RINOK(_progress->SetTotal(totalSize));
|
718
852
|
|
853
|
+
PRF(printf("\n Read files"));
|
854
|
+
|
719
855
|
for (volIndex = 0; volIndex < LogVols.Size(); volIndex++)
|
720
856
|
{
|
721
857
|
CLogVol &vol = LogVols[volIndex];
|
722
858
|
|
859
|
+
PRF(printf("\nLogVol %2d", volIndex));
|
860
|
+
|
723
861
|
CLongAllocDesc nextExtent = vol.FileSetLocation;
|
724
862
|
// while (nextExtent.ExtentLen != 0)
|
725
863
|
// for (int i = 0; i < 1; i++)
|
726
864
|
{
|
727
865
|
if (nextExtent.GetLen() < 512)
|
728
866
|
return S_FALSE;
|
729
|
-
CByteBuffer
|
730
|
-
|
731
|
-
|
732
|
-
const Byte *p = buf;
|
867
|
+
CByteBuffer buf2(nextExtent.GetLen());
|
868
|
+
RINOK(Read(volIndex, nextExtent, buf2));
|
869
|
+
const Byte *p = buf2;
|
733
870
|
size_t size = nextExtent.GetLen();
|
734
871
|
|
735
872
|
CTag tag;
|
736
873
|
RINOK(tag.Parse(p, size));
|
874
|
+
|
875
|
+
if (tag.Id == DESC_TYPE_ExtendedFile)
|
876
|
+
{
|
877
|
+
// ECMA 4 / 14.17
|
878
|
+
// 2.60 ??
|
879
|
+
return S_FALSE;
|
880
|
+
}
|
881
|
+
|
737
882
|
if (tag.Id != DESC_TYPE_FileSet)
|
738
883
|
return S_FALSE;
|
739
884
|
|
885
|
+
PRF(printf("\n FileSet", volIndex));
|
740
886
|
CFileSet fs;
|
741
887
|
fs.RecodringTime.Parse(p + 16);
|
742
888
|
// fs.InterchangeLevel = Get16(p + 18);
|
@@ -758,32 +904,151 @@ HRESULT CInArchive::Open2()
|
|
758
904
|
// nextExtent.Parse(p + 448);
|
759
905
|
}
|
760
906
|
|
761
|
-
|
907
|
+
FOR_VECTOR (fsIndex, vol.FileSets)
|
762
908
|
{
|
763
909
|
CFileSet &fs = vol.FileSets[fsIndex];
|
764
|
-
|
765
|
-
Files.
|
766
|
-
RINOK(ReadFileItem(volIndex, fsIndex, fs.RootDirICB,
|
767
|
-
RINOK(FillRefs(fs, fileIndex, -1,
|
910
|
+
unsigned fileIndex = Files.Size();
|
911
|
+
Files.AddNew();
|
912
|
+
RINOK(ReadFileItem(volIndex, fsIndex, fs.RootDirICB, kNumRecursionLevelsMax));
|
913
|
+
RINOK(FillRefs(fs, fileIndex, -1, kNumRecursionLevelsMax));
|
914
|
+
}
|
915
|
+
}
|
916
|
+
|
917
|
+
|
918
|
+
for (volIndex = 0; volIndex < LogVols.Size(); volIndex++)
|
919
|
+
{
|
920
|
+
const CLogVol &vol = LogVols[volIndex];
|
921
|
+
// bool showFileSetName = (vol.FileSets.Size() > 1);
|
922
|
+
FOR_VECTOR (fsIndex, vol.FileSets)
|
923
|
+
{
|
924
|
+
const CFileSet &fs = vol.FileSets[fsIndex];
|
925
|
+
for (unsigned i =
|
926
|
+
// ((showVolName || showFileSetName) ? 0 : 1)
|
927
|
+
0; i < fs.Refs.Size(); i++)
|
928
|
+
{
|
929
|
+
const CRef &ref = vol.FileSets[fsIndex].Refs[i];
|
930
|
+
const CFile &file = Files[ref.FileIndex];
|
931
|
+
const CItem &item = Items[file.ItemIndex];
|
932
|
+
UInt64 size = item.Size;
|
933
|
+
|
934
|
+
if (!item.IsRecAndAlloc() || !item.CheckChunkSizes() || !CheckItemExtents(volIndex, item))
|
935
|
+
continue;
|
936
|
+
|
937
|
+
FOR_VECTOR (extentIndex, item.Extents)
|
938
|
+
{
|
939
|
+
const CMyExtent &extent = item.Extents[extentIndex];
|
940
|
+
UInt32 len = extent.GetLen();
|
941
|
+
if (len == 0)
|
942
|
+
continue;
|
943
|
+
if (size < len)
|
944
|
+
break;
|
945
|
+
|
946
|
+
int partitionIndex = vol.PartitionMaps[extent.PartitionRef].PartitionIndex;
|
947
|
+
UInt32 logBlockNumber = extent.Pos;
|
948
|
+
const CPartition &partition = Partitions[partitionIndex];
|
949
|
+
UInt64 offset = ((UInt64)partition.Pos << SecLogSize) +
|
950
|
+
(UInt64)logBlockNumber * vol.BlockSize;
|
951
|
+
UpdatePhySize(offset + len);
|
952
|
+
}
|
953
|
+
}
|
768
954
|
}
|
769
955
|
}
|
770
956
|
|
957
|
+
{
|
958
|
+
const UInt32 secMask = ((UInt32)1 << SecLogSize) - 1;
|
959
|
+
PhySize = (PhySize + secMask) & ~(UInt64)secMask;
|
960
|
+
}
|
961
|
+
|
962
|
+
NoEndAnchor = true;
|
963
|
+
|
964
|
+
if (PhySize < fileSize)
|
965
|
+
{
|
966
|
+
UInt64 rem = fileSize - PhySize;
|
967
|
+
const size_t secSize = (size_t)1 << SecLogSize;
|
968
|
+
|
969
|
+
RINOK(_stream->Seek(PhySize, STREAM_SEEK_SET, NULL));
|
970
|
+
|
971
|
+
// some UDF images contain ZEROs before "Anchor Volume Descriptor Pointer" at the end
|
972
|
+
|
973
|
+
for (unsigned sec = 0; sec < 1024; sec++)
|
974
|
+
{
|
975
|
+
if (rem == 0)
|
976
|
+
break;
|
977
|
+
|
978
|
+
size_t readSize = secSize;
|
979
|
+
if (readSize > rem)
|
980
|
+
readSize = (size_t)rem;
|
981
|
+
|
982
|
+
RINOK(ReadStream(_stream, buf, &readSize));
|
983
|
+
|
984
|
+
if (readSize == 0)
|
985
|
+
break;
|
986
|
+
|
987
|
+
if (readSize == secSize && NoEndAnchor)
|
988
|
+
{
|
989
|
+
CTag tag;
|
990
|
+
if (tag.Parse(buf, readSize) == S_OK &&
|
991
|
+
tag.Id == DESC_TYPE_AnchorVolPtr)
|
992
|
+
{
|
993
|
+
NoEndAnchor = false;
|
994
|
+
rem -= readSize;
|
995
|
+
PhySize = fileSize - rem;
|
996
|
+
continue;
|
997
|
+
}
|
998
|
+
}
|
999
|
+
|
1000
|
+
size_t i;
|
1001
|
+
for (i = 0; i < readSize && buf[i] == 0; i++);
|
1002
|
+
if (i != readSize)
|
1003
|
+
break;
|
1004
|
+
rem -= readSize;
|
1005
|
+
}
|
1006
|
+
|
1007
|
+
if (rem == 0)
|
1008
|
+
PhySize = fileSize;
|
1009
|
+
}
|
1010
|
+
|
771
1011
|
return S_OK;
|
772
1012
|
}
|
773
1013
|
|
1014
|
+
|
774
1015
|
HRESULT CInArchive::Open(IInStream *inStream, CProgressVirt *progress)
|
775
1016
|
{
|
776
1017
|
_progress = progress;
|
777
1018
|
_stream = inStream;
|
1019
|
+
HRESULT res = Open2();
|
1020
|
+
if (res == S_FALSE && IsArc && !UnexpectedEnd)
|
1021
|
+
Unsupported = true;
|
1022
|
+
return res;
|
1023
|
+
|
1024
|
+
/*
|
778
1025
|
HRESULT res;
|
779
|
-
try
|
780
|
-
|
1026
|
+
try
|
1027
|
+
{
|
1028
|
+
res = Open2();
|
1029
|
+
}
|
1030
|
+
catch(...)
|
1031
|
+
{
|
1032
|
+
// Clear();
|
1033
|
+
// res = S_FALSE;
|
1034
|
+
_stream.Release();
|
1035
|
+
throw;
|
1036
|
+
}
|
781
1037
|
_stream.Release();
|
782
1038
|
return res;
|
1039
|
+
*/
|
783
1040
|
}
|
784
1041
|
|
785
1042
|
void CInArchive::Clear()
|
786
1043
|
{
|
1044
|
+
IsArc = false;
|
1045
|
+
Unsupported = false;
|
1046
|
+
UnexpectedEnd = false;
|
1047
|
+
NoEndAnchor = false;
|
1048
|
+
|
1049
|
+
PhySize = 0;
|
1050
|
+
FileSize = 0;
|
1051
|
+
|
787
1052
|
Partitions.Clear();
|
788
1053
|
LogVols.Clear();
|
789
1054
|
Items.Clear();
|
@@ -798,10 +1063,10 @@ void CInArchive::Clear()
|
|
798
1063
|
UString CInArchive::GetComment() const
|
799
1064
|
{
|
800
1065
|
UString res;
|
801
|
-
|
1066
|
+
FOR_VECTOR (i, LogVols)
|
802
1067
|
{
|
803
|
-
if (i
|
804
|
-
res
|
1068
|
+
if (i != 0)
|
1069
|
+
res.Add_Space();
|
805
1070
|
res += LogVols[i].GetName();
|
806
1071
|
}
|
807
1072
|
return res;
|
@@ -828,7 +1093,7 @@ static void UpdateWithName(UString &res, const UString &addString)
|
|
828
1093
|
if (res.IsEmpty())
|
829
1094
|
res = addString;
|
830
1095
|
else
|
831
|
-
res
|
1096
|
+
res.Insert(0, addString + WCHAR_PATH_SEPARATOR);
|
832
1097
|
}
|
833
1098
|
|
834
1099
|
UString CInArchive::GetItemPath(int volIndex, int fsIndex, int refIndex,
|
@@ -852,7 +1117,7 @@ UString CInArchive::GetItemPath(int volIndex, int fsIndex, int refIndex,
|
|
852
1117
|
if (showFsName)
|
853
1118
|
{
|
854
1119
|
wchar_t s[32];
|
855
|
-
|
1120
|
+
ConvertUInt32ToString(fsIndex, s);
|
856
1121
|
UString newName = L"File Set ";
|
857
1122
|
newName += s;
|
858
1123
|
UpdateWithName(name, newName);
|
@@ -861,7 +1126,7 @@ UString CInArchive::GetItemPath(int volIndex, int fsIndex, int refIndex,
|
|
861
1126
|
if (showVolName)
|
862
1127
|
{
|
863
1128
|
wchar_t s[32];
|
864
|
-
|
1129
|
+
ConvertUInt32ToString(volIndex, s);
|
865
1130
|
UString newName = s;
|
866
1131
|
UString newName2 = vol.GetName();
|
867
1132
|
if (newName2.IsEmpty())
|