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
@@ -4,588 +4,736 @@
|
|
4
4
|
#define __COMMON_STRING_H
|
5
5
|
|
6
6
|
#include <string.h>
|
7
|
-
// #include <wchar.h>
|
8
7
|
|
8
|
+
#ifdef ENV_HAVE_WCHAR__H
|
9
|
+
#include <wchar.h>
|
10
|
+
#endif
|
11
|
+
|
12
|
+
#ifdef ENV_HAVE_WCTYPE_H
|
13
|
+
#include <wctype.h>
|
14
|
+
#else
|
15
|
+
#define towupper(c) (c) // FIXME
|
16
|
+
int wcscmp(const wchar_t *s1, const wchar_t *s2);
|
17
|
+
wchar_t * wmemcpy(wchar_t *dest, const wchar_t *src, size_t num);
|
18
|
+
wchar_t * wcsstr(const wchar_t *wcs1, const wchar_t *wcs2);
|
19
|
+
#endif
|
20
|
+
|
21
|
+
#include "MyWindows.h"
|
22
|
+
#include "MyTypes.h"
|
9
23
|
#include "MyVector.h"
|
10
24
|
|
11
|
-
|
12
|
-
|
25
|
+
#ifdef _WIN32
|
26
|
+
#define IS_PATH_SEPAR(c) ((c) == '\\' || (c) == '/')
|
27
|
+
#else
|
28
|
+
#define IS_PATH_SEPAR(c) ((c) == CHAR_PATH_SEPARATOR)
|
29
|
+
#endif
|
30
|
+
|
31
|
+
inline bool IsPathSepar(char c) { return IS_PATH_SEPAR(c); }
|
32
|
+
inline bool IsPathSepar(wchar_t c) { return IS_PATH_SEPAR(c); }
|
13
33
|
|
14
|
-
|
15
|
-
inline int MyStringLen(const T *s)
|
34
|
+
inline unsigned MyStringLen(const char *s)
|
16
35
|
{
|
17
|
-
|
18
|
-
for (i = 0; s[i] !=
|
36
|
+
unsigned i;
|
37
|
+
for (i = 0; s[i] != 0; i++);
|
19
38
|
return i;
|
20
39
|
}
|
21
40
|
|
22
|
-
|
23
|
-
inline T * MyStringCopy(T *dest, const T *src)
|
41
|
+
inline void MyStringCopy(char *dest, const char *src)
|
24
42
|
{
|
25
|
-
T *destStart = dest;
|
26
43
|
while ((*dest++ = *src++) != 0);
|
27
|
-
return destStart;
|
28
44
|
}
|
29
45
|
|
30
|
-
inline
|
31
|
-
|
32
|
-
|
33
|
-
{
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
{ return CharNextA(p); }
|
55
|
-
inline const char* MyStringGetNextCharPointer(const char *p)
|
56
|
-
{ return CharNextA(p); }
|
57
|
-
|
58
|
-
//////////////////////////////////////
|
59
|
-
// Compare
|
46
|
+
inline char *MyStpCpy(char *dest, const char *src)
|
47
|
+
{
|
48
|
+
for (;;)
|
49
|
+
{
|
50
|
+
char c = *src;
|
51
|
+
*dest = c;
|
52
|
+
if (c == 0)
|
53
|
+
return dest;
|
54
|
+
src++;
|
55
|
+
dest++;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
inline unsigned MyStringLen(const wchar_t *s)
|
60
|
+
{
|
61
|
+
unsigned i;
|
62
|
+
for (i = 0; s[i] != 0; i++);
|
63
|
+
return i;
|
64
|
+
}
|
65
|
+
|
66
|
+
inline void MyStringCopy(wchar_t *dest, const wchar_t *src)
|
67
|
+
{
|
68
|
+
while ((*dest++ = *src++) != 0);
|
69
|
+
}
|
60
70
|
|
61
71
|
/*
|
62
|
-
|
63
|
-
|
64
|
-
|
72
|
+
inline wchar_t *MyWcpCpy(wchar_t *dest, const wchar_t *src)
|
73
|
+
{
|
74
|
+
for (;;)
|
75
|
+
{
|
76
|
+
wchar_t c = *src;
|
77
|
+
*dest = c;
|
78
|
+
if (c == 0)
|
79
|
+
return dest;
|
80
|
+
src++;
|
81
|
+
dest++;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
*/
|
85
|
+
|
86
|
+
int FindCharPosInString(const char *s, char c) throw();
|
87
|
+
int FindCharPosInString(const wchar_t *s, wchar_t c) throw();
|
88
|
+
|
89
|
+
#ifdef _WIN32
|
90
|
+
#ifndef _UNICODE
|
91
|
+
#define STRING_UNICODE_THROW
|
92
|
+
#endif
|
93
|
+
#endif
|
94
|
+
|
95
|
+
#ifndef STRING_UNICODE_THROW
|
96
|
+
#define STRING_UNICODE_THROW throw()
|
65
97
|
#endif
|
66
|
-
|
67
|
-
|
98
|
+
|
99
|
+
/*
|
100
|
+
inline char MyCharUpper_Ascii(char c)
|
101
|
+
{
|
102
|
+
if (c >= 'a' && c <= 'z')
|
103
|
+
return (char)(c - 0x20);
|
104
|
+
return c;
|
105
|
+
}
|
106
|
+
inline wchar_t MyCharUpper_Ascii(wchar_t c)
|
107
|
+
{
|
108
|
+
if (c >= 'a' && c <= 'z')
|
109
|
+
return (wchar_t)(c - 0x20);
|
110
|
+
return c;
|
111
|
+
}
|
68
112
|
*/
|
69
113
|
|
70
|
-
|
71
|
-
|
114
|
+
inline char MyCharLower_Ascii(char c)
|
115
|
+
{
|
116
|
+
if (c >= 'A' && c <= 'Z')
|
117
|
+
return (char)((unsigned char)c + 0x20);
|
118
|
+
return c;
|
119
|
+
}
|
72
120
|
|
73
|
-
|
74
|
-
|
121
|
+
inline wchar_t MyCharLower_Ascii(wchar_t c)
|
122
|
+
{
|
123
|
+
if (c >= 'A' && c <= 'Z')
|
124
|
+
return (wchar_t)(c + 0x20);
|
125
|
+
return c;
|
126
|
+
}
|
75
127
|
|
76
|
-
|
77
|
-
|
128
|
+
wchar_t MyCharUpper_WIN(wchar_t c) throw();
|
129
|
+
|
130
|
+
inline wchar_t MyCharUpper(wchar_t c) throw()
|
78
131
|
{
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
if (charSet.Find(*p) >= 0)
|
93
|
-
{
|
94
|
-
if (pLast == NULL)
|
95
|
-
pLast = p;
|
96
|
-
}
|
97
|
-
else
|
98
|
-
pLast = NULL;
|
99
|
-
p = GetNextCharPointer(p);
|
100
|
-
}
|
101
|
-
if (pLast != NULL)
|
102
|
-
{
|
103
|
-
int i = (int)(pLast - _chars);
|
104
|
-
Delete(i, _length - i);
|
105
|
-
}
|
132
|
+
if (c < 'a') return c;
|
133
|
+
if (c <= 'z') return (wchar_t)(c - 0x20);
|
134
|
+
if (c <= 0x7F) return c;
|
135
|
+
#ifdef _WIN32
|
136
|
+
#ifdef _UNICODE
|
137
|
+
return (wchar_t)(unsigned)(UINT_PTR)CharUpperW((LPWSTR)(UINT_PTR)(unsigned)c);
|
138
|
+
#else
|
139
|
+
return (wchar_t)MyCharUpper_WIN(c);
|
140
|
+
#endif
|
141
|
+
#else
|
142
|
+
return (wchar_t)towupper(c);
|
143
|
+
#endif
|
144
|
+
}
|
106
145
|
|
107
|
-
|
108
|
-
|
109
|
-
{
|
110
|
-
memmove(_chars + destIndex, _chars + srcIndex,
|
111
|
-
sizeof(T) * (_length - srcIndex + 1));
|
112
|
-
}
|
113
|
-
|
114
|
-
void InsertSpace(int &index, int size)
|
115
|
-
{
|
116
|
-
CorrectIndex(index);
|
117
|
-
GrowLength(size);
|
118
|
-
MoveItems(index + size, index);
|
119
|
-
}
|
146
|
+
/*
|
147
|
+
wchar_t MyCharLower_WIN(wchar_t c) throw();
|
120
148
|
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
int _length;
|
132
|
-
int _capacity;
|
133
|
-
|
134
|
-
void SetCapacity(int newCapacity)
|
135
|
-
{
|
136
|
-
int realCapacity = newCapacity + 1;
|
137
|
-
if (realCapacity == _capacity)
|
138
|
-
return;
|
139
|
-
/*
|
140
|
-
const int kMaxStringSize = 0x20000000;
|
141
|
-
#ifndef _WIN32_WCE
|
142
|
-
if (newCapacity > kMaxStringSize || newCapacity < _length)
|
143
|
-
throw 1052337;
|
149
|
+
inline wchar_t MyCharLower(wchar_t c) throw()
|
150
|
+
{
|
151
|
+
if (c < 'A') return c;
|
152
|
+
if (c <= 'Z') return (wchar_t)(c + 0x20);
|
153
|
+
if (c <= 0x7F) return c;
|
154
|
+
#ifdef _WIN32
|
155
|
+
#ifdef _UNICODE
|
156
|
+
return (wchar_t)(unsigned)(UINT_PTR)CharLowerW((LPWSTR)(UINT_PTR)(unsigned)c);
|
157
|
+
#else
|
158
|
+
return (wchar_t)MyCharLower_WIN(c);
|
144
159
|
#endif
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
newBuffer[i] = _chars[i];
|
151
|
-
delete []_chars;
|
152
|
-
}
|
153
|
-
_chars = newBuffer;
|
154
|
-
_chars[_length] = 0;
|
155
|
-
_capacity = realCapacity;
|
156
|
-
}
|
160
|
+
#else
|
161
|
+
return (wchar_t)tolower(c);
|
162
|
+
#endif
|
163
|
+
}
|
164
|
+
*/
|
157
165
|
|
158
|
-
|
159
|
-
|
160
|
-
int freeSize = _capacity - _length - 1;
|
161
|
-
if (n <= freeSize)
|
162
|
-
return;
|
163
|
-
int delta;
|
164
|
-
if (_capacity > 64)
|
165
|
-
delta = _capacity / 2;
|
166
|
-
else if (_capacity > 8)
|
167
|
-
delta = 16;
|
168
|
-
else
|
169
|
-
delta = 4;
|
170
|
-
if (freeSize + delta < n)
|
171
|
-
delta = n - freeSize;
|
172
|
-
SetCapacity(_capacity + delta);
|
173
|
-
}
|
166
|
+
// char *MyStringUpper(char *s) throw();
|
167
|
+
// char *MyStringLower(char *s) throw();
|
174
168
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
169
|
+
// void MyStringUpper_Ascii(wchar_t *s) throw();
|
170
|
+
void MyStringLower_Ascii(char *s) throw();
|
171
|
+
void MyStringLower_Ascii(wchar_t *s) throw();
|
172
|
+
// wchar_t *MyStringUpper(wchar_t *s) STRING_UNICODE_THROW;
|
173
|
+
// wchar_t *MyStringLower(wchar_t *s) STRING_UNICODE_THROW;
|
180
174
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
}
|
190
|
-
CStringBase(const T *chars): _chars(0), _length(0), _capacity(0)
|
191
|
-
{
|
192
|
-
int length = MyStringLen(chars);
|
193
|
-
SetCapacity(length);
|
194
|
-
MyStringCopy(_chars, chars); // can be optimized by memove()
|
195
|
-
_length = length;
|
196
|
-
}
|
197
|
-
CStringBase(const CStringBase &s): _chars(0), _length(0), _capacity(0)
|
198
|
-
{
|
199
|
-
SetCapacity(s._length);
|
200
|
-
MyStringCopy(_chars, s._chars);
|
201
|
-
_length = s._length;
|
202
|
-
}
|
203
|
-
~CStringBase() { delete []_chars; }
|
175
|
+
bool StringsAreEqualNoCase(const wchar_t *s1, const wchar_t *s2) throw();
|
176
|
+
|
177
|
+
bool IsString1PrefixedByString2(const char *s1, const char *s2) throw();
|
178
|
+
bool IsString1PrefixedByString2(const wchar_t *s1, const wchar_t *s2) throw();
|
179
|
+
bool IsString1PrefixedByString2_NoCase(const wchar_t *s1, const wchar_t *s2) throw();
|
180
|
+
|
181
|
+
int MyStringCompareNoCase(const wchar_t *s1, const wchar_t *s2) throw();
|
182
|
+
// int MyStringCompareNoCase_N(const wchar_t *s1, const wchar_t *s2, unsigned num) throw();
|
204
183
|
|
205
|
-
|
184
|
+
// ---------- ASCII ----------
|
185
|
+
// char values in ASCII strings must be less then 128
|
186
|
+
bool StringsAreEqual_Ascii(const wchar_t *u, const char *a) throw();
|
187
|
+
bool StringsAreEqualNoCase_Ascii(const char *s1, const char *s2) throw();
|
188
|
+
bool StringsAreEqualNoCase_Ascii(const wchar_t *s1, const char *s2) throw();
|
189
|
+
bool StringsAreEqualNoCase_Ascii(const wchar_t *s1, const wchar_t *s2) throw();
|
206
190
|
|
207
|
-
|
191
|
+
#define MY_STRING_DELETE(_p_) delete []_p_;
|
192
|
+
// #define MY_STRING_DELETE(_p_) my_delete(_p_);
|
208
193
|
|
209
|
-
|
210
|
-
|
211
|
-
|
194
|
+
class AString
|
195
|
+
{
|
196
|
+
char *_chars;
|
197
|
+
unsigned _len;
|
198
|
+
unsigned _limit;
|
199
|
+
|
200
|
+
void MoveItems(unsigned dest, unsigned src)
|
212
201
|
{
|
213
|
-
|
214
|
-
|
202
|
+
memmove(_chars + dest, _chars + src, (size_t)(_len - src + 1) * sizeof(char));
|
203
|
+
}
|
204
|
+
|
205
|
+
void InsertSpace(unsigned &index, unsigned size);
|
206
|
+
|
207
|
+
void ReAlloc(unsigned newLimit);
|
208
|
+
void ReAlloc2(unsigned newLimit);
|
209
|
+
void SetStartLen(unsigned len);
|
210
|
+
void Grow_1();
|
211
|
+
void Grow(unsigned n);
|
212
|
+
|
213
|
+
// AString(unsigned num, const char *s);
|
214
|
+
AString(unsigned num, const AString &s);
|
215
|
+
AString(const AString &s, char c); // it's for String + char
|
216
|
+
AString(const char *s1, unsigned num1, const char *s2, unsigned num2);
|
217
|
+
|
218
|
+
friend AString operator+(const AString &s, char c) { return AString(s, c); } ;
|
219
|
+
// friend AString operator+(char c, const AString &s); // is not supported
|
220
|
+
|
221
|
+
friend AString operator+(const AString &s1, const AString &s2);
|
222
|
+
friend AString operator+(const AString &s1, const char *s2);
|
223
|
+
friend AString operator+(const char *s1, const AString &s2);
|
224
|
+
|
225
|
+
// ---------- forbidden functions ----------
|
226
|
+
AString &operator+=(wchar_t c);
|
227
|
+
AString &operator=(wchar_t c);
|
228
|
+
AString(wchar_t c);
|
229
|
+
void Find(wchar_t c) const;
|
230
|
+
void Find(wchar_t c, unsigned startIndex) const;
|
231
|
+
void ReverseFind(wchar_t c) const;
|
232
|
+
void InsertAtFront(wchar_t c);
|
233
|
+
void RemoveChar(wchar_t ch);
|
234
|
+
void Replace(wchar_t oldChar, wchar_t newChar);
|
235
|
+
|
236
|
+
public:
|
237
|
+
AString();
|
238
|
+
AString(char c);
|
239
|
+
AString(const char *s);
|
240
|
+
AString(const AString &s);
|
241
|
+
~AString() { MY_STRING_DELETE(_chars); }
|
242
|
+
|
243
|
+
unsigned Len() const { return _len; }
|
244
|
+
bool IsEmpty() const { return _len == 0; }
|
245
|
+
void Empty() { _len = 0; _chars[0] = 0; }
|
246
|
+
|
247
|
+
operator const char *() const { return _chars; }
|
248
|
+
const char *Ptr() const { return _chars; }
|
249
|
+
const char *Ptr(unsigned pos) const { return _chars + pos; }
|
250
|
+
const char *RightPtr(unsigned num) const { return _chars + _len - num; }
|
251
|
+
char Back() const { return _chars[_len - 1]; }
|
252
|
+
|
253
|
+
void ReplaceOneCharAtPos(unsigned pos, char c) { _chars[pos] = c; }
|
254
|
+
|
255
|
+
/* GetBuf(minLen): provides the buffer that can store
|
256
|
+
at least (minLen) characters and additional null terminator.
|
257
|
+
9.35: GetBuf doesn't preserve old characters and terminator */
|
258
|
+
char *GetBuf(unsigned minLen)
|
259
|
+
{
|
260
|
+
if (minLen > _limit)
|
261
|
+
ReAlloc2(minLen);
|
215
262
|
return _chars;
|
216
263
|
}
|
217
|
-
|
218
|
-
void ReleaseBuffer(int newLength)
|
264
|
+
char *GetBuf_SetEnd(unsigned minLen)
|
219
265
|
{
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
_chars[newLength] = 0;
|
227
|
-
_length = newLength;
|
266
|
+
if (minLen > _limit)
|
267
|
+
ReAlloc2(minLen);
|
268
|
+
char *chars = _chars;
|
269
|
+
chars[minLen] = 0;
|
270
|
+
_len = minLen;
|
271
|
+
return chars;
|
228
272
|
}
|
229
273
|
|
230
|
-
|
231
|
-
{
|
232
|
-
|
233
|
-
SetCapacity(1);
|
234
|
-
_chars[0] = c;
|
235
|
-
_chars[1] = 0;
|
236
|
-
_length = 1;
|
237
|
-
return *this;
|
238
|
-
}
|
239
|
-
CStringBase& operator=(const T *chars)
|
274
|
+
void ReleaseBuf_SetLen(unsigned newLen) { _len = newLen; }
|
275
|
+
void ReleaseBuf_SetEnd(unsigned newLen) { _len = newLen; _chars[newLen] = 0; }
|
276
|
+
void ReleaseBuf_CalcLen(unsigned maxLen)
|
240
277
|
{
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
MyStringCopy(_chars, chars);
|
245
|
-
_length = length;
|
246
|
-
return *this;
|
278
|
+
char *chars = _chars;
|
279
|
+
chars[maxLen] = 0;
|
280
|
+
_len = MyStringLen(chars);
|
247
281
|
}
|
248
|
-
|
282
|
+
|
283
|
+
AString &operator=(char c);
|
284
|
+
AString &operator=(const char *s);
|
285
|
+
AString &operator=(const AString &s);
|
286
|
+
void SetFromWStr_if_Ascii(const wchar_t *s);
|
287
|
+
// void SetFromBstr_if_Ascii(BSTR s);
|
288
|
+
|
289
|
+
AString &operator+=(char c)
|
249
290
|
{
|
250
|
-
if (
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
291
|
+
if (_limit == _len)
|
292
|
+
Grow_1();
|
293
|
+
unsigned len = _len;
|
294
|
+
char *chars = _chars;
|
295
|
+
chars[len++] = c;
|
296
|
+
chars[len] = 0;
|
297
|
+
_len = len;
|
256
298
|
return *this;
|
257
299
|
}
|
258
300
|
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
301
|
+
void Add_Space();
|
302
|
+
void Add_Space_if_NotEmpty();
|
303
|
+
void Add_LF();
|
304
|
+
void Add_PathSepar() { operator+=(CHAR_PATH_SEPARATOR); }
|
305
|
+
|
306
|
+
AString &operator+=(const char *s);
|
307
|
+
AString &operator+=(const AString &s);
|
308
|
+
void AddAscii(const char *s) { operator+=(s); }
|
309
|
+
|
310
|
+
void SetFrom(const char *s, unsigned len); // no check
|
311
|
+
void SetFrom_CalcLen(const char *s, unsigned len);
|
312
|
+
// void SetFromAscii(const char *s) { operator+=(s); }
|
313
|
+
|
314
|
+
AString Mid(unsigned startIndex, unsigned count) const { return AString(count, _chars + startIndex); }
|
315
|
+
AString Left(unsigned count) const { return AString(count, *this); }
|
316
|
+
|
317
|
+
// void MakeUpper() { MyStringUpper(_chars); }
|
318
|
+
// void MakeLower() { MyStringLower(_chars); }
|
319
|
+
void MakeLower_Ascii() { MyStringLower_Ascii(_chars); }
|
320
|
+
|
321
|
+
|
322
|
+
bool IsEqualTo(const char *s) const { return strcmp(_chars, s) == 0; }
|
323
|
+
bool IsEqualTo_Ascii_NoCase(const char *s) const { return StringsAreEqualNoCase_Ascii(_chars, s); }
|
324
|
+
// int Compare(const char *s) const { return MyStringCompare(_chars, s); }
|
325
|
+
// int Compare(const AString &s) const { return MyStringCompare(_chars, s._chars); }
|
326
|
+
// int CompareNoCase(const char *s) const { return MyStringCompareNoCase(_chars, s); }
|
327
|
+
// int CompareNoCase(const AString &s) const { return MyStringCompareNoCase(_chars, s._chars); }
|
328
|
+
bool IsPrefixedBy(const char *s) const { return IsString1PrefixedByString2(_chars, s); }
|
329
|
+
bool IsPrefixedBy_Ascii_NoCase(const char *s) const throw();
|
330
|
+
|
331
|
+
bool IsAscii() const
|
332
|
+
{
|
333
|
+
unsigned len = Len();
|
334
|
+
const char *s = _chars;
|
335
|
+
for (unsigned i = 0; i < len; i++)
|
336
|
+
if ((unsigned char)s[i] >= 0x80)
|
337
|
+
return false;
|
338
|
+
return true;
|
339
|
+
}
|
340
|
+
int Find(char c) const { return FindCharPosInString(_chars, c); }
|
341
|
+
int Find(char c, unsigned startIndex) const
|
342
|
+
{
|
343
|
+
int pos = FindCharPosInString(_chars + startIndex, c);
|
344
|
+
return pos < 0 ? -1 : (int)startIndex + pos;
|
265
345
|
}
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
MyStringCopy(_chars + _length, s);
|
271
|
-
_length += len;
|
272
|
-
return *this;
|
273
|
-
}
|
274
|
-
CStringBase& operator+=(const CStringBase &s)
|
275
|
-
{
|
276
|
-
GrowLength(s._length);
|
277
|
-
MyStringCopy(_chars + _length, s._chars);
|
278
|
-
_length += s._length;
|
279
|
-
return *this;
|
280
|
-
}
|
281
|
-
void Empty()
|
282
|
-
{
|
283
|
-
_length = 0;
|
284
|
-
_chars[0] = 0;
|
285
|
-
}
|
286
|
-
int Length() const { return _length; }
|
287
|
-
bool IsEmpty() const { return (_length == 0); }
|
346
|
+
|
347
|
+
int ReverseFind(char c) const throw();
|
348
|
+
int ReverseFind_Dot() const throw() { return ReverseFind('.'); }
|
349
|
+
int ReverseFind_PathSepar() const throw();
|
288
350
|
|
289
|
-
|
290
|
-
|
291
|
-
|
351
|
+
int Find(const char *s) const { return Find(s, 0); }
|
352
|
+
int Find(const char *s, unsigned startIndex) const throw();
|
353
|
+
|
354
|
+
void TrimLeft() throw();
|
355
|
+
void TrimRight() throw();
|
356
|
+
void Trim()
|
292
357
|
{
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
if (startIndex == 0 && startIndex + count == _length)
|
297
|
-
return *this;
|
298
|
-
|
299
|
-
CStringBase<T> result;
|
300
|
-
result.SetCapacity(count);
|
301
|
-
// MyStringNCopy(result._chars, _chars + startIndex, count);
|
302
|
-
for (int i = 0; i < count; i++)
|
303
|
-
result._chars[i] = _chars[startIndex + i];
|
304
|
-
result._chars[count] = 0;
|
305
|
-
result._length = count;
|
306
|
-
return result;
|
358
|
+
TrimRight();
|
359
|
+
TrimLeft();
|
307
360
|
}
|
308
|
-
|
309
|
-
|
310
|
-
|
361
|
+
|
362
|
+
void InsertAtFront(char c);
|
363
|
+
// void Insert(unsigned index, char c);
|
364
|
+
void Insert(unsigned index, const char *s);
|
365
|
+
void Insert(unsigned index, const AString &s);
|
366
|
+
|
367
|
+
void RemoveChar(char ch) throw();
|
368
|
+
|
369
|
+
void Replace(char oldChar, char newChar) throw();
|
370
|
+
void Replace(const AString &oldString, const AString &newString);
|
371
|
+
|
372
|
+
void Delete(unsigned index) throw();
|
373
|
+
void Delete(unsigned index, unsigned count) throw();
|
374
|
+
void DeleteFrontal(unsigned num) throw();
|
375
|
+
void DeleteBack() { _chars[--_len] = 0; }
|
376
|
+
void DeleteFrom(unsigned index)
|
311
377
|
{
|
312
|
-
if (
|
313
|
-
|
314
|
-
|
378
|
+
if (index < _len)
|
379
|
+
{
|
380
|
+
_len = index;
|
381
|
+
_chars[index] = 0;
|
382
|
+
}
|
315
383
|
}
|
384
|
+
};
|
316
385
|
|
317
|
-
|
318
|
-
|
319
|
-
void MakeLower()
|
320
|
-
{ MyStringLower(_chars); }
|
386
|
+
bool operator<(const AString &s1, const AString &s2);
|
387
|
+
bool operator>(const AString &s1, const AString &s2);
|
321
388
|
|
322
|
-
|
323
|
-
|
389
|
+
/*
|
390
|
+
bool operator==(const AString &s1, const AString &s2);
|
391
|
+
bool operator==(const AString &s1, const char *s2);
|
392
|
+
bool operator==(const char *s1, const AString &s2);
|
324
393
|
|
325
|
-
|
326
|
-
|
394
|
+
bool operator!=(const AString &s1, const AString &s2);
|
395
|
+
bool operator!=(const AString &s1, const char *s2);
|
396
|
+
bool operator!=(const char *s1, const AString &s2);
|
397
|
+
*/
|
327
398
|
|
328
|
-
|
329
|
-
{ return
|
399
|
+
inline bool operator==(const AString &s1, const AString &s2) { return s1.Len() == s2.Len() && strcmp(s1, s2) == 0; }
|
400
|
+
inline bool operator==(const AString &s1, const char *s2) { return strcmp(s1, s2) == 0; }
|
401
|
+
inline bool operator==(const char *s1, const AString &s2) { return strcmp(s1, s2) == 0; }
|
330
402
|
|
331
|
-
|
332
|
-
{ return
|
403
|
+
inline bool operator!=(const AString &s1, const AString &s2) { return s1.Len() != s2.Len() || strcmp(s1, s2) != 0; }
|
404
|
+
inline bool operator!=(const AString &s1, const char *s2) { return strcmp(s1, s2) != 0; }
|
405
|
+
inline bool operator!=(const char *s1, const AString &s2) { return strcmp(s1, s2) != 0; }
|
333
406
|
|
334
|
-
|
335
|
-
int Collate(const CStringBase& s) const
|
336
|
-
{ return MyStringCollate(_chars, s._chars); }
|
337
|
-
int CollateNoCase(const CStringBase& s) const
|
338
|
-
{ return MyStringCollateNoCase(_chars, s._chars); }
|
339
|
-
*/
|
407
|
+
// ---------- forbidden functions ----------
|
340
408
|
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
409
|
+
void operator==(char c1, const AString &s2);
|
410
|
+
void operator==(const AString &s1, char c2);
|
411
|
+
|
412
|
+
void operator+(char c, const AString &s); // this function can be OK, but we don't use it
|
413
|
+
|
414
|
+
void operator+(const AString &s, int c);
|
415
|
+
void operator+(const AString &s, unsigned c);
|
416
|
+
void operator+(int c, const AString &s);
|
417
|
+
void operator+(unsigned c, const AString &s);
|
418
|
+
void operator-(const AString &s, int c);
|
419
|
+
void operator-(const AString &s, unsigned c);
|
420
|
+
|
421
|
+
|
422
|
+
class UString
|
423
|
+
{
|
424
|
+
wchar_t *_chars;
|
425
|
+
unsigned _len;
|
426
|
+
unsigned _limit;
|
427
|
+
|
428
|
+
void MoveItems(unsigned dest, unsigned src)
|
356
429
|
{
|
357
|
-
|
358
|
-
return startIndex;
|
359
|
-
for (; startIndex < _length; startIndex++)
|
360
|
-
{
|
361
|
-
int j;
|
362
|
-
for (j = 0; j < s._length && startIndex + j < _length; j++)
|
363
|
-
if (_chars[startIndex+j] != s._chars[j])
|
364
|
-
break;
|
365
|
-
if (j == s._length)
|
366
|
-
return startIndex;
|
367
|
-
}
|
368
|
-
return -1;
|
430
|
+
memmove(_chars + dest, _chars + src, (size_t)(_len - src + 1) * sizeof(wchar_t));
|
369
431
|
}
|
370
|
-
|
432
|
+
|
433
|
+
void InsertSpace(unsigned index, unsigned size);
|
434
|
+
|
435
|
+
void ReAlloc(unsigned newLimit);
|
436
|
+
void ReAlloc2(unsigned newLimit);
|
437
|
+
void SetStartLen(unsigned len);
|
438
|
+
void Grow_1();
|
439
|
+
void Grow(unsigned n);
|
440
|
+
|
441
|
+
UString(unsigned num, const wchar_t *s); // for Mid
|
442
|
+
UString(unsigned num, const UString &s); // for Left
|
443
|
+
UString(const UString &s, wchar_t c); // it's for String + char
|
444
|
+
UString(const wchar_t *s1, unsigned num1, const wchar_t *s2, unsigned num2);
|
445
|
+
|
446
|
+
friend UString operator+(const UString &s, wchar_t c) { return UString(s, c); } ;
|
447
|
+
// friend UString operator+(wchar_t c, const UString &s); // is not supported
|
448
|
+
|
449
|
+
friend UString operator+(const UString &s1, const UString &s2);
|
450
|
+
friend UString operator+(const UString &s1, const wchar_t *s2);
|
451
|
+
friend UString operator+(const wchar_t *s1, const UString &s2);
|
452
|
+
|
453
|
+
// ---------- forbidden functions ----------
|
454
|
+
|
455
|
+
UString &operator+=(char c);
|
456
|
+
UString &operator+=(unsigned char c);
|
457
|
+
UString &operator=(char c);
|
458
|
+
UString &operator=(unsigned char c);
|
459
|
+
UString(char c);
|
460
|
+
UString(unsigned char c);
|
461
|
+
void Find(char c) const;
|
462
|
+
void Find(unsigned char c) const;
|
463
|
+
void Find(char c, unsigned startIndex) const;
|
464
|
+
void Find(unsigned char c, unsigned startIndex) const;
|
465
|
+
void ReverseFind(char c) const;
|
466
|
+
void ReverseFind(unsigned char c) const;
|
467
|
+
void InsertAtFront(char c);
|
468
|
+
void InsertAtFront(unsigned char c);
|
469
|
+
void RemoveChar(char ch);
|
470
|
+
void RemoveChar(unsigned char ch);
|
471
|
+
void Replace(char oldChar, char newChar);
|
472
|
+
void Replace(unsigned char oldChar, unsigned char newChar);
|
473
|
+
|
474
|
+
public:
|
475
|
+
UString();
|
476
|
+
UString(wchar_t c);
|
477
|
+
UString(const wchar_t *s);
|
478
|
+
UString(const UString &s);
|
479
|
+
~UString() { MY_STRING_DELETE(_chars); }
|
480
|
+
|
481
|
+
unsigned Len() const { return _len; }
|
482
|
+
bool IsEmpty() const { return _len == 0; }
|
483
|
+
void Empty() { _len = 0; _chars[0] = 0; }
|
484
|
+
|
485
|
+
operator const wchar_t *() const { return _chars; }
|
486
|
+
const wchar_t *Ptr() const { return _chars; }
|
487
|
+
const wchar_t *Ptr(unsigned pos) const { return _chars + pos; }
|
488
|
+
const wchar_t *RightPtr(unsigned num) const { return _chars + _len - num; }
|
489
|
+
wchar_t Back() const { return _chars[_len - 1]; }
|
490
|
+
|
491
|
+
void ReplaceOneCharAtPos(unsigned pos, wchar_t c) { _chars[pos] = c; }
|
492
|
+
|
493
|
+
wchar_t *GetBuf(unsigned minLen)
|
371
494
|
{
|
372
|
-
if (
|
373
|
-
|
374
|
-
|
375
|
-
for (;;)
|
376
|
-
{
|
377
|
-
if (*p == c)
|
378
|
-
return (int)(p - _chars);
|
379
|
-
if (p == _chars)
|
380
|
-
return -1;
|
381
|
-
p = GetPrevCharPointer(_chars, p);
|
382
|
-
}
|
495
|
+
if (minLen > _limit)
|
496
|
+
ReAlloc2(minLen);
|
497
|
+
return _chars;
|
383
498
|
}
|
384
|
-
|
499
|
+
wchar_t *GetBuf_SetEnd(unsigned minLen)
|
385
500
|
{
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
501
|
+
if (minLen > _limit)
|
502
|
+
ReAlloc2(minLen);
|
503
|
+
wchar_t *chars = _chars;
|
504
|
+
chars[minLen] = 0;
|
505
|
+
_len = minLen;
|
506
|
+
return chars;
|
390
507
|
}
|
391
508
|
|
392
|
-
void
|
393
|
-
{
|
394
|
-
|
395
|
-
while (c == *p)
|
396
|
-
p = GetNextCharPointer(p);
|
397
|
-
Delete(0, p - _chars);
|
398
|
-
}
|
399
|
-
private:
|
400
|
-
CStringBase GetTrimDefaultCharSet()
|
509
|
+
void ReleaseBuf_SetLen(unsigned newLen) { _len = newLen; }
|
510
|
+
void ReleaseBuf_SetEnd(unsigned newLen) { _len = newLen; _chars[newLen] = 0; }
|
511
|
+
void ReleaseBuf_CalcLen(unsigned maxLen)
|
401
512
|
{
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
charSet += (T)'\t';
|
406
|
-
return charSet;
|
513
|
+
wchar_t *chars = _chars;
|
514
|
+
chars[maxLen] = 0;
|
515
|
+
_len = MyStringLen(chars);
|
407
516
|
}
|
408
|
-
public:
|
409
517
|
|
410
|
-
|
518
|
+
UString &operator=(wchar_t c);
|
519
|
+
UString &operator=(const wchar_t *s);
|
520
|
+
UString &operator=(const UString &s);
|
521
|
+
void SetFromBstr(BSTR s);
|
522
|
+
|
523
|
+
UString &operator+=(wchar_t c)
|
411
524
|
{
|
412
|
-
|
525
|
+
if (_limit == _len)
|
526
|
+
Grow_1();
|
527
|
+
unsigned len = _len;
|
528
|
+
wchar_t *chars = _chars;
|
529
|
+
chars[len++] = c;
|
530
|
+
chars[len] = 0;
|
531
|
+
_len = len;
|
532
|
+
return *this;
|
413
533
|
}
|
414
|
-
|
534
|
+
|
535
|
+
void Add_Space();
|
536
|
+
void Add_Space_if_NotEmpty();
|
537
|
+
void Add_LF();
|
538
|
+
void Add_PathSepar() { operator+=(WCHAR_PATH_SEPARATOR); }
|
539
|
+
|
540
|
+
UString &operator+=(const wchar_t *s);
|
541
|
+
UString &operator+=(const UString &s);
|
542
|
+
|
543
|
+
void SetFrom(const wchar_t *s, unsigned len); // no check
|
544
|
+
|
545
|
+
void SetFromAscii(const char *s);
|
546
|
+
void AddAscii(const char *s);
|
547
|
+
|
548
|
+
UString Mid(unsigned startIndex, unsigned count) const { return UString(count, _chars + startIndex); }
|
549
|
+
UString Left(unsigned count) const { return UString(count, *this); }
|
550
|
+
|
551
|
+
// void MakeUpper() { MyStringUpper(_chars); }
|
552
|
+
// void MakeUpper() { MyStringUpper_Ascii(_chars); }
|
553
|
+
// void MakeUpper_Ascii() { MyStringUpper_Ascii(_chars); }
|
554
|
+
void MakeLower_Ascii() { MyStringLower_Ascii(_chars); }
|
555
|
+
|
556
|
+
bool IsEqualTo(const char *s) const { return StringsAreEqual_Ascii(_chars, s); }
|
557
|
+
bool IsEqualTo_NoCase(const wchar_t *s) const { return StringsAreEqualNoCase(_chars, s); }
|
558
|
+
bool IsEqualTo_Ascii_NoCase(const char *s) const { return StringsAreEqualNoCase_Ascii(_chars, s); }
|
559
|
+
int Compare(const wchar_t *s) const { return wcscmp(_chars, s); }
|
560
|
+
// int Compare(const UString &s) const { return MyStringCompare(_chars, s._chars); }
|
561
|
+
// int CompareNoCase(const wchar_t *s) const { return MyStringCompareNoCase(_chars, s); }
|
562
|
+
// int CompareNoCase(const UString &s) const { return MyStringCompareNoCase(_chars, s._chars); }
|
563
|
+
bool IsPrefixedBy(const wchar_t *s) const { return IsString1PrefixedByString2(_chars, s); }
|
564
|
+
bool IsPrefixedBy_NoCase(const wchar_t *s) const { return IsString1PrefixedByString2_NoCase(_chars, s); }
|
565
|
+
bool IsPrefixedBy_Ascii_NoCase(const char *s) const throw();
|
566
|
+
|
567
|
+
bool IsAscii() const
|
415
568
|
{
|
416
|
-
|
569
|
+
unsigned len = Len();
|
570
|
+
const wchar_t *s = _chars;
|
571
|
+
for (unsigned i = 0; i < len; i++)
|
572
|
+
if (s[i] >= 0x80)
|
573
|
+
return false;
|
574
|
+
return true;
|
417
575
|
}
|
418
|
-
|
576
|
+
int Find(wchar_t c) const { return FindCharPosInString(_chars, c); }
|
577
|
+
int Find(wchar_t c, unsigned startIndex) const
|
419
578
|
{
|
420
|
-
|
421
|
-
|
422
|
-
while (*p != 0)
|
423
|
-
{
|
424
|
-
if (*p == c)
|
425
|
-
{
|
426
|
-
if (pLast == NULL)
|
427
|
-
pLast = p;
|
428
|
-
}
|
429
|
-
else
|
430
|
-
pLast = NULL;
|
431
|
-
p = GetNextCharPointer(p);
|
432
|
-
}
|
433
|
-
if (pLast != NULL)
|
434
|
-
{
|
435
|
-
int i = pLast - _chars;
|
436
|
-
Delete(i, _length - i);
|
437
|
-
}
|
579
|
+
int pos = FindCharPosInString(_chars + startIndex, c);
|
580
|
+
return pos < 0 ? -1 : (int)startIndex + pos;
|
438
581
|
}
|
582
|
+
|
583
|
+
int ReverseFind(wchar_t c) const throw();
|
584
|
+
int ReverseFind_Dot() const throw() { return ReverseFind(L'.'); }
|
585
|
+
int ReverseFind_PathSepar() const throw();
|
586
|
+
|
587
|
+
int Find(const wchar_t *s) const { return Find(s, 0); }
|
588
|
+
int Find(const wchar_t *s, unsigned startIndex) const throw();
|
589
|
+
|
590
|
+
void TrimLeft() throw();
|
591
|
+
void TrimRight() throw();
|
439
592
|
void Trim()
|
440
593
|
{
|
441
594
|
TrimRight();
|
442
595
|
TrimLeft();
|
443
596
|
}
|
444
597
|
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
_length++;
|
450
|
-
return _length;
|
451
|
-
}
|
452
|
-
int Insert(int index, const CStringBase &s)
|
453
|
-
{
|
454
|
-
CorrectIndex(index);
|
455
|
-
if (s.IsEmpty())
|
456
|
-
return _length;
|
457
|
-
int numInsertChars = s.Length();
|
458
|
-
InsertSpace(index, numInsertChars);
|
459
|
-
for (int i = 0; i < numInsertChars; i++)
|
460
|
-
_chars[index + i] = s[i];
|
461
|
-
_length += numInsertChars;
|
462
|
-
return _length;
|
463
|
-
}
|
598
|
+
void InsertAtFront(wchar_t c);
|
599
|
+
// void Insert(unsigned index, wchar_t c);
|
600
|
+
void Insert(unsigned index, const wchar_t *s);
|
601
|
+
void Insert(unsigned index, const UString &s);
|
464
602
|
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
if (pos < 0)
|
476
|
-
break;
|
477
|
-
_chars[pos] = newChar;
|
478
|
-
pos++;
|
479
|
-
number++;
|
480
|
-
}
|
481
|
-
return number;
|
482
|
-
}
|
483
|
-
int Replace(const CStringBase &oldString, const CStringBase &newString)
|
484
|
-
{
|
485
|
-
if (oldString.IsEmpty())
|
486
|
-
return 0;
|
487
|
-
if (oldString == newString)
|
488
|
-
return 0;
|
489
|
-
int oldStringLength = oldString.Length();
|
490
|
-
int newStringLength = newString.Length();
|
491
|
-
int number = 0;
|
492
|
-
int pos = 0;
|
493
|
-
while (pos < _length)
|
494
|
-
{
|
495
|
-
pos = Find(oldString, pos);
|
496
|
-
if (pos < 0)
|
497
|
-
break;
|
498
|
-
Delete(pos, oldStringLength);
|
499
|
-
Insert(pos, newString);
|
500
|
-
pos += newStringLength;
|
501
|
-
number++;
|
502
|
-
}
|
503
|
-
return number;
|
504
|
-
}
|
505
|
-
int Delete(int index, int count = 1 )
|
603
|
+
void RemoveChar(wchar_t ch) throw();
|
604
|
+
|
605
|
+
void Replace(wchar_t oldChar, wchar_t newChar) throw();
|
606
|
+
void Replace(const UString &oldString, const UString &newString);
|
607
|
+
|
608
|
+
void Delete(unsigned index) throw();
|
609
|
+
void Delete(unsigned index, unsigned count) throw();
|
610
|
+
void DeleteFrontal(unsigned num) throw();
|
611
|
+
void DeleteBack() { _chars[--_len] = 0; }
|
612
|
+
void DeleteFrom(unsigned index)
|
506
613
|
{
|
507
|
-
if (index
|
508
|
-
count = _length - index;
|
509
|
-
if (count > 0)
|
614
|
+
if (index < _len)
|
510
615
|
{
|
511
|
-
|
512
|
-
|
616
|
+
_len = index;
|
617
|
+
_chars[index] = 0;
|
513
618
|
}
|
514
|
-
return _length;
|
515
619
|
}
|
516
|
-
void DeleteBack() { Delete(_length - 1); }
|
517
620
|
};
|
518
621
|
|
519
|
-
|
520
|
-
|
521
|
-
{
|
522
|
-
CStringBase<T> result(s1);
|
523
|
-
result += s2;
|
524
|
-
return result;
|
525
|
-
}
|
622
|
+
bool operator<(const UString &s1, const UString &s2);
|
623
|
+
bool operator>(const UString &s1, const UString &s2);
|
526
624
|
|
527
|
-
|
528
|
-
|
529
|
-
{
|
530
|
-
CStringBase<T> result(s);
|
531
|
-
result += c;
|
532
|
-
return result;
|
533
|
-
}
|
625
|
+
inline bool operator==(const UString &s1, const UString &s2) { return s1.Len() == s2.Len() && wcscmp(s1, s2) == 0; }
|
626
|
+
inline bool operator==(const UString &s1, const wchar_t *s2) { return wcscmp(s1, s2) == 0; }
|
627
|
+
inline bool operator==(const wchar_t *s1, const UString &s2) { return wcscmp(s1, s2) == 0; }
|
534
628
|
|
535
|
-
|
536
|
-
|
537
|
-
{
|
538
|
-
CStringBase<T> result(c);
|
539
|
-
result += s;
|
540
|
-
return result;
|
541
|
-
}
|
629
|
+
inline bool operator!=(const UString &s1, const UString &s2) { return s1.Len() != s2.Len() || wcscmp(s1, s2) != 0; }
|
630
|
+
inline bool operator!=(const UString &s1, const wchar_t *s2) { return wcscmp(s1, s2) != 0; }
|
631
|
+
inline bool operator!=(const wchar_t *s1, const UString &s2) { return wcscmp(s1, s2) != 0; }
|
542
632
|
|
543
|
-
template <class T>
|
544
|
-
CStringBase<T> operator+(const CStringBase<T>& s, const T * chars)
|
545
|
-
{
|
546
|
-
CStringBase<T> result(s);
|
547
|
-
result += chars;
|
548
|
-
return result;
|
549
|
-
}
|
550
633
|
|
551
|
-
|
552
|
-
|
634
|
+
// ---------- forbidden functions ----------
|
635
|
+
|
636
|
+
void operator==(wchar_t c1, const UString &s2);
|
637
|
+
void operator==(const UString &s1, wchar_t c2);
|
638
|
+
|
639
|
+
void operator+(wchar_t c, const UString &s); // this function can be OK, but we don't use it
|
640
|
+
|
641
|
+
void operator+(const UString &s, char c);
|
642
|
+
void operator+(const UString &s, unsigned char c);
|
643
|
+
void operator+(char c, const UString &s);
|
644
|
+
void operator+(unsigned char c, const UString &s);
|
645
|
+
void operator-(const UString &s1, wchar_t c);
|
646
|
+
|
647
|
+
#ifdef _WIN32
|
648
|
+
// can we forbid these functions, if wchar_t is 32-bit ?
|
649
|
+
void operator+(const UString &s, int c);
|
650
|
+
void operator+(const UString &s, unsigned c);
|
651
|
+
void operator+(int c, const UString &s);
|
652
|
+
void operator+(unsigned c, const UString &s);
|
653
|
+
void operator-(const UString &s1, int c);
|
654
|
+
void operator-(const UString &s1, unsigned c);
|
655
|
+
#endif
|
656
|
+
|
657
|
+
|
658
|
+
|
659
|
+
|
660
|
+
|
661
|
+
|
662
|
+
|
663
|
+
class UString2
|
553
664
|
{
|
554
|
-
|
555
|
-
|
556
|
-
return result;
|
557
|
-
}
|
665
|
+
wchar_t *_chars;
|
666
|
+
unsigned _len;
|
558
667
|
|
559
|
-
|
560
|
-
|
561
|
-
{ return (s1.Compare(s2) == 0); }
|
668
|
+
void ReAlloc2(unsigned newLimit);
|
669
|
+
void SetStartLen(unsigned len);
|
562
670
|
|
563
|
-
|
564
|
-
|
565
|
-
|
671
|
+
// ---------- forbidden functions ----------
|
672
|
+
|
673
|
+
UString2 &operator=(char c);
|
674
|
+
UString2 &operator=(unsigned char c);
|
675
|
+
UString2 &operator=(wchar_t c);
|
676
|
+
UString2(char c);
|
677
|
+
UString2(unsigned char c);
|
566
678
|
|
567
|
-
|
568
|
-
|
569
|
-
|
679
|
+
public:
|
680
|
+
UString2(): _chars(NULL), _len(0) {}
|
681
|
+
// UString2(wchar_t c);
|
682
|
+
UString2(const wchar_t *s);
|
683
|
+
UString2(const UString2 &s);
|
684
|
+
~UString2() { if (_chars) MY_STRING_DELETE(_chars); }
|
685
|
+
|
686
|
+
unsigned Len() const { return _len; }
|
687
|
+
bool IsEmpty() const { return _len == 0; }
|
688
|
+
// void Empty() { _len = 0; _chars[0] = 0; }
|
689
|
+
|
690
|
+
// operator const wchar_t *() const { return _chars; }
|
691
|
+
const wchar_t *GetRawPtr() const { return _chars; }
|
692
|
+
|
693
|
+
wchar_t *GetBuf(unsigned minLen)
|
694
|
+
{
|
695
|
+
if (!_chars || minLen > _len)
|
696
|
+
ReAlloc2(minLen);
|
697
|
+
return _chars;
|
698
|
+
}
|
699
|
+
void ReleaseBuf_SetLen(unsigned newLen) { _len = newLen; }
|
700
|
+
|
701
|
+
UString2 &operator=(const wchar_t *s);
|
702
|
+
UString2 &operator=(const UString2 &s);
|
703
|
+
void SetFromAscii(const char *s);
|
704
|
+
};
|
705
|
+
|
706
|
+
bool operator==(const UString2 &s1, const UString2 &s2);
|
707
|
+
bool operator==(const UString2 &s1, const wchar_t *s2);
|
708
|
+
bool operator==(const wchar_t *s1, const UString2 &s2);
|
709
|
+
|
710
|
+
inline bool operator!=(const UString2 &s1, const UString2 &s2) { return !(s1 == s2); }
|
711
|
+
inline bool operator!=(const UString2 &s1, const wchar_t *s2) { return !(s1 == s2); }
|
712
|
+
inline bool operator!=(const wchar_t *s1, const UString2 &s2) { return !(s1 == s2); }
|
713
|
+
|
714
|
+
|
715
|
+
// ---------- forbidden functions ----------
|
716
|
+
|
717
|
+
void operator==(wchar_t c1, const UString2 &s2);
|
718
|
+
void operator==(const UString2 &s1, wchar_t c2);
|
719
|
+
bool operator<(const UString2 &s1, const UString2 &s2);
|
720
|
+
bool operator>(const UString2 &s1, const UString2 &s2);
|
721
|
+
|
722
|
+
void operator+(const UString2 &s1, const UString2 &s2);
|
723
|
+
void operator+(const UString2 &s1, const wchar_t *s2);
|
724
|
+
void operator+(const wchar_t *s1, const UString2 &s2);
|
725
|
+
void operator+(wchar_t c, const UString2 &s);
|
726
|
+
void operator+(const UString2 &s, wchar_t c);
|
727
|
+
void operator+(const UString2 &s, char c);
|
728
|
+
void operator+(const UString2 &s, unsigned char c);
|
729
|
+
void operator+(char c, const UString2 &s);
|
730
|
+
void operator+(unsigned char c, const UString2 &s);
|
731
|
+
void operator-(const UString2 &s1, wchar_t c);
|
570
732
|
|
571
|
-
template <class T>
|
572
|
-
bool operator==(const CStringBase<T>& s1, const T *s2)
|
573
|
-
{ return (s1.Compare(s2) == 0); }
|
574
733
|
|
575
|
-
template <class T>
|
576
|
-
bool operator!=(const CStringBase<T>& s1, const CStringBase<T>& s2)
|
577
|
-
{ return (s1.Compare(s2) != 0); }
|
578
734
|
|
579
|
-
template <class T>
|
580
|
-
bool operator!=(const T *s1, const CStringBase<T>& s2)
|
581
|
-
{ return (s2.Compare(s1) != 0); }
|
582
735
|
|
583
|
-
template <class T>
|
584
|
-
bool operator!=(const CStringBase<T>& s1, const T *s2)
|
585
|
-
{ return (s1.Compare(s2) != 0); }
|
586
736
|
|
587
|
-
typedef CStringBase<char> AString;
|
588
|
-
typedef CStringBase<wchar_t> UString;
|
589
737
|
|
590
738
|
typedef CObjectVector<AString> AStringVector;
|
591
739
|
typedef CObjectVector<UString> UStringVector;
|
@@ -598,4 +746,47 @@ typedef CObjectVector<UString> UStringVector;
|
|
598
746
|
|
599
747
|
typedef CObjectVector<CSysString> CSysStringVector;
|
600
748
|
|
749
|
+
|
750
|
+
// ---------- FString ----------
|
751
|
+
|
752
|
+
#ifdef _UNICODE // FIXME #ifdef _WIN32
|
753
|
+
#define USE_UNICODE_FSTRING
|
754
|
+
#endif
|
755
|
+
|
756
|
+
#ifdef USE_UNICODE_FSTRING
|
757
|
+
|
758
|
+
#define __FTEXT(quote) L##quote
|
759
|
+
|
760
|
+
typedef wchar_t FChar;
|
761
|
+
typedef UString FString;
|
762
|
+
|
763
|
+
#define fs2us(_x_) (_x_)
|
764
|
+
#define us2fs(_x_) (_x_)
|
765
|
+
FString fas2fs(const AString &s);
|
766
|
+
AString fs2fas(const FChar *s);
|
767
|
+
|
768
|
+
#else
|
769
|
+
|
770
|
+
#define __FTEXT(quote) quote
|
771
|
+
|
772
|
+
typedef char FChar;
|
773
|
+
typedef AString FString;
|
774
|
+
|
775
|
+
UString fs2us(const FString &s);
|
776
|
+
FString us2fs(const wchar_t *s);
|
777
|
+
#define fas2fs(_x_) (_x_)
|
778
|
+
#define fs2fas(_x_) (_x_)
|
779
|
+
|
780
|
+
#endif
|
781
|
+
|
782
|
+
#define FTEXT(quote) __FTEXT(quote)
|
783
|
+
|
784
|
+
#define FCHAR_PATH_SEPARATOR FTEXT(CHAR_PATH_SEPARATOR)
|
785
|
+
#define FSTRING_PATH_SEPARATOR FTEXT(STRING_PATH_SEPARATOR)
|
786
|
+
#define FCHAR_ANY_MASK FTEXT('*')
|
787
|
+
#define FSTRING_ANY_MASK FTEXT("*")
|
788
|
+
typedef const FChar *CFSTR;
|
789
|
+
|
790
|
+
typedef CObjectVector<FString> FStringVector;
|
791
|
+
|
601
792
|
#endif
|