seven-zip 1.4.0
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 +7 -0
- data/.github/workflows/ci.yml +31 -0
- data/.github/workflows/release.yml +30 -0
- data/.gitignore +27 -0
- data/.travis.yml +35 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +20 -0
- data/README.md +204 -0
- data/Rakefile +79 -0
- data/ext/C/Types.h +254 -0
- data/ext/CPP/7zip/Archive/IArchive.h +234 -0
- data/ext/CPP/7zip/IDecl.h +15 -0
- data/ext/CPP/7zip/IPassword.h +24 -0
- data/ext/CPP/7zip/IProgress.h +33 -0
- data/ext/CPP/7zip/IStream.h +58 -0
- data/ext/CPP/7zip/PropID.h +76 -0
- data/ext/CPP/Common/MyCom.h +225 -0
- data/ext/CPP/Common/MyGuidDef.h +54 -0
- data/ext/CPP/Common/MyInitGuid.h +22 -0
- data/ext/CPP/Common/MyUnknown.h +13 -0
- data/ext/CPP/Common/MyWindows.h +204 -0
- data/ext/CPP/Common/Types.h +11 -0
- data/ext/CPP/Windows/PropVariant.h +56 -0
- data/ext/CPP/include_windows/basetyps.h +19 -0
- data/ext/CPP/include_windows/tchar.h +89 -0
- data/ext/CPP/include_windows/windows.h +194 -0
- data/ext/p7zip/Asm/x64/7zCrcT8U.asm +103 -0
- data/ext/p7zip/Asm/x86/7zCrcT8U.asm +101 -0
- data/ext/p7zip/C/7zBuf.h +39 -0
- data/ext/p7zip/C/7zBuf2.c +45 -0
- data/ext/p7zip/C/7zCrc.c +76 -0
- data/ext/p7zip/C/7zCrc.h +25 -0
- data/ext/p7zip/C/7zCrcOpt.c +34 -0
- data/ext/p7zip/C/7zCrcT8.c +43 -0
- data/ext/p7zip/C/7zStream.c +169 -0
- data/ext/p7zip/C/7zVersion.h +7 -0
- data/ext/p7zip/C/Aes.c +284 -0
- data/ext/p7zip/C/Aes.h +38 -0
- data/ext/p7zip/C/Alloc.back3 +238 -0
- data/ext/p7zip/C/Alloc.c +280 -0
- data/ext/p7zip/C/Alloc.c.back +243 -0
- data/ext/p7zip/C/Alloc.c.back2 +222 -0
- data/ext/p7zip/C/Alloc.h +27 -0
- data/ext/p7zip/C/Bra.c +133 -0
- data/ext/p7zip/C/Bra.h +68 -0
- data/ext/p7zip/C/Bra86.c +85 -0
- data/ext/p7zip/C/BraIA64.c +67 -0
- data/ext/p7zip/C/BwtSort.c +516 -0
- data/ext/p7zip/C/BwtSort.h +30 -0
- data/ext/p7zip/C/CpuArch.c +168 -0
- data/ext/p7zip/C/CpuArch.h +155 -0
- data/ext/p7zip/C/Delta.c +62 -0
- data/ext/p7zip/C/Delta.h +23 -0
- data/ext/p7zip/C/HuffEnc.c +146 -0
- data/ext/p7zip/C/HuffEnc.h +27 -0
- data/ext/p7zip/C/LzFind.c +761 -0
- data/ext/p7zip/C/LzFind.h +115 -0
- data/ext/p7zip/C/LzFindMt.c +793 -0
- data/ext/p7zip/C/LzFindMt.h +105 -0
- data/ext/p7zip/C/LzHash.h +54 -0
- data/ext/p7zip/C/Lzma2Dec.c +356 -0
- data/ext/p7zip/C/Lzma2Dec.h +84 -0
- data/ext/p7zip/C/Lzma2Enc.c +477 -0
- data/ext/p7zip/C/Lzma2Enc.h +66 -0
- data/ext/p7zip/C/LzmaDec.c +999 -0
- data/ext/p7zip/C/LzmaDec.h +231 -0
- data/ext/p7zip/C/LzmaEnc.c +2268 -0
- data/ext/p7zip/C/LzmaEnc.h +80 -0
- data/ext/p7zip/C/LzmaUtil/Lzma86Dec.c +61 -0
- data/ext/p7zip/C/LzmaUtil/Lzma86Dec.h +51 -0
- data/ext/p7zip/C/LzmaUtil/Lzma86Enc.c +113 -0
- data/ext/p7zip/C/LzmaUtil/Lzma86Enc.h +78 -0
- data/ext/p7zip/C/MtCoder.c +327 -0
- data/ext/p7zip/C/MtCoder.h +98 -0
- data/ext/p7zip/C/Ppmd.h +85 -0
- data/ext/p7zip/C/Ppmd7.c +708 -0
- data/ext/p7zip/C/Ppmd7.h +140 -0
- data/ext/p7zip/C/Ppmd7Dec.c +187 -0
- data/ext/p7zip/C/Ppmd7Enc.c +185 -0
- data/ext/p7zip/C/Ppmd8.c +1120 -0
- data/ext/p7zip/C/Ppmd8.h +133 -0
- data/ext/p7zip/C/Ppmd8Dec.c +155 -0
- data/ext/p7zip/C/Ppmd8Enc.c +161 -0
- data/ext/p7zip/C/RotateDefs.h +20 -0
- data/ext/p7zip/C/Sha256.c +204 -0
- data/ext/p7zip/C/Sha256.h +26 -0
- data/ext/p7zip/C/Sort.c +93 -0
- data/ext/p7zip/C/Sort.h +20 -0
- data/ext/p7zip/C/Threads.c +582 -0
- data/ext/p7zip/C/Threads.h +123 -0
- data/ext/p7zip/C/Types.h +254 -0
- data/ext/p7zip/C/Xz.c +88 -0
- data/ext/p7zip/C/Xz.h +252 -0
- data/ext/p7zip/C/XzCrc64.c +33 -0
- data/ext/p7zip/C/XzCrc64.h +26 -0
- data/ext/p7zip/C/XzDec.c +875 -0
- data/ext/p7zip/C/XzEnc.c +497 -0
- data/ext/p7zip/C/XzEnc.h +25 -0
- data/ext/p7zip/C/XzIn.c +306 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zCompressionMode.cpp +3 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zCompressionMode.h +50 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zDecode.cpp +332 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zDecode.h +68 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zEncode.cpp +444 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zEncode.h +55 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zExtract.cpp +270 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderInStream.cpp +123 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderInStream.h +58 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderOutStream.cpp +149 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zFolderOutStream.h +58 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHandler.cpp +482 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHandler.h +119 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHandlerOut.cpp +483 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHeader.cpp +14 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zHeader.h +97 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zIn.cpp +1276 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zIn.h +245 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zItem.h +268 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zOut.cpp +866 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zOut.h +152 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zProperties.cpp +164 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zProperties.h +22 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zRegister.cpp +18 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zSpecStream.cpp +24 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zSpecStream.h +35 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zUpdate.cpp +1216 -0
- data/ext/p7zip/CPP/7zip/Archive/7z/7zUpdate.h +88 -0
- data/ext/p7zip/CPP/7zip/Archive/ApmHandler.cpp +356 -0
- data/ext/p7zip/CPP/7zip/Archive/ArchiveExports.cpp +135 -0
- data/ext/p7zip/CPP/7zip/Archive/ArjHandler.cpp +798 -0
- data/ext/p7zip/CPP/7zip/Archive/Bz2Handler.cpp +423 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabBlockInStream.cpp +189 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabBlockInStream.h +44 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHandler.cpp +929 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHandler.h +28 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHeader.cpp +15 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabHeader.h +44 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabIn.cpp +272 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabIn.h +161 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabItem.h +63 -0
- data/ext/p7zip/CPP/7zip/Archive/Cab/CabRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHandler.cpp +721 -0
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHandler.h +29 -0
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHeader.cpp +24 -0
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmHeader.h +28 -0
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmIn.cpp +937 -0
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmIn.h +244 -0
- data/ext/p7zip/CPP/7zip/Archive/Chm/ChmRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/Com/ComHandler.cpp +239 -0
- data/ext/p7zip/CPP/7zip/Archive/Com/ComHandler.h +28 -0
- data/ext/p7zip/CPP/7zip/Archive/Com/ComIn.cpp +389 -0
- data/ext/p7zip/CPP/7zip/Archive/Com/ComIn.h +119 -0
- data/ext/p7zip/CPP/7zip/Archive/Com/ComRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2.cpp +121 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2.h +174 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2MT.cpp +240 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2MT.h +80 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2ST.cpp +239 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CoderMixer2ST.h +88 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CrossThreadProgress.cpp +15 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/CrossThreadProgress.h +37 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/DummyOutStream.cpp +22 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/DummyOutStream.h +24 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/FindSignature.cpp +62 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/FindSignature.h +12 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/HandlerOut.cpp +623 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/HandlerOut.h +87 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +42 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/InStreamWithCRC.h +67 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/ItemNameUtils.cpp +61 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/ItemNameUtils.h +24 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/MultiStream.cpp +190 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/MultiStream.h +84 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +18 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/OutStreamWithCRC.h +36 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/OutStreamWithSha1.cpp +18 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/OutStreamWithSha1.h +36 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/ParseProperties.cpp +177 -0
- data/ext/p7zip/CPP/7zip/Archive/Common/ParseProperties.h +18 -0
- data/ext/p7zip/CPP/7zip/Archive/CpioHandler.cpp +624 -0
- data/ext/p7zip/CPP/7zip/Archive/CramfsHandler.cpp +644 -0
- data/ext/p7zip/CPP/7zip/Archive/DebHandler.cpp +413 -0
- data/ext/p7zip/CPP/7zip/Archive/DeflateProps.cpp +118 -0
- data/ext/p7zip/CPP/7zip/Archive/DeflateProps.h +35 -0
- data/ext/p7zip/CPP/7zip/Archive/DllExports2.cpp +76 -0
- data/ext/p7zip/CPP/7zip/Archive/DmgHandler.cpp +918 -0
- data/ext/p7zip/CPP/7zip/Archive/ElfHandler.cpp +534 -0
- data/ext/p7zip/CPP/7zip/Archive/FatHandler.cpp +996 -0
- data/ext/p7zip/CPP/7zip/Archive/FlvHandler.cpp +544 -0
- data/ext/p7zip/CPP/7zip/Archive/GzHandler.cpp +698 -0
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsHandler.cpp +243 -0
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsHandler.h +26 -0
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsIn.cpp +480 -0
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsIn.h +154 -0
- data/ext/p7zip/CPP/7zip/Archive/Hfs/HfsRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/IArchive.h +234 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHandler.cpp +326 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHandler.h +30 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHeader.cpp +21 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoHeader.h +61 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoIn.cpp +453 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoIn.h +315 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoItem.h +141 -0
- data/ext/p7zip/CPP/7zip/Archive/Iso/IsoRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/LzhHandler.cpp +775 -0
- data/ext/p7zip/CPP/7zip/Archive/LzmaHandler.cpp +430 -0
- data/ext/p7zip/CPP/7zip/Archive/MachoHandler.cpp +500 -0
- data/ext/p7zip/CPP/7zip/Archive/MbrHandler.cpp +507 -0
- data/ext/p7zip/CPP/7zip/Archive/MslzHandler.cpp +257 -0
- data/ext/p7zip/CPP/7zip/Archive/MubHandler.cpp +266 -0
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisDecode.cpp +130 -0
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisDecode.h +47 -0
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisHandler.cpp +510 -0
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisHandler.h +43 -0
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisIn.cpp +1461 -0
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisIn.h +181 -0
- data/ext/p7zip/CPP/7zip/Archive/Nsis/NsisRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/NtfsHandler.cpp +1764 -0
- data/ext/p7zip/CPP/7zip/Archive/PeHandler.cpp +1752 -0
- data/ext/p7zip/CPP/7zip/Archive/PpmdHandler.cpp +456 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHandler.cpp +869 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHandler.h +66 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHeader.cpp +21 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarHeader.h +205 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarIn.cpp +478 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarIn.h +123 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarItem.cpp +55 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarItem.h +79 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarVolumeInStream.cpp +78 -0
- data/ext/p7zip/CPP/7zip/Archive/Rar/RarVolumeInStream.h +49 -0
- data/ext/p7zip/CPP/7zip/Archive/RpmHandler.cpp +292 -0
- data/ext/p7zip/CPP/7zip/Archive/SplitHandler.cpp +366 -0
- data/ext/p7zip/CPP/7zip/Archive/SquashfsHandler.cpp +2155 -0
- data/ext/p7zip/CPP/7zip/Archive/SwfHandler.cpp +706 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHandler.cpp +386 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHandler.h +61 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHandlerOut.cpp +122 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHeader.cpp +25 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarHeader.h +108 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarIn.cpp +207 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarIn.h +17 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarItem.h +72 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarOut.cpp +187 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarOut.h +28 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarRegister.cpp +18 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarUpdate.cpp +139 -0
- data/ext/p7zip/CPP/7zip/Archive/Tar/TarUpdate.h +34 -0
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfHandler.cpp +451 -0
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfHandler.h +37 -0
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfIn.cpp +876 -0
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfIn.h +375 -0
- data/ext/p7zip/CPP/7zip/Archive/Udf/UdfRegister.cpp +13 -0
- data/ext/p7zip/CPP/7zip/Archive/VhdHandler.cpp +734 -0
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimHandler.cpp +660 -0
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimHandler.h +77 -0
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimHandlerOut.cpp +639 -0
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimIn.cpp +855 -0
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimIn.h +297 -0
- data/ext/p7zip/CPP/7zip/Archive/Wim/WimRegister.cpp +18 -0
- data/ext/p7zip/CPP/7zip/Archive/XarHandler.cpp +588 -0
- data/ext/p7zip/CPP/7zip/Archive/XzHandler.cpp +707 -0
- data/ext/p7zip/CPP/7zip/Archive/ZHandler.cpp +161 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipAddCommon.cpp +379 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipAddCommon.h +56 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipCompressionMode.h +42 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHandler.cpp +822 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHandler.h +101 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHandlerOut.cpp +537 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHeader.cpp +36 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipHeader.h +284 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipIn.cpp +893 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipIn.h +125 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipItem.cpp +181 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipItem.h +281 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipItemEx.h +34 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipOut.cpp +289 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipOut.h +56 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipRegister.cpp +18 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipUpdate.cpp +1076 -0
- data/ext/p7zip/CPP/7zip/Archive/Zip/ZipUpdate.h +58 -0
- data/ext/p7zip/CPP/7zip/Bundles/Format7zFree/makefile +328 -0
- data/ext/p7zip/CPP/7zip/Bundles/Format7zFree/makefile.depend +4962 -0
- data/ext/p7zip/CPP/7zip/Bundles/Format7zFree/makefile.list +265 -0
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_7zFM.txt +163 -0
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_7zG.txt +131 -0
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_7za.txt +253 -0
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_ALL.txt +32 -0
- data/ext/p7zip/CPP/7zip/CMAKE/CMakeLists_Format7zFree.txt +290 -0
- data/ext/p7zip/CPP/7zip/CMAKE/generate.sh +37 -0
- data/ext/p7zip/CPP/7zip/CMAKE/generate_xcode.sh +32 -0
- data/ext/p7zip/CPP/7zip/Common/CWrappers.cpp +226 -0
- data/ext/p7zip/CPP/7zip/Common/CWrappers.h +109 -0
- data/ext/p7zip/CPP/7zip/Common/CreateCoder.cpp +293 -0
- data/ext/p7zip/CPP/7zip/Common/CreateCoder.h +98 -0
- data/ext/p7zip/CPP/7zip/Common/FilePathAutoRename.cpp +55 -0
- data/ext/p7zip/CPP/7zip/Common/FilePathAutoRename.h +10 -0
- data/ext/p7zip/CPP/7zip/Common/FileStreams.cpp +273 -0
- data/ext/p7zip/CPP/7zip/Common/FileStreams.h +134 -0
- data/ext/p7zip/CPP/7zip/Common/FilterCoder.cpp +247 -0
- data/ext/p7zip/CPP/7zip/Common/FilterCoder.h +128 -0
- data/ext/p7zip/CPP/7zip/Common/InBuffer.cpp +83 -0
- data/ext/p7zip/CPP/7zip/Common/InBuffer.h +81 -0
- data/ext/p7zip/CPP/7zip/Common/InOutTempBuffer.cpp +122 -0
- data/ext/p7zip/CPP/7zip/Common/InOutTempBuffer.h +48 -0
- data/ext/p7zip/CPP/7zip/Common/LimitedStreams.cpp +154 -0
- data/ext/p7zip/CPP/7zip/Common/LimitedStreams.h +125 -0
- data/ext/p7zip/CPP/7zip/Common/LockedStream.cpp +23 -0
- data/ext/p7zip/CPP/7zip/Common/LockedStream.h +38 -0
- data/ext/p7zip/CPP/7zip/Common/MemBlocks.cpp +183 -0
- data/ext/p7zip/CPP/7zip/Common/MemBlocks.h +71 -0
- data/ext/p7zip/CPP/7zip/Common/MethodId.cpp +27 -0
- data/ext/p7zip/CPP/7zip/Common/MethodId.h +10 -0
- data/ext/p7zip/CPP/7zip/Common/MethodProps.cpp +99 -0
- data/ext/p7zip/CPP/7zip/Common/MethodProps.h +41 -0
- data/ext/p7zip/CPP/7zip/Common/OffsetStream.cpp +35 -0
- data/ext/p7zip/CPP/7zip/Common/OffsetStream.h +25 -0
- data/ext/p7zip/CPP/7zip/Common/OutBuffer.cpp +116 -0
- data/ext/p7zip/CPP/7zip/Common/OutBuffer.h +64 -0
- data/ext/p7zip/CPP/7zip/Common/OutMemStream.cpp +142 -0
- data/ext/p7zip/CPP/7zip/Common/OutMemStream.h +96 -0
- data/ext/p7zip/CPP/7zip/Common/ProgressMt.cpp +53 -0
- data/ext/p7zip/CPP/7zip/Common/ProgressMt.h +46 -0
- data/ext/p7zip/CPP/7zip/Common/ProgressUtils.cpp +42 -0
- data/ext/p7zip/CPP/7zip/Common/ProgressUtils.h +34 -0
- data/ext/p7zip/CPP/7zip/Common/RegisterArc.h +32 -0
- data/ext/p7zip/CPP/7zip/Common/RegisterCodec.h +33 -0
- data/ext/p7zip/CPP/7zip/Common/StreamBinder.cpp +152 -0
- data/ext/p7zip/CPP/7zip/Common/StreamBinder.h +38 -0
- data/ext/p7zip/CPP/7zip/Common/StreamObjects.cpp +221 -0
- data/ext/p7zip/CPP/7zip/Common/StreamObjects.h +135 -0
- data/ext/p7zip/CPP/7zip/Common/StreamUtils.cpp +56 -0
- data/ext/p7zip/CPP/7zip/Common/StreamUtils.h +13 -0
- data/ext/p7zip/CPP/7zip/Common/VirtThread.cpp +46 -0
- data/ext/p7zip/CPP/7zip/Common/VirtThread.h +23 -0
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder1.cpp +309 -0
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder1.h +98 -0
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder2.cpp +90 -0
- data/ext/p7zip/CPP/7zip/Compress/ArjDecoder2.h +59 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Const.h +54 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Crc.cpp +26 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Crc.h +31 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Decoder.cpp +943 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Decoder.h +205 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Encoder.cpp +895 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Encoder.h +245 -0
- data/ext/p7zip/CPP/7zip/Compress/BZip2Register.cpp +20 -0
- data/ext/p7zip/CPP/7zip/Compress/Bcj2Coder.cpp +386 -0
- data/ext/p7zip/CPP/7zip/Compress/Bcj2Coder.h +115 -0
- data/ext/p7zip/CPP/7zip/Compress/Bcj2Register.cpp +19 -0
- data/ext/p7zip/CPP/7zip/Compress/BcjCoder.cpp +15 -0
- data/ext/p7zip/CPP/7zip/Compress/BcjCoder.h +19 -0
- data/ext/p7zip/CPP/7zip/Compress/BcjRegister.cpp +19 -0
- data/ext/p7zip/CPP/7zip/Compress/BitlDecoder.cpp +24 -0
- data/ext/p7zip/CPP/7zip/Compress/BitlDecoder.h +141 -0
- data/ext/p7zip/CPP/7zip/Compress/BitlEncoder.h +57 -0
- data/ext/p7zip/CPP/7zip/Compress/BitmDecoder.h +66 -0
- data/ext/p7zip/CPP/7zip/Compress/BitmEncoder.h +50 -0
- data/ext/p7zip/CPP/7zip/Compress/BranchCoder.cpp +19 -0
- data/ext/p7zip/CPP/7zip/Compress/BranchCoder.h +44 -0
- data/ext/p7zip/CPP/7zip/Compress/BranchMisc.cpp +37 -0
- data/ext/p7zip/CPP/7zip/Compress/BranchMisc.h +14 -0
- data/ext/p7zip/CPP/7zip/Compress/BranchRegister.cpp +30 -0
- data/ext/p7zip/CPP/7zip/Compress/ByteSwap.cpp +73 -0
- data/ext/p7zip/CPP/7zip/Compress/CodecExports.cpp +160 -0
- data/ext/p7zip/CPP/7zip/Compress/CopyCoder.cpp +67 -0
- data/ext/p7zip/CPP/7zip/Compress/CopyCoder.h +34 -0
- data/ext/p7zip/CPP/7zip/Compress/CopyRegister.cpp +14 -0
- data/ext/p7zip/CPP/7zip/Compress/Deflate64Register.cpp +20 -0
- data/ext/p7zip/CPP/7zip/Compress/DeflateConst.h +134 -0
- data/ext/p7zip/CPP/7zip/Compress/DeflateDecoder.cpp +353 -0
- data/ext/p7zip/CPP/7zip/Compress/DeflateDecoder.h +157 -0
- data/ext/p7zip/CPP/7zip/Compress/DeflateEncoder.cpp +986 -0
- data/ext/p7zip/CPP/7zip/Compress/DeflateEncoder.h +211 -0
- data/ext/p7zip/CPP/7zip/Compress/DeflateRegister.cpp +21 -0
- data/ext/p7zip/CPP/7zip/Compress/DeltaFilter.cpp +112 -0
- data/ext/p7zip/CPP/7zip/Compress/DllExports.cpp +39 -0
- data/ext/p7zip/CPP/7zip/Compress/DllExports2.cpp +28 -0
- data/ext/p7zip/CPP/7zip/Compress/HuffmanDecoder.h +89 -0
- data/ext/p7zip/CPP/7zip/Compress/ImplodeDecoder.cpp +219 -0
- data/ext/p7zip/CPP/7zip/Compress/ImplodeDecoder.h +57 -0
- data/ext/p7zip/CPP/7zip/Compress/ImplodeHuffmanDecoder.cpp +89 -0
- data/ext/p7zip/CPP/7zip/Compress/ImplodeHuffmanDecoder.h +34 -0
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp +531 -0
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp +1018 -0
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBench.h +48 -0
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.cpp +311 -0
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.h +20 -0
- data/ext/p7zip/CPP/7zip/Compress/LZMA_Alone/makefile +173 -0
- data/ext/p7zip/CPP/7zip/Compress/LzOutWindow.cpp +14 -0
- data/ext/p7zip/CPP/7zip/Compress/LzOutWindow.h +66 -0
- data/ext/p7zip/CPP/7zip/Compress/LzhDecoder.cpp +220 -0
- data/ext/p7zip/CPP/7zip/Compress/LzhDecoder.h +106 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Decoder.cpp +189 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Decoder.h +73 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Encoder.cpp +94 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Encoder.h +36 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzma2Register.cpp +20 -0
- data/ext/p7zip/CPP/7zip/Compress/LzmaDecoder.cpp +252 -0
- data/ext/p7zip/CPP/7zip/Compress/LzmaDecoder.h +84 -0
- data/ext/p7zip/CPP/7zip/Compress/LzmaEncoder.cpp +149 -0
- data/ext/p7zip/CPP/7zip/Compress/LzmaEncoder.h +36 -0
- data/ext/p7zip/CPP/7zip/Compress/LzmaRegister.cpp +20 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzx.h +61 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzx86Converter.cpp +90 -0
- data/ext/p7zip/CPP/7zip/Compress/Lzx86Converter.h +46 -0
- data/ext/p7zip/CPP/7zip/Compress/LzxDecoder.cpp +387 -0
- data/ext/p7zip/CPP/7zip/Compress/LzxDecoder.h +159 -0
- data/ext/p7zip/CPP/7zip/Compress/Mtf8.h +193 -0
- data/ext/p7zip/CPP/7zip/Compress/PpmdDecoder.cpp +167 -0
- data/ext/p7zip/CPP/7zip/Compress/PpmdDecoder.h +78 -0
- data/ext/p7zip/CPP/7zip/Compress/PpmdEncoder.cpp +119 -0
- data/ext/p7zip/CPP/7zip/Compress/PpmdEncoder.h +48 -0
- data/ext/p7zip/CPP/7zip/Compress/PpmdRegister.cpp +21 -0
- data/ext/p7zip/CPP/7zip/Compress/PpmdZip.cpp +223 -0
- data/ext/p7zip/CPP/7zip/Compress/PpmdZip.h +72 -0
- data/ext/p7zip/CPP/7zip/Compress/QuantumDecoder.cpp +175 -0
- data/ext/p7zip/CPP/7zip/Compress/QuantumDecoder.h +264 -0
- data/ext/p7zip/CPP/7zip/Compress/RangeCoder.h +205 -0
- data/ext/p7zip/CPP/7zip/Compress/RangeCoderBit.h +114 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar/makefile +34 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar/makefile.depend +158 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar/makefile.list +64 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar1Decoder.cpp +480 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar1Decoder.h +88 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar2Decoder.cpp +391 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar2Decoder.h +174 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar3Decoder.cpp +897 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar3Decoder.h +267 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar3Vm.cpp +1091 -0
- data/ext/p7zip/CPP/7zip/Compress/Rar3Vm.h +179 -0
- data/ext/p7zip/CPP/7zip/Compress/RarCodecsRegister.cpp +26 -0
- data/ext/p7zip/CPP/7zip/Compress/ShrinkDecoder.cpp +145 -0
- data/ext/p7zip/CPP/7zip/Compress/ShrinkDecoder.h +38 -0
- data/ext/p7zip/CPP/7zip/Compress/ZDecoder.cpp +159 -0
- data/ext/p7zip/CPP/7zip/Compress/ZDecoder.h +42 -0
- data/ext/p7zip/CPP/7zip/Compress/ZlibDecoder.cpp +89 -0
- data/ext/p7zip/CPP/7zip/Compress/ZlibDecoder.h +48 -0
- data/ext/p7zip/CPP/7zip/Compress/ZlibEncoder.cpp +61 -0
- data/ext/p7zip/CPP/7zip/Compress/ZlibEncoder.h +48 -0
- data/ext/p7zip/CPP/7zip/Crypto/7zAes.cpp +244 -0
- data/ext/p7zip/CPP/7zip/Crypto/7zAes.h +117 -0
- data/ext/p7zip/CPP/7zip/Crypto/7zAesRegister.cpp +18 -0
- data/ext/p7zip/CPP/7zip/Crypto/HmacSha1.cpp +109 -0
- data/ext/p7zip/CPP/7zip/Crypto/HmacSha1.h +39 -0
- data/ext/p7zip/CPP/7zip/Crypto/MyAes.cpp +48 -0
- data/ext/p7zip/CPP/7zip/Crypto/MyAes.h +38 -0
- data/ext/p7zip/CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp +83 -0
- data/ext/p7zip/CPP/7zip/Crypto/Pbkdf2HmacSha1.h +21 -0
- data/ext/p7zip/CPP/7zip/Crypto/RandGen.cpp +107 -0
- data/ext/p7zip/CPP/7zip/Crypto/RandGen.h +21 -0
- data/ext/p7zip/CPP/7zip/Crypto/Rar20Crypto.cpp +133 -0
- data/ext/p7zip/CPP/7zip/Crypto/Rar20Crypto.h +50 -0
- data/ext/p7zip/CPP/7zip/Crypto/RarAes.cpp +134 -0
- data/ext/p7zip/CPP/7zip/Crypto/RarAes.h +47 -0
- data/ext/p7zip/CPP/7zip/Crypto/Sha1.cpp +229 -0
- data/ext/p7zip/CPP/7zip/Crypto/Sha1.h +68 -0
- data/ext/p7zip/CPP/7zip/Crypto/WzAes.cpp +221 -0
- data/ext/p7zip/CPP/7zip/Crypto/WzAes.h +125 -0
- data/ext/p7zip/CPP/7zip/Crypto/ZipCrypto.cpp +88 -0
- data/ext/p7zip/CPP/7zip/Crypto/ZipCrypto.h +56 -0
- data/ext/p7zip/CPP/7zip/Crypto/ZipStrong.cpp +164 -0
- data/ext/p7zip/CPP/7zip/Crypto/ZipStrong.h +47 -0
- data/ext/p7zip/CPP/7zip/Guid.txt +170 -0
- data/ext/p7zip/CPP/7zip/ICoder.h +186 -0
- data/ext/p7zip/CPP/7zip/IDecl.h +15 -0
- data/ext/p7zip/CPP/7zip/IPassword.h +24 -0
- data/ext/p7zip/CPP/7zip/IProgress.h +33 -0
- data/ext/p7zip/CPP/7zip/IStream.h +58 -0
- data/ext/p7zip/CPP/7zip/MyVersion.h +11 -0
- data/ext/p7zip/CPP/7zip/PREMAKE/generate.sh +18 -0
- data/ext/p7zip/CPP/7zip/PREMAKE/premake4.lua +263 -0
- data/ext/p7zip/CPP/7zip/PropID.h +76 -0
- data/ext/p7zip/CPP/7zip/QMAKE/7ZA/7ZA.pro +228 -0
- data/ext/p7zip/CPP/7zip/QMAKE/7ZA/7ZA_osx.pro +228 -0
- data/ext/p7zip/CPP/7zip/QMAKE/test_emul/test_emul.pro +26 -0
- data/ext/p7zip/CPP/7zip/TEST/TestUI/TestUI.cpp +560 -0
- data/ext/p7zip/CPP/7zip/TEST/TestUI/makefile +33 -0
- data/ext/p7zip/CPP/7zip/TEST/TestUI/makefile.depend +577 -0
- data/ext/p7zip/CPP/7zip/TEST/TestUI/makefile.list +16 -0
- data/ext/p7zip/CPP/Common/AutoPtr.h +35 -0
- data/ext/p7zip/CPP/Common/Buffer.h +77 -0
- data/ext/p7zip/CPP/Common/CRC.cpp +7 -0
- data/ext/p7zip/CPP/Common/C_FileIO.cpp +88 -0
- data/ext/p7zip/CPP/Common/C_FileIO.h +47 -0
- data/ext/p7zip/CPP/Common/ComTry.h +18 -0
- data/ext/p7zip/CPP/Common/CommandLineParser.cpp +230 -0
- data/ext/p7zip/CPP/Common/CommandLineParser.h +72 -0
- data/ext/p7zip/CPP/Common/Defs.h +20 -0
- data/ext/p7zip/CPP/Common/DynamicBuffer.h +50 -0
- data/ext/p7zip/CPP/Common/IntToString.cpp +77 -0
- data/ext/p7zip/CPP/Common/IntToString.h +19 -0
- data/ext/p7zip/CPP/Common/Lang.cpp +130 -0
- data/ext/p7zip/CPP/Common/Lang.h +28 -0
- data/ext/p7zip/CPP/Common/ListFileUtils.cpp +75 -0
- data/ext/p7zip/CPP/Common/ListFileUtils.h +11 -0
- data/ext/p7zip/CPP/Common/MyCom.h +225 -0
- data/ext/p7zip/CPP/Common/MyException.h +14 -0
- data/ext/p7zip/CPP/Common/MyGuidDef.h +54 -0
- data/ext/p7zip/CPP/Common/MyInitGuid.h +22 -0
- data/ext/p7zip/CPP/Common/MyMap.cpp +140 -0
- data/ext/p7zip/CPP/Common/MyMap.h +28 -0
- data/ext/p7zip/CPP/Common/MyString.cpp +206 -0
- data/ext/p7zip/CPP/Common/MyString.h +601 -0
- data/ext/p7zip/CPP/Common/MyUnknown.h +13 -0
- data/ext/p7zip/CPP/Common/MyVector.cpp +87 -0
- data/ext/p7zip/CPP/Common/MyVector.h +266 -0
- data/ext/p7zip/CPP/Common/MyWindows.cpp +111 -0
- data/ext/p7zip/CPP/Common/MyWindows.h +218 -0
- data/ext/p7zip/CPP/Common/MyXml.cpp +209 -0
- data/ext/p7zip/CPP/Common/MyXml.h +40 -0
- data/ext/p7zip/CPP/Common/NewHandler.h +16 -0
- data/ext/p7zip/CPP/Common/StdInStream.cpp +100 -0
- data/ext/p7zip/CPP/Common/StdInStream.h +32 -0
- data/ext/p7zip/CPP/Common/StdOutStream.cpp +93 -0
- data/ext/p7zip/CPP/Common/StdOutStream.h +35 -0
- data/ext/p7zip/CPP/Common/StringConvert.cpp +181 -0
- data/ext/p7zip/CPP/Common/StringConvert.h +73 -0
- data/ext/p7zip/CPP/Common/StringToInt.cpp +90 -0
- data/ext/p7zip/CPP/Common/StringToInt.h +18 -0
- data/ext/p7zip/CPP/Common/TextConfig.cpp +138 -0
- data/ext/p7zip/CPP/Common/TextConfig.h +22 -0
- data/ext/p7zip/CPP/Common/Types.h +11 -0
- data/ext/p7zip/CPP/Common/UTFConvert.cpp +145 -0
- data/ext/p7zip/CPP/Common/UTFConvert.h +11 -0
- data/ext/p7zip/CPP/Common/Wildcard.cpp +462 -0
- data/ext/p7zip/CPP/Common/Wildcard.h +80 -0
- data/ext/p7zip/CPP/Windows/COM.cpp +37 -0
- data/ext/p7zip/CPP/Windows/COM.h +69 -0
- data/ext/p7zip/CPP/Windows/Clipboard.cpp +160 -0
- data/ext/p7zip/CPP/Windows/Clipboard.h +28 -0
- data/ext/p7zip/CPP/Windows/CommonDialog.h +19 -0
- data/ext/p7zip/CPP/Windows/Control/ComboBox.h +82 -0
- data/ext/p7zip/CPP/Windows/Control/Controls.cpp +515 -0
- data/ext/p7zip/CPP/Windows/Control/Dialog.cpp +560 -0
- data/ext/p7zip/CPP/Windows/Control/Dialog.h +179 -0
- data/ext/p7zip/CPP/Windows/Control/DialogImpl.h +73 -0
- data/ext/p7zip/CPP/Windows/Control/Edit.h +24 -0
- data/ext/p7zip/CPP/Windows/Control/ListView.h +164 -0
- data/ext/p7zip/CPP/Windows/Control/ProgressBar.h +34 -0
- data/ext/p7zip/CPP/Windows/Control/Static.h +23 -0
- data/ext/p7zip/CPP/Windows/Control/StatusBar.h +56 -0
- data/ext/p7zip/CPP/Windows/Control/Window2.cpp +211 -0
- data/ext/p7zip/CPP/Windows/Control/Window2.h +111 -0
- data/ext/p7zip/CPP/Windows/DLL.cpp +193 -0
- data/ext/p7zip/CPP/Windows/DLL.h +48 -0
- data/ext/p7zip/CPP/Windows/Defs.h +17 -0
- data/ext/p7zip/CPP/Windows/Error.cpp +58 -0
- data/ext/p7zip/CPP/Windows/Error.h +33 -0
- data/ext/p7zip/CPP/Windows/FileDir.cpp +927 -0
- data/ext/p7zip/CPP/Windows/FileDir.h +115 -0
- data/ext/p7zip/CPP/Windows/FileFind.cpp +604 -0
- data/ext/p7zip/CPP/Windows/FileFind.h +126 -0
- data/ext/p7zip/CPP/Windows/FileIO.cpp +475 -0
- data/ext/p7zip/CPP/Windows/FileIO.h +110 -0
- data/ext/p7zip/CPP/Windows/FileName.cpp +50 -0
- data/ext/p7zip/CPP/Windows/FileName.h +27 -0
- data/ext/p7zip/CPP/Windows/Menu.h +4 -0
- data/ext/p7zip/CPP/Windows/NtCheck.h +44 -0
- data/ext/p7zip/CPP/Windows/PropVariant.cpp +243 -0
- data/ext/p7zip/CPP/Windows/PropVariant.h +56 -0
- data/ext/p7zip/CPP/Windows/PropVariantConversions.cpp +142 -0
- data/ext/p7zip/CPP/Windows/PropVariantConversions.h +14 -0
- data/ext/p7zip/CPP/Windows/PropVariantUtils.cpp +78 -0
- data/ext/p7zip/CPP/Windows/PropVariantUtils.h +28 -0
- data/ext/p7zip/CPP/Windows/Registry.cpp +313 -0
- data/ext/p7zip/CPP/Windows/Registry.h +113 -0
- data/ext/p7zip/CPP/Windows/ResourceString.h +22 -0
- data/ext/p7zip/CPP/Windows/Shell.h +21 -0
- data/ext/p7zip/CPP/Windows/Synchronization.cpp +157 -0
- data/ext/p7zip/CPP/Windows/Synchronization.h +187 -0
- data/ext/p7zip/CPP/Windows/Synchronization2.h +218 -0
- data/ext/p7zip/CPP/Windows/System.cpp +166 -0
- data/ext/p7zip/CPP/Windows/System.h +16 -0
- data/ext/p7zip/CPP/Windows/Thread.h +41 -0
- data/ext/p7zip/CPP/Windows/Time.cpp +88 -0
- data/ext/p7zip/CPP/Windows/Time.h +21 -0
- data/ext/p7zip/CPP/Windows/Window.cpp +101 -0
- data/ext/p7zip/CPP/Windows/Window.h +43 -0
- data/ext/p7zip/CPP/include_windows/basetyps.h +19 -0
- data/ext/p7zip/CPP/include_windows/tchar.h +89 -0
- data/ext/p7zip/CPP/include_windows/windows.h +194 -0
- data/ext/p7zip/CPP/myWindows/StdAfx.h +124 -0
- data/ext/p7zip/CPP/myWindows/config.h +67 -0
- data/ext/p7zip/CPP/myWindows/initguid.h +4 -0
- data/ext/p7zip/CPP/myWindows/makefile +21 -0
- data/ext/p7zip/CPP/myWindows/makefile.depend +32 -0
- data/ext/p7zip/CPP/myWindows/makefile.list +28 -0
- data/ext/p7zip/CPP/myWindows/myAddExeFlag.cpp +20 -0
- data/ext/p7zip/CPP/myWindows/myGetTickCount.cpp +8 -0
- data/ext/p7zip/CPP/myWindows/myPrivate.h +17 -0
- data/ext/p7zip/CPP/myWindows/mySplitCommandLine.cpp +82 -0
- data/ext/p7zip/CPP/myWindows/test_emul.cpp +745 -0
- data/ext/p7zip/CPP/myWindows/wine_GetXXXDefaultLangID.cpp +741 -0
- data/ext/p7zip/CPP/myWindows/wine_date_and_time.cpp +434 -0
- data/ext/p7zip/ChangeLog +914 -0
- data/ext/p7zip/DOCS/7zC.txt +194 -0
- data/ext/p7zip/DOCS/7zFormat.txt +469 -0
- data/ext/p7zip/DOCS/License.txt +52 -0
- data/ext/p7zip/DOCS/MANUAL/commands/add.htm +87 -0
- data/ext/p7zip/DOCS/MANUAL/commands/bench.htm +79 -0
- data/ext/p7zip/DOCS/MANUAL/commands/delete.htm +59 -0
- data/ext/p7zip/DOCS/MANUAL/commands/extract.htm +91 -0
- data/ext/p7zip/DOCS/MANUAL/commands/extract_full.htm +68 -0
- data/ext/p7zip/DOCS/MANUAL/commands/index.htm +33 -0
- data/ext/p7zip/DOCS/MANUAL/commands/list.htm +77 -0
- data/ext/p7zip/DOCS/MANUAL/commands/style.css +232 -0
- data/ext/p7zip/DOCS/MANUAL/commands/test.htm +46 -0
- data/ext/p7zip/DOCS/MANUAL/commands/update.htm +66 -0
- data/ext/p7zip/DOCS/MANUAL/exit_codes.htm +27 -0
- data/ext/p7zip/DOCS/MANUAL/index.htm +29 -0
- data/ext/p7zip/DOCS/MANUAL/style.css +232 -0
- data/ext/p7zip/DOCS/MANUAL/switches/ar_exclude.htm +56 -0
- data/ext/p7zip/DOCS/MANUAL/switches/ar_include.htm +83 -0
- data/ext/p7zip/DOCS/MANUAL/switches/ar_no.htm +52 -0
- data/ext/p7zip/DOCS/MANUAL/switches/charset.htm +49 -0
- data/ext/p7zip/DOCS/MANUAL/switches/exclude.htm +60 -0
- data/ext/p7zip/DOCS/MANUAL/switches/include.htm +87 -0
- data/ext/p7zip/DOCS/MANUAL/switches/index.htm +64 -0
- data/ext/p7zip/DOCS/MANUAL/switches/large_pages.htm +50 -0
- data/ext/p7zip/DOCS/MANUAL/switches/list_tech.htm +36 -0
- data/ext/p7zip/DOCS/MANUAL/switches/method.htm +625 -0
- data/ext/p7zip/DOCS/MANUAL/switches/output_dir.htm +53 -0
- data/ext/p7zip/DOCS/MANUAL/switches/overwrite.htm +56 -0
- data/ext/p7zip/DOCS/MANUAL/switches/password.htm +54 -0
- data/ext/p7zip/DOCS/MANUAL/switches/recurse.htm +83 -0
- data/ext/p7zip/DOCS/MANUAL/switches/sfx.htm +156 -0
- data/ext/p7zip/DOCS/MANUAL/switches/ssc.htm +50 -0
- data/ext/p7zip/DOCS/MANUAL/switches/stdin.htm +55 -0
- data/ext/p7zip/DOCS/MANUAL/switches/stdout.htm +50 -0
- data/ext/p7zip/DOCS/MANUAL/switches/stop_switch.htm +31 -0
- data/ext/p7zip/DOCS/MANUAL/switches/style.css +232 -0
- data/ext/p7zip/DOCS/MANUAL/switches/type.htm +83 -0
- data/ext/p7zip/DOCS/MANUAL/switches/update.htm +176 -0
- data/ext/p7zip/DOCS/MANUAL/switches/volume.htm +49 -0
- data/ext/p7zip/DOCS/MANUAL/switches/working_dir.htm +55 -0
- data/ext/p7zip/DOCS/MANUAL/switches/yes.htm +48 -0
- data/ext/p7zip/DOCS/MANUAL/syntax.htm +120 -0
- data/ext/p7zip/DOCS/Methods.txt +152 -0
- data/ext/p7zip/DOCS/copying.txt +504 -0
- data/ext/p7zip/DOCS/history.txt +456 -0
- data/ext/p7zip/DOCS/lzma.txt +598 -0
- data/ext/p7zip/DOCS/readme.txt +181 -0
- data/ext/p7zip/DOCS/unRarLicense.txt +41 -0
- data/ext/p7zip/README +358 -0
- data/ext/p7zip/TODO +39 -0
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/ChangeLog +41 -0
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/readme +21 -0
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/readme.u7z +30 -0
- data/ext/p7zip/contrib/VirtualFileSystemForMidnightCommander/u7z +133 -0
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/README +21 -0
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/check/check.sh +117 -0
- 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 +33 -0
- data/ext/p7zip/contrib/gzip-like_CLI_wrapper_for_7z/p7zip +144 -0
- data/ext/p7zip/contrib/qnx630sp3/qnx630sp3-shared +14 -0
- data/ext/p7zip/contrib/qnx630sp3/qnx630sp3-static +10 -0
- data/ext/p7zip/extconf.rb +101 -0
- data/ext/p7zip/install.sh +206 -0
- data/ext/p7zip/install_local_context_menu.sh +18 -0
- data/ext/p7zip/integration_context_menu.txt +51 -0
- data/ext/p7zip/makefile +181 -0
- data/ext/p7zip/makefile.aix_gcc +22 -0
- data/ext/p7zip/makefile.beos +18 -0
- data/ext/p7zip/makefile.crc32 +8 -0
- data/ext/p7zip/makefile.cygwin +20 -0
- data/ext/p7zip/makefile.cygwin_asm +21 -0
- data/ext/p7zip/makefile.djgpp_old +21 -0
- data/ext/p7zip/makefile.djgpp_watt +47 -0
- data/ext/p7zip/makefile.freebsd5 +20 -0
- data/ext/p7zip/makefile.freebsd6 +20 -0
- data/ext/p7zip/makefile.glb +39 -0
- data/ext/p7zip/makefile.gprof +18 -0
- data/ext/p7zip/makefile.hpux-acc +17 -0
- data/ext/p7zip/makefile.hpux-acc_64 +19 -0
- data/ext/p7zip/makefile.hpux-gcc +21 -0
- data/ext/p7zip/makefile.linux_amd64 +22 -0
- data/ext/p7zip/makefile.linux_amd64_asm +24 -0
- data/ext/p7zip/makefile.linux_amd64_asm_icc +27 -0
- data/ext/p7zip/makefile.linux_any_cpu +22 -0
- data/ext/p7zip/makefile.linux_any_cpu_gcc_4.X +24 -0
- data/ext/p7zip/makefile.linux_clang_amd64 +22 -0
- data/ext/p7zip/makefile.linux_cross_arm +22 -0
- data/ext/p7zip/makefile.linux_gcc_2.95_no_need_for_libstdc +20 -0
- data/ext/p7zip/makefile.linux_other +23 -0
- data/ext/p7zip/makefile.linux_s390x +23 -0
- data/ext/p7zip/makefile.linux_x86_asm_gcc_4.X +26 -0
- data/ext/p7zip/makefile.linux_x86_asm_gcc_4.X_fltk +26 -0
- data/ext/p7zip/makefile.linux_x86_asm_gcc_mudflap_4.X +26 -0
- data/ext/p7zip/makefile.linux_x86_asm_icc +25 -0
- data/ext/p7zip/makefile.linux_x86_icc +24 -0
- data/ext/p7zip/makefile.machine_base +22 -0
- data/ext/p7zip/makefile.macosx_32bits +20 -0
- data/ext/p7zip/makefile.macosx_32bits_asm +23 -0
- data/ext/p7zip/makefile.macosx_32bits_ppc +21 -0
- data/ext/p7zip/makefile.macosx_64bits +20 -0
- data/ext/p7zip/makefile.macosx_llvm_64bits +20 -0
- data/ext/p7zip/makefile.netbsd +21 -0
- data/ext/p7zip/makefile.netware_asm_gcc_3.X +41 -0
- data/ext/p7zip/makefile.oldmake +174 -0
- data/ext/p7zip/makefile.openbsd +20 -0
- data/ext/p7zip/makefile.openbsd_no_port +20 -0
- data/ext/p7zip/makefile.qnx_shared.bin +21 -0
- data/ext/p7zip/makefile.qnx_static +21 -0
- data/ext/p7zip/makefile.rules +661 -0
- data/ext/p7zip/makefile.solaris_sparc_CC_32 +21 -0
- data/ext/p7zip/makefile.solaris_sparc_CC_64 +23 -0
- data/ext/p7zip/makefile.solaris_sparc_gcc +21 -0
- data/ext/p7zip/makefile.solaris_x86 +19 -0
- data/ext/p7zip/makefile.tru64 +22 -0
- data/ext/seven_zip_ruby/extconf.rb +127 -0
- data/ext/seven_zip_ruby/guid_defs.h +29 -0
- data/ext/seven_zip_ruby/mutex.h +10 -0
- data/ext/seven_zip_ruby/posix/mutex.h +94 -0
- data/ext/seven_zip_ruby/seven_zip_archive.cpp +1876 -0
- data/ext/seven_zip_ruby/seven_zip_archive.h +548 -0
- data/ext/seven_zip_ruby/util_common.cpp +28 -0
- data/ext/seven_zip_ruby/util_common.h +515 -0
- data/ext/seven_zip_ruby/utils.cpp +575 -0
- data/ext/seven_zip_ruby/utils.h +25 -0
- data/ext/seven_zip_ruby/win32/mutex.h +130 -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/archive_info.rb +21 -0
- data/lib/seven_zip_ruby/entry_info.rb +46 -0
- data/lib/seven_zip_ruby/exception.rb +10 -0
- data/lib/seven_zip_ruby/seven_zip_reader.rb +537 -0
- data/lib/seven_zip_ruby/seven_zip_writer.rb +502 -0
- data/lib/seven_zip_ruby/update_info.rb +116 -0
- data/lib/seven_zip_ruby/version.rb +3 -0
- data/lib/seven_zip_ruby.rb +34 -0
- data/seven-zip.gemspec +35 -0
- data/spec/seven_zip.7z +0 -0
- data/spec/seven_zip_password.7z +0 -0
- data/spec/seven_zip_ruby_spec.rb +703 -0
- data/spec/seven_zip_ruby_spec_helper.rb +144 -0
- metadata +829 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// Windows/Synchronization.h
|
|
2
|
+
|
|
3
|
+
#ifndef __WINDOWS_SYNCHRONIZATION_H
|
|
4
|
+
#define __WINDOWS_SYNCHRONIZATION_H
|
|
5
|
+
|
|
6
|
+
#include "Defs.h"
|
|
7
|
+
|
|
8
|
+
extern "C"
|
|
9
|
+
{
|
|
10
|
+
#include "../../C/Threads.h"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#ifdef _WIN32
|
|
14
|
+
#include "Handle.h"
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
namespace NWindows {
|
|
18
|
+
namespace NSynchronization {
|
|
19
|
+
|
|
20
|
+
class Uncopyable {
|
|
21
|
+
protected:
|
|
22
|
+
Uncopyable() {} // allow construction
|
|
23
|
+
~Uncopyable() {} // and destruction of derived objects...
|
|
24
|
+
private:
|
|
25
|
+
Uncopyable(const Uncopyable&); // ...but prevent copying
|
|
26
|
+
Uncopyable& operator=(const Uncopyable&);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class CBaseEvent // FIXME : private Uncopyable
|
|
31
|
+
{
|
|
32
|
+
protected:
|
|
33
|
+
::CEvent _object;
|
|
34
|
+
public:
|
|
35
|
+
bool IsCreated() { return Event_IsCreated(&_object) != 0; }
|
|
36
|
+
#ifdef _WIN32
|
|
37
|
+
operator HANDLE() { return _object.handle; }
|
|
38
|
+
#endif
|
|
39
|
+
CBaseEvent() { Event_Construct(&_object); }
|
|
40
|
+
~CBaseEvent() { Close(); }
|
|
41
|
+
WRes Close() { return Event_Close(&_object); }
|
|
42
|
+
#ifdef _WIN32
|
|
43
|
+
WRes Create(bool manualReset, bool initiallyOwn, LPCTSTR name = NULL,
|
|
44
|
+
LPSECURITY_ATTRIBUTES securityAttributes = NULL)
|
|
45
|
+
{
|
|
46
|
+
_object.handle = ::CreateEvent(securityAttributes, BoolToBOOL(manualReset),
|
|
47
|
+
BoolToBOOL(initiallyOwn), name);
|
|
48
|
+
if (_object.handle != 0)
|
|
49
|
+
return 0;
|
|
50
|
+
return ::GetLastError();
|
|
51
|
+
}
|
|
52
|
+
WRes Open(DWORD desiredAccess, bool inheritHandle, LPCTSTR name)
|
|
53
|
+
{
|
|
54
|
+
_object.handle = ::OpenEvent(desiredAccess, BoolToBOOL(inheritHandle), name);
|
|
55
|
+
if (_object.handle != 0)
|
|
56
|
+
return 0;
|
|
57
|
+
return ::GetLastError();
|
|
58
|
+
}
|
|
59
|
+
#endif
|
|
60
|
+
|
|
61
|
+
WRes Set() { return Event_Set(&_object); }
|
|
62
|
+
// bool Pulse() { return BOOLToBool(::PulseEvent(_handle)); }
|
|
63
|
+
WRes Reset() { return Event_Reset(&_object); }
|
|
64
|
+
WRes Lock() { return Event_Wait(&_object); }
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
class CManualResetEvent: public CBaseEvent
|
|
68
|
+
{
|
|
69
|
+
public:
|
|
70
|
+
WRes Create(bool initiallyOwn = false)
|
|
71
|
+
{
|
|
72
|
+
return ManualResetEvent_Create(&_object, initiallyOwn ? 1: 0);
|
|
73
|
+
}
|
|
74
|
+
WRes CreateIfNotCreated()
|
|
75
|
+
{
|
|
76
|
+
if (IsCreated())
|
|
77
|
+
return 0;
|
|
78
|
+
return ManualResetEvent_CreateNotSignaled(&_object);
|
|
79
|
+
}
|
|
80
|
+
#ifdef _WIN32
|
|
81
|
+
WRes CreateWithName(bool initiallyOwn, LPCTSTR name)
|
|
82
|
+
{
|
|
83
|
+
return CBaseEvent::Create(true, initiallyOwn, name);
|
|
84
|
+
}
|
|
85
|
+
#endif
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
class CAutoResetEvent: public CBaseEvent
|
|
89
|
+
{
|
|
90
|
+
public:
|
|
91
|
+
WRes Create()
|
|
92
|
+
{
|
|
93
|
+
return AutoResetEvent_CreateNotSignaled(&_object);
|
|
94
|
+
}
|
|
95
|
+
WRes CreateIfNotCreated()
|
|
96
|
+
{
|
|
97
|
+
if (IsCreated())
|
|
98
|
+
return 0;
|
|
99
|
+
return AutoResetEvent_CreateNotSignaled(&_object);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
#ifdef _WIN32
|
|
104
|
+
class CObject: public CHandle
|
|
105
|
+
{
|
|
106
|
+
public:
|
|
107
|
+
WRes Lock(DWORD timeoutInterval = INFINITE)
|
|
108
|
+
{ return (::WaitForSingleObject(_handle, timeoutInterval) == WAIT_OBJECT_0 ? 0 : ::GetLastError()); }
|
|
109
|
+
};
|
|
110
|
+
class CMutex: public CObject
|
|
111
|
+
{
|
|
112
|
+
public:
|
|
113
|
+
WRes Create(bool initiallyOwn, LPCTSTR name = NULL,
|
|
114
|
+
LPSECURITY_ATTRIBUTES securityAttributes = NULL)
|
|
115
|
+
{
|
|
116
|
+
_handle = ::CreateMutex(securityAttributes, BoolToBOOL(initiallyOwn), name);
|
|
117
|
+
if (_handle != 0)
|
|
118
|
+
return 0;
|
|
119
|
+
return ::GetLastError();
|
|
120
|
+
}
|
|
121
|
+
WRes Open(DWORD desiredAccess, bool inheritHandle, LPCTSTR name)
|
|
122
|
+
{
|
|
123
|
+
_handle = ::OpenMutex(desiredAccess, BoolToBOOL(inheritHandle), name);
|
|
124
|
+
if (_handle != 0)
|
|
125
|
+
return 0;
|
|
126
|
+
return ::GetLastError();
|
|
127
|
+
}
|
|
128
|
+
WRes Release()
|
|
129
|
+
{
|
|
130
|
+
return ::ReleaseMutex(_handle) ? 0 : ::GetLastError();
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
class CMutexLock
|
|
134
|
+
{
|
|
135
|
+
CMutex *_object;
|
|
136
|
+
public:
|
|
137
|
+
CMutexLock(CMutex &object): _object(&object) { _object->Lock(); }
|
|
138
|
+
~CMutexLock() { _object->Release(); }
|
|
139
|
+
};
|
|
140
|
+
#endif
|
|
141
|
+
|
|
142
|
+
class CSemaphore : private Uncopyable
|
|
143
|
+
{
|
|
144
|
+
::CSemaphore _object;
|
|
145
|
+
public:
|
|
146
|
+
CSemaphore() { Semaphore_Construct(&_object); }
|
|
147
|
+
~CSemaphore() { Close(); }
|
|
148
|
+
WRes Close() { return Semaphore_Close(&_object); }
|
|
149
|
+
#ifdef _WIN32
|
|
150
|
+
operator HANDLE() { return _object.handle; }
|
|
151
|
+
#endif
|
|
152
|
+
WRes Create(UInt32 initiallyCount, UInt32 maxCount)
|
|
153
|
+
{
|
|
154
|
+
return Semaphore_Create(&_object, initiallyCount, maxCount);
|
|
155
|
+
}
|
|
156
|
+
WRes Release() { return Semaphore_Release1(&_object); }
|
|
157
|
+
WRes Release(UInt32 releaseCount) { return Semaphore_ReleaseN(&_object, releaseCount); }
|
|
158
|
+
WRes Lock() { return Semaphore_Wait(&_object); }
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
class CCriticalSection : private Uncopyable
|
|
162
|
+
{
|
|
163
|
+
::CCriticalSection _object;
|
|
164
|
+
public:
|
|
165
|
+
CCriticalSection() { CriticalSection_Init(&_object); }
|
|
166
|
+
~CCriticalSection() { CriticalSection_Delete(&_object); }
|
|
167
|
+
void Enter() { CriticalSection_Enter(&_object); }
|
|
168
|
+
void Leave() { CriticalSection_Leave(&_object); }
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
class CCriticalSectionLock : private Uncopyable
|
|
172
|
+
{
|
|
173
|
+
CCriticalSection *_object;
|
|
174
|
+
void Unlock() { _object->Leave(); }
|
|
175
|
+
public:
|
|
176
|
+
CCriticalSectionLock(CCriticalSection &object): _object(&object) {_object->Enter(); }
|
|
177
|
+
~CCriticalSectionLock() { Unlock(); }
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
}}
|
|
181
|
+
|
|
182
|
+
#ifndef _WIN32
|
|
183
|
+
#include "Synchronization2.h"
|
|
184
|
+
#endif
|
|
185
|
+
|
|
186
|
+
#endif
|
|
187
|
+
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
// Windows/Synchronization.h
|
|
2
|
+
|
|
3
|
+
#ifdef ENV_BEOS
|
|
4
|
+
#include <Locker.h>
|
|
5
|
+
#include <kernel/OS.h>
|
|
6
|
+
#include <list>
|
|
7
|
+
#endif
|
|
8
|
+
|
|
9
|
+
/* Remark : WFMO = WaitForMultipleObjects */
|
|
10
|
+
|
|
11
|
+
namespace NWindows { namespace NSynchronization { struct CBaseHandleWFMO; } }
|
|
12
|
+
|
|
13
|
+
typedef NWindows::NSynchronization::CBaseHandleWFMO *HANDLE;
|
|
14
|
+
|
|
15
|
+
DWORD WINAPI WaitForMultipleObjects( DWORD count, const HANDLE *handles, BOOL wait_all, DWORD timeout );
|
|
16
|
+
|
|
17
|
+
namespace NWindows {
|
|
18
|
+
namespace NSynchronization {
|
|
19
|
+
|
|
20
|
+
#ifdef ENV_BEOS
|
|
21
|
+
class CSynchro : BLocker, private Uncopyable
|
|
22
|
+
{
|
|
23
|
+
#define MAX_THREAD 256
|
|
24
|
+
thread_id _waiting[MAX_THREAD]; // std::list<thread_id> _waiting;
|
|
25
|
+
int index_waiting;
|
|
26
|
+
public:
|
|
27
|
+
CSynchro() { index_waiting = 0; }
|
|
28
|
+
void Create() { index_waiting = 0; }
|
|
29
|
+
~CSynchro() {}
|
|
30
|
+
void Enter() { Lock(); }
|
|
31
|
+
void Leave() { Unlock(); }
|
|
32
|
+
void WaitCond() {
|
|
33
|
+
_waiting[index_waiting++] = find_thread(NULL); // _waiting.push_back(find_thread(NULL));
|
|
34
|
+
thread_id sender;
|
|
35
|
+
Unlock();
|
|
36
|
+
int msg = receive_data(&sender, NULL, 0);
|
|
37
|
+
Lock();
|
|
38
|
+
}
|
|
39
|
+
void LeaveAndSignal() {
|
|
40
|
+
// Unlock();
|
|
41
|
+
// Lock();
|
|
42
|
+
// for (std::list<thread_id>::iterator index = _waiting.begin(); index != _waiting.end(); index++)
|
|
43
|
+
for(int index = 0 ; index < index_waiting ; index++)
|
|
44
|
+
{
|
|
45
|
+
send_data(_waiting[index], '7zCN', NULL, 0);
|
|
46
|
+
}
|
|
47
|
+
index_waiting = 0; // _waiting.clear();
|
|
48
|
+
Unlock();
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
#else // #ifdef ENV_BEOS
|
|
52
|
+
#ifdef DEBUG_SYNCHRO
|
|
53
|
+
class CSynchro: private Uncopyable
|
|
54
|
+
{
|
|
55
|
+
pthread_mutex_t _object;
|
|
56
|
+
pthread_cond_t _cond;
|
|
57
|
+
bool _isValid;
|
|
58
|
+
void dump_error(int ligne,int ret,const char *text,void *param);
|
|
59
|
+
public:
|
|
60
|
+
CSynchro();
|
|
61
|
+
~CSynchro();
|
|
62
|
+
void Create();
|
|
63
|
+
void Enter();
|
|
64
|
+
void Leave();
|
|
65
|
+
void WaitCond();
|
|
66
|
+
void LeaveAndSignal();
|
|
67
|
+
};
|
|
68
|
+
#else // #ifdef DEBUG_SYNCHRO
|
|
69
|
+
class CSynchro : private Uncopyable
|
|
70
|
+
{
|
|
71
|
+
pthread_mutex_t _object;
|
|
72
|
+
pthread_cond_t _cond;
|
|
73
|
+
bool _isValid;
|
|
74
|
+
public:
|
|
75
|
+
CSynchro() { _isValid = false; }
|
|
76
|
+
~CSynchro() {
|
|
77
|
+
if (_isValid) {
|
|
78
|
+
::pthread_mutex_destroy(&_object);
|
|
79
|
+
::pthread_cond_destroy(&_cond);
|
|
80
|
+
}
|
|
81
|
+
_isValid = false;
|
|
82
|
+
}
|
|
83
|
+
void Create() {
|
|
84
|
+
::pthread_mutex_init(&_object,0);
|
|
85
|
+
::pthread_cond_init(&_cond,0);
|
|
86
|
+
}
|
|
87
|
+
void Enter() {
|
|
88
|
+
::pthread_mutex_lock(&_object);
|
|
89
|
+
}
|
|
90
|
+
void Leave() {
|
|
91
|
+
::pthread_mutex_unlock(&_object);
|
|
92
|
+
}
|
|
93
|
+
void WaitCond() {
|
|
94
|
+
::pthread_cond_wait(&_cond, &_object);
|
|
95
|
+
}
|
|
96
|
+
void LeaveAndSignal() {
|
|
97
|
+
::pthread_cond_broadcast(&_cond);
|
|
98
|
+
::pthread_mutex_unlock(&_object);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
#endif // #ifdef DEBUG_SYNCHRO
|
|
102
|
+
#endif // #ifdef ENV_BEOS
|
|
103
|
+
|
|
104
|
+
struct CBaseHandleWFMO // FIXME : private Uncopyable
|
|
105
|
+
{
|
|
106
|
+
CSynchro *_sync;
|
|
107
|
+
|
|
108
|
+
CBaseHandleWFMO() { }
|
|
109
|
+
|
|
110
|
+
operator HANDLE() { return this; }
|
|
111
|
+
virtual bool IsSignaledAndUpdate() = 0;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
class CBaseEventWFMO : public CBaseHandleWFMO
|
|
115
|
+
{
|
|
116
|
+
bool _manual_reset;
|
|
117
|
+
bool _state;
|
|
118
|
+
|
|
119
|
+
public:
|
|
120
|
+
|
|
121
|
+
bool IsCreated() { return (this->_sync != 0); }
|
|
122
|
+
CBaseEventWFMO() { this->_sync = 0; }
|
|
123
|
+
~CBaseEventWFMO() { Close(); }
|
|
124
|
+
|
|
125
|
+
WRes Close() { this->_sync = 0; return S_OK; }
|
|
126
|
+
|
|
127
|
+
WRes Create(CSynchro *sync,bool manualReset, bool initiallyOwn)
|
|
128
|
+
{
|
|
129
|
+
this->_sync = sync;
|
|
130
|
+
this->_manual_reset = manualReset;
|
|
131
|
+
this->_state = initiallyOwn;
|
|
132
|
+
return S_OK;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
WRes Set() {
|
|
136
|
+
this->_sync->Enter();
|
|
137
|
+
this->_state = true;
|
|
138
|
+
this->_sync->LeaveAndSignal();
|
|
139
|
+
return S_OK;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
WRes Reset() {
|
|
143
|
+
this->_sync->Enter();
|
|
144
|
+
this->_state = false;
|
|
145
|
+
this->_sync->Leave();
|
|
146
|
+
return S_OK;
|
|
147
|
+
}
|
|
148
|
+
virtual bool IsSignaledAndUpdate() {
|
|
149
|
+
if (this->_state == true) {
|
|
150
|
+
if (this->_manual_reset == false) this->_state = false;
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
class CManualResetEventWFMO: public CBaseEventWFMO
|
|
158
|
+
{
|
|
159
|
+
public:
|
|
160
|
+
WRes Create(CSynchro *sync,bool initiallyOwn = false) { return CBaseEventWFMO::Create(sync,true, initiallyOwn); }
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
class CAutoResetEventWFMO: public CBaseEventWFMO
|
|
164
|
+
{
|
|
165
|
+
public:
|
|
166
|
+
WRes Create(CSynchro *sync) { return CBaseEventWFMO::Create(sync,false, false); }
|
|
167
|
+
WRes CreateIfNotCreated(CSynchro *sync)
|
|
168
|
+
{
|
|
169
|
+
if (IsCreated())
|
|
170
|
+
return 0;
|
|
171
|
+
return CBaseEventWFMO::Create(sync,false, false);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
class CSemaphoreWFMO : public CBaseHandleWFMO
|
|
176
|
+
{
|
|
177
|
+
LONG _count;
|
|
178
|
+
LONG _maxCount;
|
|
179
|
+
|
|
180
|
+
public:
|
|
181
|
+
CSemaphoreWFMO() : _count(0), _maxCount(0) { this->_sync=0;}
|
|
182
|
+
WRes Create(CSynchro *sync,LONG initiallyCount, LONG maxCount)
|
|
183
|
+
{
|
|
184
|
+
if ((initiallyCount < 0) || (initiallyCount > maxCount) || (maxCount < 1)) return S_FALSE;
|
|
185
|
+
this->_sync = sync;
|
|
186
|
+
this->_count = initiallyCount;
|
|
187
|
+
this->_maxCount = maxCount;
|
|
188
|
+
return S_OK;
|
|
189
|
+
}
|
|
190
|
+
WRes Release(LONG releaseCount = 1) {
|
|
191
|
+
if (releaseCount < 1) return S_FALSE;
|
|
192
|
+
|
|
193
|
+
this->_sync->Enter();
|
|
194
|
+
LONG newCount = this->_count + releaseCount;
|
|
195
|
+
if (newCount > this->_maxCount)
|
|
196
|
+
{
|
|
197
|
+
this->_sync->Leave();
|
|
198
|
+
return S_FALSE;
|
|
199
|
+
}
|
|
200
|
+
this->_count = newCount;
|
|
201
|
+
|
|
202
|
+
this->_sync->LeaveAndSignal();
|
|
203
|
+
|
|
204
|
+
return S_OK;
|
|
205
|
+
}
|
|
206
|
+
WRes Close() { this->_sync=0; return S_OK; }
|
|
207
|
+
|
|
208
|
+
virtual bool IsSignaledAndUpdate() {
|
|
209
|
+
if (this->_count > 0) {
|
|
210
|
+
this->_count--;
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
}}
|
|
218
|
+
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
#include <stdio.h>
|
|
2
|
+
#include <stdlib.h>
|
|
3
|
+
|
|
4
|
+
#if defined (__NetBSD__) || defined(__OpenBSD__) || defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
|
|
5
|
+
#include <sys/param.h>
|
|
6
|
+
#include <sys/sysctl.h>
|
|
7
|
+
#elif defined(__linux__) || defined(__CYGWIN__) || defined(sun) || defined(__NETWARE__)
|
|
8
|
+
#include <unistd.h>
|
|
9
|
+
#elif defined(hpux) || defined(__hpux)
|
|
10
|
+
#include <sys/param.h>
|
|
11
|
+
#include <sys/pstat.h>
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#if defined(__NETWARE__)
|
|
15
|
+
#include <sys/sysinfo.h>
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
#if defined(ENV_BEOS)
|
|
19
|
+
#include <be/kernel/OS.h>
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
#include "Common/Types.h"
|
|
24
|
+
|
|
25
|
+
namespace NWindows
|
|
26
|
+
{
|
|
27
|
+
namespace NSystem
|
|
28
|
+
{
|
|
29
|
+
/************************ GetNumberOfProcessors ************************/
|
|
30
|
+
|
|
31
|
+
#if defined (__NetBSD__) || defined(__OpenBSD__)
|
|
32
|
+
UInt32 GetNumberOfProcessors() {
|
|
33
|
+
int mib[2], value;
|
|
34
|
+
int nbcpu = 1;
|
|
35
|
+
|
|
36
|
+
mib[0] = CTL_HW;
|
|
37
|
+
mib[1] = HW_NCPU;
|
|
38
|
+
size_t len = sizeof(size_t);
|
|
39
|
+
if (sysctl(mib, 2, &value, &len, NULL, 0) >= 0)
|
|
40
|
+
if (value > nbcpu)
|
|
41
|
+
nbcpu = value;
|
|
42
|
+
return nbcpu;
|
|
43
|
+
}
|
|
44
|
+
#elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
|
|
45
|
+
UInt32 GetNumberOfProcessors() {
|
|
46
|
+
int nbcpu = 1;
|
|
47
|
+
size_t value;
|
|
48
|
+
size_t len = sizeof(value);
|
|
49
|
+
if (sysctlbyname("hw.ncpu", &value, &len, NULL, 0) == 0)
|
|
50
|
+
nbcpu = value;
|
|
51
|
+
return nbcpu;
|
|
52
|
+
}
|
|
53
|
+
#elif defined (__APPLE__)
|
|
54
|
+
UInt32 GetNumberOfProcessors() {
|
|
55
|
+
int nbcpu = 1,value;
|
|
56
|
+
size_t valSize = sizeof(value);
|
|
57
|
+
if (sysctlbyname ("hw.ncpu", &value, &valSize, NULL, 0) == 0)
|
|
58
|
+
nbcpu = value;
|
|
59
|
+
return nbcpu;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
#elif defined(__linux__) || defined(__CYGWIN__) || defined(sun)
|
|
63
|
+
UInt32 GetNumberOfProcessors() {
|
|
64
|
+
int nbcpu = sysconf (_SC_NPROCESSORS_CONF);
|
|
65
|
+
if (nbcpu < 1) nbcpu = 1;
|
|
66
|
+
return nbcpu;
|
|
67
|
+
}
|
|
68
|
+
#elif defined(hpux) || defined(__hpux)
|
|
69
|
+
UInt32 GetNumberOfProcessors() {
|
|
70
|
+
struct pst_dynamic psd;
|
|
71
|
+
if (pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0) != -1)
|
|
72
|
+
return (UInt32)psd.psd_proc_cnt;
|
|
73
|
+
return 1;
|
|
74
|
+
}
|
|
75
|
+
#elif defined(__NETWARE__)
|
|
76
|
+
UInt32 GetNumberOfProcessors() {
|
|
77
|
+
// int nbcpu = get_nprocs_conf();
|
|
78
|
+
int nbcpu = get_nprocs();
|
|
79
|
+
if (nbcpu < 1) nbcpu = 1;
|
|
80
|
+
return nbcpu;
|
|
81
|
+
}
|
|
82
|
+
#elif defined(ENV_BEOS)
|
|
83
|
+
UInt32 GetNumberOfProcessors() {
|
|
84
|
+
system_info info;
|
|
85
|
+
get_system_info(&info);
|
|
86
|
+
int nbcpu = info.cpu_count;
|
|
87
|
+
if (nbcpu < 1) nbcpu = 1;
|
|
88
|
+
return nbcpu;
|
|
89
|
+
}
|
|
90
|
+
#else
|
|
91
|
+
#warning Generic GetNumberOfProcessors
|
|
92
|
+
UInt32 GetNumberOfProcessors() {
|
|
93
|
+
return 1;
|
|
94
|
+
}
|
|
95
|
+
#endif
|
|
96
|
+
|
|
97
|
+
/************************ GetRamSize ************************/
|
|
98
|
+
UInt64 GetRamSize() {
|
|
99
|
+
UInt64 ullTotalPhys = 128 * 1024 * 1024; // default : 128MB
|
|
100
|
+
|
|
101
|
+
#ifdef linux
|
|
102
|
+
FILE * f = fopen( "/proc/meminfo", "r" );
|
|
103
|
+
if (f)
|
|
104
|
+
{
|
|
105
|
+
char buffer[256];
|
|
106
|
+
unsigned long total;
|
|
107
|
+
|
|
108
|
+
ullTotalPhys = 0;
|
|
109
|
+
|
|
110
|
+
while (fgets( buffer, sizeof(buffer), f ))
|
|
111
|
+
{
|
|
112
|
+
/* old style /proc/meminfo ... */
|
|
113
|
+
if (sscanf( buffer, "Mem: %lu", &total))
|
|
114
|
+
{
|
|
115
|
+
ullTotalPhys += total;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* new style /proc/meminfo ... */
|
|
119
|
+
if (sscanf(buffer, "MemTotal: %lu", &total))
|
|
120
|
+
ullTotalPhys = ((UInt64)total)*1024;
|
|
121
|
+
}
|
|
122
|
+
fclose( f );
|
|
123
|
+
}
|
|
124
|
+
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__APPLE__)
|
|
125
|
+
#ifdef HW_MEMSIZE
|
|
126
|
+
uint64_t val = 0; // support 2Gb+ RAM
|
|
127
|
+
int mib[2] = { CTL_HW, HW_MEMSIZE };
|
|
128
|
+
#else // HW_MEMSIZE
|
|
129
|
+
unsigned int val = 0; // For old system
|
|
130
|
+
int mib[2] = { CTL_HW, HW_PHYSMEM };
|
|
131
|
+
#endif // HW_MEMSIZE
|
|
132
|
+
size_t size_sys = sizeof(val);
|
|
133
|
+
|
|
134
|
+
sysctl(mib, 2, &val, &size_sys, NULL, 0);
|
|
135
|
+
if (val) ullTotalPhys = val;
|
|
136
|
+
#elif defined(__CYGWIN__)
|
|
137
|
+
unsigned long pagesize=4096; // FIXME - sysconf(_SC_PAGESIZE) returns 65536 !?
|
|
138
|
+
// see http://readlist.com/lists/cygwin.com/cygwin/0/3313.html
|
|
139
|
+
unsigned long maxpages=sysconf(_SC_PHYS_PAGES);
|
|
140
|
+
ullTotalPhys = ((UInt64)pagesize)*maxpages;
|
|
141
|
+
#elif defined ( sun ) || defined(__NETWARE__)
|
|
142
|
+
unsigned long pagesize=sysconf(_SC_PAGESIZE);
|
|
143
|
+
unsigned long maxpages=sysconf(_SC_PHYS_PAGES);
|
|
144
|
+
ullTotalPhys = ((UInt64)pagesize)*maxpages;
|
|
145
|
+
#elif defined(hpux) || defined(__hpux)
|
|
146
|
+
struct pst_static pst;
|
|
147
|
+
union pstun pu;
|
|
148
|
+
|
|
149
|
+
pu.pst_static = &pst;
|
|
150
|
+
if ( pstat( PSTAT_STATIC, pu, (size_t)sizeof(pst), (size_t)0, 0 ) != -1 ) {
|
|
151
|
+
ullTotalPhys = ((UInt64)pst.physical_memory)*pst.page_size;
|
|
152
|
+
}
|
|
153
|
+
#elif defined(ENV_BEOS)
|
|
154
|
+
system_info info;
|
|
155
|
+
get_system_info(&info);
|
|
156
|
+
ullTotalPhys = info.max_pages;
|
|
157
|
+
ullTotalPhys *= 4096;
|
|
158
|
+
#else
|
|
159
|
+
#warning Generic GetRamSize
|
|
160
|
+
#endif
|
|
161
|
+
return ullTotalPhys;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Windows/Thread.h
|
|
2
|
+
|
|
3
|
+
#ifndef __WINDOWS_THREAD_H
|
|
4
|
+
#define __WINDOWS_THREAD_H
|
|
5
|
+
|
|
6
|
+
#include "Defs.h"
|
|
7
|
+
|
|
8
|
+
extern "C"
|
|
9
|
+
{
|
|
10
|
+
#include "../../C/Threads.h"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
namespace NWindows {
|
|
14
|
+
|
|
15
|
+
class CThread
|
|
16
|
+
{
|
|
17
|
+
::CThread thread;
|
|
18
|
+
public:
|
|
19
|
+
CThread() { Thread_Construct(&thread); }
|
|
20
|
+
~CThread() { Close(); }
|
|
21
|
+
bool IsCreated() { return Thread_WasCreated(&thread) != 0; }
|
|
22
|
+
WRes Close() { return Thread_Close(&thread); }
|
|
23
|
+
WRes Create(THREAD_FUNC_RET_TYPE (THREAD_FUNC_CALL_TYPE *startAddress)(void *), LPVOID parameter)
|
|
24
|
+
{ return Thread_Create(&thread, startAddress, parameter); }
|
|
25
|
+
WRes Wait() { return Thread_Wait(&thread); }
|
|
26
|
+
|
|
27
|
+
#ifdef _WIN32
|
|
28
|
+
operator HANDLE() { return thread; }
|
|
29
|
+
void Attach(HANDLE handle) { thread = handle; }
|
|
30
|
+
HANDLE Detach() { HANDLE h = thread; thread = NULL; return h; }
|
|
31
|
+
DWORD Resume() { return ::ResumeThread(thread); }
|
|
32
|
+
DWORD Suspend() { return ::SuspendThread(thread); }
|
|
33
|
+
bool Terminate(DWORD exitCode) { return BOOLToBool(::TerminateThread(thread, exitCode)); }
|
|
34
|
+
int GetPriority() { return ::GetThreadPriority(thread); }
|
|
35
|
+
bool SetPriority(int priority) { return BOOLToBool(::SetThreadPriority(thread, priority)); }
|
|
36
|
+
#endif
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
#endif
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Windows/Time.cpp
|
|
2
|
+
|
|
3
|
+
#include "StdAfx.h"
|
|
4
|
+
|
|
5
|
+
#include "Time.h"
|
|
6
|
+
#include "Windows/Defs.h"
|
|
7
|
+
|
|
8
|
+
namespace NWindows {
|
|
9
|
+
namespace NTime {
|
|
10
|
+
|
|
11
|
+
static const UInt32 kFileTimeStartYear = 1601;
|
|
12
|
+
|
|
13
|
+
bool DosTimeToFileTime(UInt32 dosTime, FILETIME &fileTime)
|
|
14
|
+
{
|
|
15
|
+
return BOOLToBool(::DosDateTimeToFileTime((UInt16)(dosTime >> 16), (UInt16)(dosTime & 0xFFFF), &fileTime));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static const UInt32 kHighDosTime = 0xFF9FBF7D;
|
|
19
|
+
static const UInt32 kLowDosTime = 0x210000;
|
|
20
|
+
|
|
21
|
+
bool FileTimeToDosTime(const FILETIME &fileTime, UInt32 &dosTime)
|
|
22
|
+
{
|
|
23
|
+
WORD datePart, timePart;
|
|
24
|
+
if (!::FileTimeToDosDateTime(&fileTime, &datePart, &timePart))
|
|
25
|
+
{
|
|
26
|
+
dosTime = (fileTime.dwHighDateTime >= 0x01C00000) ? kHighDosTime : kLowDosTime;
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
dosTime = (((UInt32)datePart) << 16) + timePart;
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static const UInt32 kNumTimeQuantumsInSecond = 10000000;
|
|
34
|
+
static const UInt64 kUnixTimeStartValue = ((UInt64)kNumTimeQuantumsInSecond) * 60 * 60 * 24 * 134774;
|
|
35
|
+
|
|
36
|
+
void UnixTimeToFileTime(UInt32 unixTime, FILETIME &fileTime)
|
|
37
|
+
{
|
|
38
|
+
UInt64 v = kUnixTimeStartValue + ((UInt64)unixTime) * kNumTimeQuantumsInSecond;
|
|
39
|
+
fileTime.dwLowDateTime = (DWORD)v;
|
|
40
|
+
fileTime.dwHighDateTime = (DWORD)(v >> 32);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
bool FileTimeToUnixTime(const FILETIME &fileTime, UInt32 &unixTime)
|
|
44
|
+
{
|
|
45
|
+
UInt64 winTime = (((UInt64)fileTime.dwHighDateTime) << 32) + fileTime.dwLowDateTime;
|
|
46
|
+
if (winTime < kUnixTimeStartValue)
|
|
47
|
+
{
|
|
48
|
+
unixTime = 0;
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
winTime = (winTime - kUnixTimeStartValue) / kNumTimeQuantumsInSecond;
|
|
52
|
+
if (winTime > 0xFFFFFFFF)
|
|
53
|
+
{
|
|
54
|
+
unixTime = 0xFFFFFFFF;
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
unixTime = (UInt32)winTime;
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
bool GetSecondsSince1601(unsigned year, unsigned month, unsigned day,
|
|
62
|
+
unsigned hour, unsigned min, unsigned sec, UInt64 &resSeconds)
|
|
63
|
+
{
|
|
64
|
+
resSeconds = 0;
|
|
65
|
+
if (year < kFileTimeStartYear || year >= 10000 || month < 1 || month > 12 ||
|
|
66
|
+
day < 1 || day > 31 || hour > 23 || min > 59 || sec > 59)
|
|
67
|
+
return false;
|
|
68
|
+
UInt32 numYears = year - kFileTimeStartYear;
|
|
69
|
+
UInt32 numDays = numYears * 365 + numYears / 4 - numYears / 100 + numYears / 400;
|
|
70
|
+
Byte ms[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
|
71
|
+
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
|
|
72
|
+
ms[1] = 29;
|
|
73
|
+
month--;
|
|
74
|
+
for (unsigned i = 0; i < month; i++)
|
|
75
|
+
numDays += ms[i];
|
|
76
|
+
numDays += day - 1;
|
|
77
|
+
resSeconds = ((UInt64)(numDays * 24 + hour) * 60 + min) * 60 + sec;
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void GetCurUtcFileTime(FILETIME &ft)
|
|
82
|
+
{
|
|
83
|
+
SYSTEMTIME st;
|
|
84
|
+
GetSystemTime(&st);
|
|
85
|
+
SystemTimeToFileTime(&st, &ft);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
}}
|