react-native-update 10.34.2 → 10.34.4

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.
Files changed (746) hide show
  1. package/.gitmodules +4 -4
  2. package/harmony/pushy/src/main/cpp/HDiffPatch/CHANGELOG.md +153 -0
  3. package/harmony/pushy/src/main/cpp/HDiffPatch/LICENSE +48 -0
  4. package/harmony/pushy/src/main/cpp/HDiffPatch/Makefile +157 -0
  5. package/harmony/pushy/src/main/cpp/HDiffPatch/README.md +307 -0
  6. package/harmony/pushy/src/main/cpp/HDiffPatch/_atosize.h +83 -0
  7. package/harmony/pushy/src/main/cpp/HDiffPatch/_clock_for_demo.h +47 -0
  8. package/harmony/pushy/src/main/cpp/HDiffPatch/_dir_ignore.h +191 -0
  9. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +37 -0
  10. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +7 -0
  11. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/build_libs.bat +1 -0
  12. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/build_libs.sh +1 -0
  13. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +18 -0
  14. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +20 -0
  15. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +28 -0
  16. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +8 -0
  17. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +8 -0
  18. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HDiffZ.cbp +219 -0
  19. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HPatchZ.cbp +156 -0
  20. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/unitTest.cbp +65 -0
  21. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffPatch.sln +105 -0
  22. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffZ.vcxproj +237 -0
  23. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +3 -0
  24. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HPatchZ.vcxproj +318 -0
  25. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +3 -0
  26. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/unitTest.vcxproj +182 -0
  27. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/unitTest.vcxproj.user +3 -0
  28. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +30 -0
  29. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  30. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +408 -0
  31. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +573 -0
  32. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +396 -0
  33. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/lz4.xcodeproj/project.pbxproj +268 -0
  34. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +361 -0
  35. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +301 -0
  36. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +411 -0
  37. package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +504 -0
  38. package/harmony/pushy/src/main/cpp/HDiffPatch/checksum_plugin_demo.h +344 -0
  39. package/harmony/pushy/src/main/cpp/HDiffPatch/compress_parallel.cpp +166 -0
  40. package/harmony/pushy/src/main/cpp/HDiffPatch/compress_parallel.h +59 -0
  41. package/harmony/pushy/src/main/cpp/HDiffPatch/compress_plugin_demo.h +1152 -0
  42. package/harmony/pushy/src/main/cpp/HDiffPatch/decompress_plugin_demo.h +995 -0
  43. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +797 -0
  44. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +65 -0
  45. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +200 -0
  46. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +178 -0
  47. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +357 -0
  48. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.h +87 -0
  49. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +151 -0
  50. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +770 -0
  51. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +236 -0
  52. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_private.h +47 -0
  53. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +112 -0
  54. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +53 -0
  55. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_types.h +61 -0
  56. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +331 -0
  57. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +144 -0
  58. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +176 -0
  59. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +84 -0
  60. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +146 -0
  61. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +61 -0
  62. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +152 -0
  63. package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +76 -0
  64. package/harmony/pushy/src/main/cpp/HDiffPatch/file_for_patch.c +524 -0
  65. package/harmony/pushy/src/main/cpp/HDiffPatch/file_for_patch.h +259 -0
  66. package/harmony/pushy/src/main/cpp/HDiffPatch/hdiffz.cpp +1570 -0
  67. package/harmony/pushy/src/main/cpp/HDiffPatch/hpatch_dir_listener.h +290 -0
  68. package/harmony/pushy/src/main/cpp/HDiffPatch/hpatchz.c +1221 -0
  69. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +1025 -0
  70. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff.h +116 -0
  71. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +72 -0
  72. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +213 -0
  73. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +63 -0
  74. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +170 -0
  75. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +86 -0
  76. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/config.h +89 -0
  77. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c +13 -0
  78. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +398 -0
  79. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +194 -0
  80. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +13 -0
  81. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +204 -0
  82. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +207 -0
  83. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +815 -0
  84. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +586 -0
  85. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +381 -0
  86. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +352 -0
  87. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +137 -0
  88. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +137 -0
  89. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +70 -0
  90. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +628 -0
  91. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +87 -0
  92. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +363 -0
  93. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +139 -0
  94. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +68 -0
  95. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +115 -0
  96. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +342 -0
  97. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +94 -0
  98. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/checksum_plugin.h +52 -0
  99. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch.c +2292 -0
  100. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch.h +215 -0
  101. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch_private.h +165 -0
  102. package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch_types.h +251 -0
  103. package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_channel.cpp +174 -0
  104. package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_channel.h +73 -0
  105. package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import.cpp +367 -0
  106. package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import.h +92 -0
  107. package/harmony/pushy/src/main/cpp/HDiffPatch/test/_private_searchBestParams.cpp +301 -0
  108. package/harmony/pushy/src/main/cpp/HDiffPatch/test/hpatchz_test.cpp +292 -0
  109. package/harmony/pushy/src/main/cpp/HDiffPatch/test/testHashClash.cpp +436 -0
  110. package/harmony/pushy/src/main/cpp/HDiffPatch/test/unit_test.cpp +417 -0
  111. package/harmony/pushy/src/main/cpp/lzma/Asm/arm/7zCrcOpt.asm +100 -0
  112. package/harmony/pushy/src/main/cpp/lzma/Asm/x86/7zAsm.asm +147 -0
  113. package/harmony/pushy/src/main/cpp/lzma/Asm/x86/7zCrcOpt.asm +147 -0
  114. package/harmony/pushy/src/main/cpp/lzma/Asm/x86/AesOpt.asm +237 -0
  115. package/harmony/pushy/src/main/cpp/lzma/Asm/x86/LzmaDecOpt.asm +1258 -0
  116. package/harmony/pushy/src/main/cpp/lzma/Asm/x86/XzCrc64Opt.asm +205 -0
  117. package/harmony/pushy/src/main/cpp/lzma/C/7z.h +202 -0
  118. package/harmony/pushy/src/main/cpp/lzma/C/7zAlloc.c +80 -0
  119. package/harmony/pushy/src/main/cpp/lzma/C/7zAlloc.h +19 -0
  120. package/harmony/pushy/src/main/cpp/lzma/C/7zArcIn.c +1771 -0
  121. package/harmony/pushy/src/main/cpp/lzma/C/7zBuf.c +36 -0
  122. package/harmony/pushy/src/main/cpp/lzma/C/7zBuf.h +35 -0
  123. package/harmony/pushy/src/main/cpp/lzma/C/7zBuf2.c +52 -0
  124. package/harmony/pushy/src/main/cpp/lzma/C/7zCrc.c +128 -0
  125. package/harmony/pushy/src/main/cpp/lzma/C/7zCrc.h +25 -0
  126. package/harmony/pushy/src/main/cpp/lzma/C/7zCrcOpt.c +115 -0
  127. package/harmony/pushy/src/main/cpp/lzma/C/7zDec.c +591 -0
  128. package/harmony/pushy/src/main/cpp/lzma/C/7zFile.c +286 -0
  129. package/harmony/pushy/src/main/cpp/lzma/C/7zFile.h +83 -0
  130. package/harmony/pushy/src/main/cpp/lzma/C/7zStream.c +176 -0
  131. package/harmony/pushy/src/main/cpp/lzma/C/7zTypes.h +375 -0
  132. package/harmony/pushy/src/main/cpp/lzma/C/7zVersion.h +27 -0
  133. package/harmony/pushy/src/main/cpp/lzma/C/7zVersion.rc +55 -0
  134. package/harmony/pushy/src/main/cpp/lzma/C/Aes.c +306 -0
  135. package/harmony/pushy/src/main/cpp/lzma/C/Aes.h +38 -0
  136. package/harmony/pushy/src/main/cpp/lzma/C/AesOpt.c +184 -0
  137. package/harmony/pushy/src/main/cpp/lzma/C/Alloc.c +455 -0
  138. package/harmony/pushy/src/main/cpp/lzma/C/Alloc.h +51 -0
  139. package/harmony/pushy/src/main/cpp/lzma/C/Bcj2.c +257 -0
  140. package/harmony/pushy/src/main/cpp/lzma/C/Bcj2.h +146 -0
  141. package/harmony/pushy/src/main/cpp/lzma/C/Bcj2Enc.c +311 -0
  142. package/harmony/pushy/src/main/cpp/lzma/C/Bra.c +230 -0
  143. package/harmony/pushy/src/main/cpp/lzma/C/Bra.h +64 -0
  144. package/harmony/pushy/src/main/cpp/lzma/C/Bra86.c +82 -0
  145. package/harmony/pushy/src/main/cpp/lzma/C/BraIA64.c +53 -0
  146. package/harmony/pushy/src/main/cpp/lzma/C/Compiler.h +33 -0
  147. package/harmony/pushy/src/main/cpp/lzma/C/CpuArch.c +218 -0
  148. package/harmony/pushy/src/main/cpp/lzma/C/CpuArch.h +336 -0
  149. package/harmony/pushy/src/main/cpp/lzma/C/Delta.c +64 -0
  150. package/harmony/pushy/src/main/cpp/lzma/C/Delta.h +19 -0
  151. package/harmony/pushy/src/main/cpp/lzma/C/DllSecur.c +108 -0
  152. package/harmony/pushy/src/main/cpp/lzma/C/DllSecur.h +20 -0
  153. package/harmony/pushy/src/main/cpp/lzma/C/LzFind.c +1127 -0
  154. package/harmony/pushy/src/main/cpp/lzma/C/LzFind.h +121 -0
  155. package/harmony/pushy/src/main/cpp/lzma/C/LzFindMt.c +853 -0
  156. package/harmony/pushy/src/main/cpp/lzma/C/LzFindMt.h +101 -0
  157. package/harmony/pushy/src/main/cpp/lzma/C/LzHash.h +57 -0
  158. package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Dec.c +488 -0
  159. package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Dec.h +120 -0
  160. package/harmony/pushy/src/main/cpp/lzma/C/Lzma2DecMt.c +1082 -0
  161. package/harmony/pushy/src/main/cpp/lzma/C/Lzma2DecMt.h +79 -0
  162. package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Enc.c +803 -0
  163. package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Enc.h +55 -0
  164. package/harmony/pushy/src/main/cpp/lzma/C/Lzma86.h +111 -0
  165. package/harmony/pushy/src/main/cpp/lzma/C/Lzma86Dec.c +54 -0
  166. package/harmony/pushy/src/main/cpp/lzma/C/Lzma86Enc.c +106 -0
  167. package/harmony/pushy/src/main/cpp/lzma/C/LzmaDec.c +1185 -0
  168. package/harmony/pushy/src/main/cpp/lzma/C/LzmaDec.h +234 -0
  169. package/harmony/pushy/src/main/cpp/lzma/C/LzmaEnc.c +2976 -0
  170. package/harmony/pushy/src/main/cpp/lzma/C/LzmaEnc.h +76 -0
  171. package/harmony/pushy/src/main/cpp/lzma/C/LzmaLib.c +40 -0
  172. package/harmony/pushy/src/main/cpp/lzma/C/LzmaLib.h +131 -0
  173. package/harmony/pushy/src/main/cpp/lzma/C/MtCoder.c +601 -0
  174. package/harmony/pushy/src/main/cpp/lzma/C/MtCoder.h +141 -0
  175. package/harmony/pushy/src/main/cpp/lzma/C/MtDec.c +1138 -0
  176. package/harmony/pushy/src/main/cpp/lzma/C/MtDec.h +201 -0
  177. package/harmony/pushy/src/main/cpp/lzma/C/Ppmd.h +85 -0
  178. package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7.c +712 -0
  179. package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7.h +142 -0
  180. package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7Dec.c +191 -0
  181. package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7Enc.c +187 -0
  182. package/harmony/pushy/src/main/cpp/lzma/C/Precomp.h +10 -0
  183. package/harmony/pushy/src/main/cpp/lzma/C/RotateDefs.h +30 -0
  184. package/harmony/pushy/src/main/cpp/lzma/C/Sha256.c +248 -0
  185. package/harmony/pushy/src/main/cpp/lzma/C/Sha256.h +26 -0
  186. package/harmony/pushy/src/main/cpp/lzma/C/Sort.c +141 -0
  187. package/harmony/pushy/src/main/cpp/lzma/C/Sort.h +18 -0
  188. package/harmony/pushy/src/main/cpp/lzma/C/Threads.c +95 -0
  189. package/harmony/pushy/src/main/cpp/lzma/C/Threads.h +70 -0
  190. package/harmony/pushy/src/main/cpp/lzma/C/ThreadsP.c +396 -0
  191. package/harmony/pushy/src/main/cpp/lzma/C/ThreadsP.h +31 -0
  192. package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/7z.dsp +241 -0
  193. package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/7z.dsw +29 -0
  194. package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/7zMain.c +686 -0
  195. package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/Precomp.c +4 -0
  196. package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/Precomp.h +10 -0
  197. package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/makefile +40 -0
  198. package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/makefile.gcc +75 -0
  199. package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/LzmaUtil.c +258 -0
  200. package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/LzmaUtil.dsp +168 -0
  201. package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/LzmaUtil.dsw +29 -0
  202. package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/makefile +28 -0
  203. package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/makefile.gcc +44 -0
  204. package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLib.def +4 -0
  205. package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLib.dsp +178 -0
  206. package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLib.dsw +29 -0
  207. package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLibExports.c +14 -0
  208. package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/makefile +34 -0
  209. package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/resource.rc +3 -0
  210. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/Precomp.c +4 -0
  211. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/Precomp.h +10 -0
  212. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/SfxSetup.c +640 -0
  213. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/SfxSetup.dsp +231 -0
  214. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/SfxSetup.dsw +29 -0
  215. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/makefile +37 -0
  216. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/makefile_con +38 -0
  217. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/resource.rc +5 -0
  218. package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/setup.ico +0 -0
  219. package/harmony/pushy/src/main/cpp/lzma/C/Xz.c +90 -0
  220. package/harmony/pushy/src/main/cpp/lzma/C/Xz.h +460 -0
  221. package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64.c +86 -0
  222. package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64.h +26 -0
  223. package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64Opt.c +69 -0
  224. package/harmony/pushy/src/main/cpp/lzma/C/XzDec.c +2766 -0
  225. package/harmony/pushy/src/main/cpp/lzma/C/XzEnc.c +1329 -0
  226. package/harmony/pushy/src/main/cpp/lzma/C/XzEnc.h +60 -0
  227. package/harmony/pushy/src/main/cpp/lzma/C/XzIn.c +319 -0
  228. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/7zip.mak +240 -0
  229. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Aes.mak +7 -0
  230. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp +3 -0
  231. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +76 -0
  232. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +569 -0
  233. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zDecode.h +70 -0
  234. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +678 -0
  235. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zEncode.h +92 -0
  236. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +423 -0
  237. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +139 -0
  238. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +61 -0
  239. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +763 -0
  240. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandler.h +181 -0
  241. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +942 -0
  242. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +19 -0
  243. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHeader.h +148 -0
  244. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zIn.cpp +1666 -0
  245. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zIn.h +445 -0
  246. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zItem.h +202 -0
  247. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zOut.cpp +901 -0
  248. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zOut.h +335 -0
  249. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +174 -0
  250. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zProperties.h +22 -0
  251. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +21 -0
  252. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +22 -0
  253. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +35 -0
  254. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +2500 -0
  255. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zUpdate.h +139 -0
  256. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/StdAfx.cpp +3 -0
  257. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/StdAfx.h +8 -0
  258. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Archive.def +12 -0
  259. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Archive2.def +19 -0
  260. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/ArchiveExports.cpp +151 -0
  261. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +1125 -0
  262. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +447 -0
  263. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +17 -0
  264. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +25 -0
  265. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +232 -0
  266. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/HandlerOut.h +110 -0
  267. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +46 -0
  268. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +67 -0
  269. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +88 -0
  270. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +28 -0
  271. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +191 -0
  272. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/MultiStream.h +89 -0
  273. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +18 -0
  274. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +37 -0
  275. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp +3 -0
  276. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ParseProperties.h +6 -0
  277. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/StdAfx.h +8 -0
  278. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/DllExports2.cpp +122 -0
  279. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/IArchive.h +608 -0
  280. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Icons/7z.ico +0 -0
  281. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/LzmaHandler.cpp +629 -0
  282. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/SplitHandler.cpp +359 -0
  283. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/StdAfx.h +8 -0
  284. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/XzHandler.cpp +1308 -0
  285. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/XzHandler.h +11 -0
  286. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Asm.mak +9 -0
  287. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +1910 -0
  288. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw +29 -0
  289. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp +3 -0
  290. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +8 -0
  291. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/makefile +154 -0
  292. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/resource.rc +7 -0
  293. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp +3 -0
  294. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +8 -0
  295. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +96 -0
  296. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc +5 -0
  297. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp +3 -0
  298. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +8 -0
  299. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/makefile +116 -0
  300. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/resource.rc +5 -0
  301. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +799 -0
  302. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +477 -0
  303. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw +29 -0
  304. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp +3 -0
  305. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +8 -0
  306. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/makefile +59 -0
  307. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +195 -0
  308. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc +3 -0
  309. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaSpec/LzmaSpec.cpp +715 -0
  310. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/7z.ico +0 -0
  311. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +912 -0
  312. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw +29 -0
  313. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +482 -0
  314. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp +3 -0
  315. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +8 -0
  316. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/makefile +134 -0
  317. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +5 -0
  318. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +246 -0
  319. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +86 -0
  320. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +137 -0
  321. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +11 -0
  322. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +803 -0
  323. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw +29 -0
  324. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +364 -0
  325. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp +3 -0
  326. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +13 -0
  327. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/makefile +117 -0
  328. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/resource.h +6 -0
  329. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc +16 -0
  330. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico +0 -0
  331. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/7z.ico +0 -0
  332. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +988 -0
  333. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw +29 -0
  334. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +241 -0
  335. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp +3 -0
  336. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +14 -0
  337. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/makefile +153 -0
  338. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/resource.h +1 -0
  339. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +50 -0
  340. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CWrappers.cpp +250 -0
  341. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CWrappers.h +120 -0
  342. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CreateCoder.cpp +536 -0
  343. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CreateCoder.h +192 -0
  344. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +46 -0
  345. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilePathAutoRename.h +10 -0
  346. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FileStreams.cpp +475 -0
  347. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FileStreams.h +166 -0
  348. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilterCoder.cpp +435 -0
  349. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilterCoder.h +205 -0
  350. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InBuffer.cpp +163 -0
  351. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InBuffer.h +92 -0
  352. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +127 -0
  353. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InOutTempBuffer.h +48 -0
  354. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LimitedStreams.cpp +367 -0
  355. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LimitedStreams.h +252 -0
  356. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LockedStream.cpp +3 -0
  357. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LockedStream.h +6 -0
  358. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodId.cpp +3 -0
  359. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodId.h +10 -0
  360. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodProps.cpp +509 -0
  361. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodProps.h +264 -0
  362. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OffsetStream.cpp +39 -0
  363. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OffsetStream.h +26 -0
  364. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OutBuffer.cpp +111 -0
  365. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OutBuffer.h +66 -0
  366. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/ProgressUtils.cpp +51 -0
  367. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/ProgressUtils.h +35 -0
  368. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/PropId.cpp +108 -0
  369. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/RegisterArc.h +78 -0
  370. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/RegisterCodec.h +106 -0
  371. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StdAfx.h +8 -0
  372. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamBinder.cpp +156 -0
  373. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamBinder.h +60 -0
  374. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamObjects.cpp +285 -0
  375. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamObjects.h +157 -0
  376. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamUtils.cpp +56 -0
  377. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamUtils.h +13 -0
  378. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/UniqBlocks.cpp +57 -0
  379. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/UniqBlocks.h +26 -0
  380. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/VirtThread.cpp +48 -0
  381. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/VirtThread.h +24 -0
  382. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +666 -0
  383. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Coder.h +120 -0
  384. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Register.cpp +24 -0
  385. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjCoder.cpp +24 -0
  386. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjCoder.h +31 -0
  387. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjRegister.cpp +17 -0
  388. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchMisc.cpp +23 -0
  389. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchMisc.h +35 -0
  390. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchRegister.cpp +41 -0
  391. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/ByteSwap.cpp +92 -0
  392. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CodecExports.cpp +344 -0
  393. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CopyCoder.cpp +120 -0
  394. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CopyCoder.h +49 -0
  395. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CopyRegister.cpp +15 -0
  396. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/DeltaFilter.cpp +128 -0
  397. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +265 -0
  398. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Decoder.h +96 -0
  399. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +122 -0
  400. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Encoder.h +42 -0
  401. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Register.cpp +22 -0
  402. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +343 -0
  403. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaDecoder.h +113 -0
  404. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +182 -0
  405. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaEncoder.h +46 -0
  406. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaRegister.cpp +22 -0
  407. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +170 -0
  408. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdDecoder.h +86 -0
  409. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +152 -0
  410. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdEncoder.h +58 -0
  411. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdRegister.cpp +22 -0
  412. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/StdAfx.h +8 -0
  413. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzDecoder.cpp +150 -0
  414. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzDecoder.h +92 -0
  415. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzEncoder.cpp +245 -0
  416. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzEncoder.h +46 -0
  417. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crc.mak +8 -0
  418. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crc64.mak +8 -0
  419. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAes.cpp +280 -0
  420. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAes.h +118 -0
  421. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +17 -0
  422. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAes.cpp +112 -0
  423. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAes.h +57 -0
  424. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAesReg.cpp +16 -0
  425. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/RandGen.cpp +233 -0
  426. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/RandGen.h +40 -0
  427. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/StdAfx.h +8 -0
  428. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/GuiCommon.rc +84 -0
  429. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Guid.txt +220 -0
  430. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/ICoder.h +399 -0
  431. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IDecl.h +28 -0
  432. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IPassword.h +23 -0
  433. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IProgress.h +19 -0
  434. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IStream.h +127 -0
  435. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/LzmaDec.mak +5 -0
  436. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/MyVersion.h +2 -0
  437. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/MyVersionInfo.rc +2 -0
  438. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/PropID.h +127 -0
  439. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/SubBuild.mak +3 -0
  440. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +993 -0
  441. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +235 -0
  442. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/Client7z.dsw +29 -0
  443. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp +3 -0
  444. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/StdAfx.h +8 -0
  445. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/makefile +28 -0
  446. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/resource.rc +3 -0
  447. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +1295 -0
  448. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +136 -0
  449. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +1715 -0
  450. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +403 -0
  451. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +155 -0
  452. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveName.h +10 -0
  453. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +161 -0
  454. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +112 -0
  455. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Bench.cpp +3618 -0
  456. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Bench.h +77 -0
  457. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DefaultName.cpp +37 -0
  458. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DefaultName.h +11 -0
  459. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DirItem.h +190 -0
  460. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +1096 -0
  461. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/EnumDirItems.h +42 -0
  462. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExitCode.h +27 -0
  463. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Extract.cpp +482 -0
  464. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Extract.h +94 -0
  465. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractMode.h +34 -0
  466. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +280 -0
  467. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +31 -0
  468. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/HashCalc.cpp +347 -0
  469. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/HashCalc.h +110 -0
  470. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +114 -0
  471. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +1074 -0
  472. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/LoadCodecs.h +424 -0
  473. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +3553 -0
  474. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/OpenArchive.h +436 -0
  475. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +668 -0
  476. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/PropIDUtils.h +18 -0
  477. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Property.h +14 -0
  478. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SetProperties.cpp +80 -0
  479. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SetProperties.h +10 -0
  480. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SortUtils.cpp +25 -0
  481. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SortUtils.h +10 -0
  482. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/StdAfx.h +8 -0
  483. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/TempFiles.cpp +19 -0
  484. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/TempFiles.h +16 -0
  485. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Update.cpp +1704 -0
  486. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Update.h +200 -0
  487. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateAction.cpp +64 -0
  488. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateAction.h +66 -0
  489. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +771 -0
  490. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateCallback.h +162 -0
  491. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +233 -0
  492. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdatePair.h +27 -0
  493. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +70 -0
  494. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateProduce.h +55 -0
  495. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/WorkDir.cpp +94 -0
  496. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/WorkDir.h +26 -0
  497. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ZipRegistry.h +130 -0
  498. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/BenchCon.cpp +41 -0
  499. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/BenchCon.h +14 -0
  500. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Console.mak +43 -0
  501. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Console.manifest +13 -0
  502. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +69 -0
  503. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ConsoleClose.h +33 -0
  504. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +825 -0
  505. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +164 -0
  506. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/HashCon.cpp +367 -0
  507. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/HashCon.h +48 -0
  508. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/List.cpp +1359 -0
  509. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/List.h +27 -0
  510. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Main.cpp +1154 -0
  511. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/MainAr.cpp +175 -0
  512. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +115 -0
  513. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +66 -0
  514. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +183 -0
  515. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/PercentPrinter.h +62 -0
  516. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/StdAfx.cpp +3 -0
  517. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/StdAfx.h +8 -0
  518. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +702 -0
  519. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +124 -0
  520. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +110 -0
  521. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UserInputUtils.h +27 -0
  522. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/makefile +64 -0
  523. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/resource.rc +7 -0
  524. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +37 -0
  525. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Explorer/MyMessages.h +16 -0
  526. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +1025 -0
  527. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +21 -0
  528. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h +9 -0
  529. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +64 -0
  530. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +28 -0
  531. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h +4 -0
  532. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/DialogSize.h +16 -0
  533. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +1037 -0
  534. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +328 -0
  535. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp +28 -0
  536. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +14 -0
  537. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/LangUtils.h +40 -0
  538. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +76 -0
  539. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +122 -0
  540. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +69 -0
  541. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +91 -0
  542. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +17 -0
  543. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +58 -0
  544. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +28 -0
  545. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +14 -0
  546. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h +5 -0
  547. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +196 -0
  548. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +170 -0
  549. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc +12 -0
  550. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +1337 -0
  551. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +351 -0
  552. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc +40 -0
  553. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +48 -0
  554. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +80 -0
  555. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h +3 -0
  556. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp +23 -0
  557. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PropertyName.h +10 -0
  558. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +95 -0
  559. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +255 -0
  560. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +62 -0
  561. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/resource.h +177 -0
  562. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/resourceGui.h +15 -0
  563. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/Extract.rc +59 -0
  564. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +418 -0
  565. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +113 -0
  566. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialog.rc +98 -0
  567. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h +24 -0
  568. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +280 -0
  569. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +38 -0
  570. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractRes.h +51 -0
  571. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/HashGUI.h +27 -0
  572. package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/resource2.h +2 -0
  573. package/harmony/pushy/src/main/cpp/lzma/CPP/Build.mak +156 -0
  574. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/AutoPtr.h +35 -0
  575. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CRC.cpp +7 -0
  576. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/C_FileIO.cpp +92 -0
  577. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/C_FileIO.h +53 -0
  578. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ComTry.h +21 -0
  579. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CommandLineParser.cpp +197 -0
  580. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CommandLineParser.h +63 -0
  581. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Common.h +43 -0
  582. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CrcReg.cpp +98 -0
  583. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Defs.h +15 -0
  584. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/DynamicBuffer.h +64 -0
  585. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/IntToString.cpp +193 -0
  586. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/IntToString.h +28 -0
  587. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Lang.h +23 -0
  588. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ListFileUtils.cpp +132 -0
  589. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ListFileUtils.h +18 -0
  590. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyBuffer.h +259 -0
  591. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyBuffer2.h +100 -0
  592. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyCom.h +277 -0
  593. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyException.h +14 -0
  594. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyGuidDef.h +54 -0
  595. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyInitGuid.h +45 -0
  596. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyLinux.h +42 -0
  597. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyString.cpp +1659 -0
  598. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyString.h +868 -0
  599. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyTypes.h +35 -0
  600. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyUnknown.h +17 -0
  601. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyVector.cpp +3 -0
  602. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyVector.h +634 -0
  603. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyWindows.cpp +145 -0
  604. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyWindows.h +231 -0
  605. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/NewHandler.cpp +163 -0
  606. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/NewHandler.h +88 -0
  607. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Sha256Reg.cpp +40 -0
  608. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdAfx.h +8 -0
  609. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdInStream.cpp +89 -0
  610. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdInStream.h +38 -0
  611. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdOutStream.cpp +163 -0
  612. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdOutStream.h +71 -0
  613. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringConvert.cpp +319 -0
  614. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringConvert.h +88 -0
  615. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringToInt.cpp +144 -0
  616. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringToInt.h +21 -0
  617. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/TextConfig.cpp +124 -0
  618. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/TextConfig.h +19 -0
  619. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/UTFConvert.cpp +288 -0
  620. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/UTFConvert.h +12 -0
  621. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Wildcard.cpp +676 -0
  622. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Wildcard.h +149 -0
  623. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/XzCrc64Init.cpp +7 -0
  624. package/harmony/pushy/src/main/cpp/lzma/CPP/Common/XzCrc64Reg.cpp +42 -0
  625. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/COM.h +70 -0
  626. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/CommonDialog.cpp +185 -0
  627. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/CommonDialog.h +23 -0
  628. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ComboBox.cpp +66 -0
  629. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ComboBox.h +65 -0
  630. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/CommandBar.h +52 -0
  631. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Dialog.cpp +251 -0
  632. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Dialog.h +170 -0
  633. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Edit.h +19 -0
  634. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ImageList.cpp +10 -0
  635. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ImageList.h +87 -0
  636. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ListView.cpp +155 -0
  637. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ListView.h +146 -0
  638. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ProgressBar.h +35 -0
  639. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/PropertyPage.cpp +143 -0
  640. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/PropertyPage.h +50 -0
  641. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ReBar.h +34 -0
  642. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Static.h +28 -0
  643. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/StatusBar.h +42 -0
  644. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/StdAfx.h +8 -0
  645. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ToolBar.h +43 -0
  646. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Trackbar.h +27 -0
  647. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Window2.cpp +200 -0
  648. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Window2.h +51 -0
  649. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/DLL.cpp +109 -0
  650. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/DLL.h +58 -0
  651. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Defs.h +17 -0
  652. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ErrorMsg.cpp +66 -0
  653. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ErrorMsg.h +15 -0
  654. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileDir.cpp +714 -0
  655. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileDir.h +117 -0
  656. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileFind.cpp +749 -0
  657. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileFind.h +161 -0
  658. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileIO.cpp +432 -0
  659. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileIO.h +212 -0
  660. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileLink.cpp +440 -0
  661. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileMapping.cpp +12 -0
  662. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileMapping.h +66 -0
  663. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileName.cpp +839 -0
  664. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileName.h +115 -0
  665. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileSystem.cpp +131 -0
  666. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileSystem.h +27 -0
  667. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Handle.h +37 -0
  668. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryLock.cpp +112 -0
  669. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryLock.h +40 -0
  670. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/NtCheck.h +46 -0
  671. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariant.cpp +347 -0
  672. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariant.h +114 -0
  673. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariantConv.cpp +138 -0
  674. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariantConv.h +37 -0
  675. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Registry.cpp +390 -0
  676. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Registry.h +84 -0
  677. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ResourceString.cpp +103 -0
  678. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ResourceString.h +16 -0
  679. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SecurityUtils.cpp +181 -0
  680. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SecurityUtils.h +167 -0
  681. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Shell.cpp +358 -0
  682. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Shell.h +94 -0
  683. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/StdAfx.h +8 -0
  684. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Synchronization.cpp +10 -0
  685. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Synchronization.h +164 -0
  686. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/System.cpp +142 -0
  687. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/System.h +40 -0
  688. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Thread.h +38 -0
  689. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/TimeUtils.cpp +213 -0
  690. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/TimeUtils.h +32 -0
  691. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Window.cpp +179 -0
  692. package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Window.h +284 -0
  693. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Common/CRC.cs +55 -0
  694. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Common/CommandLineParser.cs +274 -0
  695. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Common/InBuffer.cs +72 -0
  696. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Common/OutBuffer.cs +47 -0
  697. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs +24 -0
  698. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LZ/LzBinTree.cs +367 -0
  699. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LZ/LzInWindow.cs +132 -0
  700. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs +110 -0
  701. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs +76 -0
  702. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs +398 -0
  703. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs +1480 -0
  704. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs +364 -0
  705. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +90 -0
  706. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln +20 -0
  707. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs +340 -0
  708. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs +29 -0
  709. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs +70 -0
  710. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs +42 -0
  711. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs +234 -0
  712. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs +117 -0
  713. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs +157 -0
  714. package/harmony/pushy/src/main/cpp/lzma/CS/7zip/ICoder.cs +157 -0
  715. package/harmony/pushy/src/main/cpp/lzma/DOC/7zC.txt +187 -0
  716. package/harmony/pushy/src/main/cpp/lzma/DOC/7zFormat.txt +469 -0
  717. package/harmony/pushy/src/main/cpp/lzma/DOC/Methods.txt +173 -0
  718. package/harmony/pushy/src/main/cpp/lzma/DOC/installer.txt +166 -0
  719. package/harmony/pushy/src/main/cpp/lzma/DOC/lzma-history.txt +446 -0
  720. package/harmony/pushy/src/main/cpp/lzma/DOC/lzma-sdk.txt +357 -0
  721. package/harmony/pushy/src/main/cpp/lzma/DOC/lzma-specification.txt +1176 -0
  722. package/harmony/pushy/src/main/cpp/lzma/DOC/lzma.txt +328 -0
  723. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/CRC.java +52 -0
  724. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/LZ/BinTree.java +382 -0
  725. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/LZ/InWindow.java +131 -0
  726. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/LZ/OutWindow.java +85 -0
  727. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/LZMA/Base.java +88 -0
  728. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/LZMA/Decoder.java +329 -0
  729. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/LZMA/Encoder.java +1416 -0
  730. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +55 -0
  731. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +99 -0
  732. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java +88 -0
  733. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java +151 -0
  734. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/ICodeProgress.java +6 -0
  735. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/LzmaAlone.java +253 -0
  736. package/harmony/pushy/src/main/cpp/lzma/Java/SevenZip/LzmaBench.java +392 -0
  737. package/harmony/pushy/src/main/cpp/lzma/bin/7zS2.sfx +0 -0
  738. package/harmony/pushy/src/main/cpp/lzma/bin/7zS2con.sfx +0 -0
  739. package/harmony/pushy/src/main/cpp/lzma/bin/7zSD.sfx +0 -0
  740. package/harmony/pushy/src/main/cpp/lzma/bin/7zdec.exe +0 -0
  741. package/harmony/pushy/src/main/cpp/lzma/bin/7zr.exe +0 -0
  742. package/harmony/pushy/src/main/cpp/lzma/bin/installer/config.txt +5 -0
  743. package/harmony/pushy/src/main/cpp/lzma/bin/installer/cr.bat +5 -0
  744. package/harmony/pushy/src/main/cpp/lzma/bin/lzma.exe +0 -0
  745. package/harmony/pushy/src/main/cpp/lzma/bin/x64/7zr.exe +0 -0
  746. package/package.json +1 -1
@@ -0,0 +1,1704 @@
1
+ // Update.cpp
2
+
3
+ #include "StdAfx.h"
4
+
5
+ #include "Update.h"
6
+
7
+ #include "../../../Common/StringConvert.h"
8
+
9
+ #include "../../../Windows/DLL.h"
10
+ #include "../../../Windows/FileDir.h"
11
+ #include "../../../Windows/FileFind.h"
12
+ #include "../../../Windows/FileName.h"
13
+ #include "../../../Windows/PropVariant.h"
14
+ #include "../../../Windows/PropVariantConv.h"
15
+ #include "../../../Windows/TimeUtils.h"
16
+
17
+ #include "../../Common/FileStreams.h"
18
+ #include "../../Common/LimitedStreams.h"
19
+
20
+ #include "../../Compress/CopyCoder.h"
21
+
22
+ #include "../Common/DirItem.h"
23
+ #include "../Common/EnumDirItems.h"
24
+ #include "../Common/OpenArchive.h"
25
+ #include "../Common/UpdateProduce.h"
26
+
27
+ #include "EnumDirItems.h"
28
+ #include "SetProperties.h"
29
+ #include "TempFiles.h"
30
+ #include "UpdateCallback.h"
31
+
32
+ static const char * const kUpdateIsNotSupoorted =
33
+ "update operations are not supported for this archive";
34
+
35
+ static const char * const kUpdateIsNotSupoorted_MultiVol =
36
+ "Updating for multivolume archives is not implemented";
37
+
38
+ using namespace NWindows;
39
+ using namespace NCOM;
40
+ using namespace NFile;
41
+ using namespace NDir;
42
+ using namespace NName;
43
+
44
+ static CFSTR const kTempFolderPrefix = FTEXT("7zE");
45
+
46
+
47
+ void CUpdateErrorInfo::SetFromLastError(const char *message)
48
+ {
49
+ SystemError = ::GetLastError();
50
+ Message = message;
51
+ }
52
+
53
+ HRESULT CUpdateErrorInfo::SetFromLastError(const char *message, const FString &fileName)
54
+ {
55
+ SetFromLastError(message);
56
+ FileNames.Add(fileName);
57
+ return Get_HRESULT_Error();
58
+ }
59
+
60
+ static bool DeleteEmptyFolderAndEmptySubFolders(const FString &path)
61
+ {
62
+ NFind::CFileInfo fileInfo;
63
+ FString pathPrefix = path + FCHAR_PATH_SEPARATOR;
64
+ {
65
+ NFind::CEnumerator enumerator;
66
+ enumerator.SetDirPrefix(pathPrefix);
67
+ while (enumerator.Next(fileInfo))
68
+ {
69
+ if (fileInfo.IsDir())
70
+ if (!DeleteEmptyFolderAndEmptySubFolders(pathPrefix + fileInfo.Name))
71
+ return false;
72
+ }
73
+ }
74
+ /*
75
+ // we don't need clear read-only for folders
76
+ if (!MySetFileAttributes(path, 0))
77
+ return false;
78
+ */
79
+ return RemoveDir(path);
80
+ }
81
+
82
+
83
+ using namespace NUpdateArchive;
84
+
85
+ class COutMultiVolStream:
86
+ public IOutStream,
87
+ public CMyUnknownImp
88
+ {
89
+ unsigned _streamIndex; // required stream
90
+ UInt64 _offsetPos; // offset from start of _streamIndex index
91
+ UInt64 _absPos;
92
+ UInt64 _length;
93
+
94
+ struct CAltStreamInfo
95
+ {
96
+ COutFileStream *StreamSpec;
97
+ CMyComPtr<IOutStream> Stream;
98
+ FString Name;
99
+ UInt64 Pos;
100
+ UInt64 RealSize;
101
+ };
102
+ CObjectVector<CAltStreamInfo> Streams;
103
+ public:
104
+ // CMyComPtr<IArchiveUpdateCallback2> VolumeCallback;
105
+ CRecordVector<UInt64> Sizes;
106
+ FString Prefix;
107
+ CTempFiles *TempFiles;
108
+
109
+ void Init()
110
+ {
111
+ _streamIndex = 0;
112
+ _offsetPos = 0;
113
+ _absPos = 0;
114
+ _length = 0;
115
+ }
116
+
117
+ bool SetMTime(const FILETIME *mTime);
118
+ HRESULT Close();
119
+
120
+ UInt64 GetSize() const { return _length; }
121
+
122
+ MY_UNKNOWN_IMP1(IOutStream)
123
+
124
+ STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize);
125
+ STDMETHOD(Seek)(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition);
126
+ STDMETHOD(SetSize)(UInt64 newSize);
127
+ };
128
+
129
+ // static NSynchronization::CCriticalSection g_TempPathsCS;
130
+
131
+ HRESULT COutMultiVolStream::Close()
132
+ {
133
+ HRESULT res = S_OK;
134
+ FOR_VECTOR (i, Streams)
135
+ {
136
+ COutFileStream *s = Streams[i].StreamSpec;
137
+ if (s)
138
+ {
139
+ HRESULT res2 = s->Close();
140
+ if (res2 != S_OK)
141
+ res = res2;
142
+ }
143
+ }
144
+ return res;
145
+ }
146
+
147
+ bool COutMultiVolStream::SetMTime(const FILETIME *mTime)
148
+ {
149
+ bool res = true;
150
+ FOR_VECTOR (i, Streams)
151
+ {
152
+ COutFileStream *s = Streams[i].StreamSpec;
153
+ if (s)
154
+ if (!s->SetMTime(mTime))
155
+ res = false;
156
+ }
157
+ return res;
158
+ }
159
+
160
+ STDMETHODIMP COutMultiVolStream::Write(const void *data, UInt32 size, UInt32 *processedSize)
161
+ {
162
+ if (processedSize)
163
+ *processedSize = 0;
164
+ while (size > 0)
165
+ {
166
+ if (_streamIndex >= Streams.Size())
167
+ {
168
+ CAltStreamInfo altStream;
169
+
170
+ FString name;
171
+ name.Add_UInt32(_streamIndex + 1);
172
+ while (name.Len() < 3)
173
+ name.InsertAtFront(FTEXT('0'));
174
+ name.Insert(0, Prefix);
175
+ altStream.StreamSpec = new COutFileStream;
176
+ altStream.Stream = altStream.StreamSpec;
177
+ if (!altStream.StreamSpec->Create(name, false))
178
+ return ::GetLastError();
179
+ {
180
+ // NSynchronization::CCriticalSectionLock lock(g_TempPathsCS);
181
+ TempFiles->Paths.Add(name);
182
+ }
183
+
184
+ altStream.Pos = 0;
185
+ altStream.RealSize = 0;
186
+ altStream.Name = name;
187
+ Streams.Add(altStream);
188
+ continue;
189
+ }
190
+ CAltStreamInfo &altStream = Streams[_streamIndex];
191
+
192
+ unsigned index = _streamIndex;
193
+ if (index >= Sizes.Size())
194
+ index = Sizes.Size() - 1;
195
+ UInt64 volSize = Sizes[index];
196
+
197
+ if (_offsetPos >= volSize)
198
+ {
199
+ _offsetPos -= volSize;
200
+ _streamIndex++;
201
+ continue;
202
+ }
203
+ if (_offsetPos != altStream.Pos)
204
+ {
205
+ // CMyComPtr<IOutStream> outStream;
206
+ // RINOK(altStream.Stream.QueryInterface(IID_IOutStream, &outStream));
207
+ RINOK(altStream.Stream->Seek(_offsetPos, STREAM_SEEK_SET, NULL));
208
+ altStream.Pos = _offsetPos;
209
+ }
210
+
211
+ UInt32 curSize = (UInt32)MyMin((UInt64)size, volSize - altStream.Pos);
212
+ UInt32 realProcessed;
213
+ RINOK(altStream.Stream->Write(data, curSize, &realProcessed));
214
+ data = (void *)((Byte *)data + realProcessed);
215
+ size -= realProcessed;
216
+ altStream.Pos += realProcessed;
217
+ _offsetPos += realProcessed;
218
+ _absPos += realProcessed;
219
+ if (_absPos > _length)
220
+ _length = _absPos;
221
+ if (_offsetPos > altStream.RealSize)
222
+ altStream.RealSize = _offsetPos;
223
+ if (processedSize)
224
+ *processedSize += realProcessed;
225
+ if (altStream.Pos == volSize)
226
+ {
227
+ _streamIndex++;
228
+ _offsetPos = 0;
229
+ }
230
+ if (realProcessed == 0 && curSize != 0)
231
+ return E_FAIL;
232
+ break;
233
+ }
234
+ return S_OK;
235
+ }
236
+
237
+ STDMETHODIMP COutMultiVolStream::Seek(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition)
238
+ {
239
+ if (seekOrigin >= 3)
240
+ return STG_E_INVALIDFUNCTION;
241
+ switch (seekOrigin)
242
+ {
243
+ case STREAM_SEEK_SET: _absPos = offset; break;
244
+ case STREAM_SEEK_CUR: _absPos += offset; break;
245
+ case STREAM_SEEK_END: _absPos = _length + offset; break;
246
+ }
247
+ _offsetPos = _absPos;
248
+ if (newPosition)
249
+ *newPosition = _absPos;
250
+ _streamIndex = 0;
251
+ return S_OK;
252
+ }
253
+
254
+ STDMETHODIMP COutMultiVolStream::SetSize(UInt64 newSize)
255
+ {
256
+ unsigned i = 0;
257
+ while (i < Streams.Size())
258
+ {
259
+ CAltStreamInfo &altStream = Streams[i++];
260
+ if ((UInt64)newSize < altStream.RealSize)
261
+ {
262
+ RINOK(altStream.Stream->SetSize(newSize));
263
+ altStream.RealSize = newSize;
264
+ break;
265
+ }
266
+ newSize -= altStream.RealSize;
267
+ }
268
+ while (i < Streams.Size())
269
+ {
270
+ {
271
+ CAltStreamInfo &altStream = Streams.Back();
272
+ altStream.Stream.Release();
273
+ DeleteFileAlways(altStream.Name);
274
+ }
275
+ Streams.DeleteBack();
276
+ }
277
+ _offsetPos = _absPos;
278
+ _streamIndex = 0;
279
+ _length = newSize;
280
+ return S_OK;
281
+ }
282
+
283
+ void CArchivePath::ParseFromPath(const UString &path, EArcNameMode mode)
284
+ {
285
+ OriginalPath = path;
286
+
287
+ SplitPathToParts_2(path, Prefix, Name);
288
+
289
+ if (mode == k_ArcNameMode_Add)
290
+ return;
291
+
292
+ if (mode != k_ArcNameMode_Exact)
293
+ {
294
+ int dotPos = Name.ReverseFind_Dot();
295
+ if (dotPos < 0)
296
+ return;
297
+ if ((unsigned)dotPos == Name.Len() - 1)
298
+ Name.DeleteBack();
299
+ else
300
+ {
301
+ const UString ext = Name.Ptr(dotPos + 1);
302
+ if (BaseExtension.IsEqualTo_NoCase(ext))
303
+ {
304
+ BaseExtension = ext;
305
+ Name.DeleteFrom(dotPos);
306
+ return;
307
+ }
308
+ }
309
+ }
310
+
311
+ BaseExtension.Empty();
312
+ }
313
+
314
+ UString CArchivePath::GetFinalPath() const
315
+ {
316
+ UString path = GetPathWithoutExt();
317
+ if (!BaseExtension.IsEmpty())
318
+ {
319
+ path += '.';
320
+ path += BaseExtension;
321
+ }
322
+ return path;
323
+ }
324
+
325
+ UString CArchivePath::GetFinalVolPath() const
326
+ {
327
+ UString path = GetPathWithoutExt();
328
+ // if BaseExtension is empty, we must ignore VolExtension also.
329
+ if (!BaseExtension.IsEmpty())
330
+ {
331
+ path += '.';
332
+ path += VolExtension;
333
+ }
334
+ return path;
335
+ }
336
+
337
+ FString CArchivePath::GetTempPath() const
338
+ {
339
+ FString path = TempPrefix;
340
+ path += us2fs(Name);
341
+ if (!BaseExtension.IsEmpty())
342
+ {
343
+ path += '.';
344
+ path += us2fs(BaseExtension);
345
+ }
346
+ path += ".tmp";
347
+ path += TempPostfix;
348
+ return path;
349
+ }
350
+
351
+ static const char * const kDefaultArcType = "7z";
352
+ static const char * const kDefaultArcExt = "7z";
353
+ static const char * const kSFXExtension =
354
+ #ifdef _WIN32
355
+ "exe";
356
+ #else
357
+ "";
358
+ #endif
359
+
360
+ bool CUpdateOptions::InitFormatIndex(const CCodecs *codecs,
361
+ const CObjectVector<COpenType> &types, const UString &arcPath)
362
+ {
363
+ if (types.Size() > 1)
364
+ return false;
365
+ // int arcTypeIndex = -1;
366
+ if (types.Size() != 0)
367
+ {
368
+ MethodMode.Type = types[0];
369
+ MethodMode.Type_Defined = true;
370
+ }
371
+ if (MethodMode.Type.FormatIndex < 0)
372
+ {
373
+ // MethodMode.Type = -1;
374
+ MethodMode.Type = COpenType();
375
+ if (ArcNameMode != k_ArcNameMode_Add)
376
+ {
377
+ MethodMode.Type.FormatIndex = codecs->FindFormatForArchiveName(arcPath);
378
+ if (MethodMode.Type.FormatIndex >= 0)
379
+ MethodMode.Type_Defined = true;
380
+ }
381
+ }
382
+ return true;
383
+ }
384
+
385
+ bool CUpdateOptions::SetArcPath(const CCodecs *codecs, const UString &arcPath)
386
+ {
387
+ UString typeExt;
388
+ int formatIndex = MethodMode.Type.FormatIndex;
389
+ if (formatIndex < 0)
390
+ {
391
+ typeExt = kDefaultArcExt;
392
+ }
393
+ else
394
+ {
395
+ const CArcInfoEx &arcInfo = codecs->Formats[formatIndex];
396
+ if (!arcInfo.UpdateEnabled)
397
+ return false;
398
+ typeExt = arcInfo.GetMainExt();
399
+ }
400
+ UString ext = typeExt;
401
+ if (SfxMode)
402
+ ext = kSFXExtension;
403
+ ArchivePath.BaseExtension = ext;
404
+ ArchivePath.VolExtension = typeExt;
405
+ ArchivePath.ParseFromPath(arcPath, ArcNameMode);
406
+ FOR_VECTOR (i, Commands)
407
+ {
408
+ CUpdateArchiveCommand &uc = Commands[i];
409
+ uc.ArchivePath.BaseExtension = ext;
410
+ uc.ArchivePath.VolExtension = typeExt;
411
+ uc.ArchivePath.ParseFromPath(uc.UserArchivePath, ArcNameMode);
412
+ }
413
+ return true;
414
+ }
415
+
416
+
417
+ struct CUpdateProduceCallbackImp: public IUpdateProduceCallback
418
+ {
419
+ const CObjectVector<CArcItem> *_arcItems;
420
+ IUpdateCallbackUI *_callback;
421
+ CDirItemsStat *_stat;
422
+
423
+ CUpdateProduceCallbackImp(
424
+ const CObjectVector<CArcItem> *a,
425
+ CDirItemsStat *stat,
426
+ IUpdateCallbackUI *callback):
427
+ _arcItems(a),
428
+ _stat(stat),
429
+ _callback(callback) {}
430
+
431
+ virtual HRESULT ShowDeleteFile(unsigned arcIndex);
432
+ };
433
+
434
+
435
+ HRESULT CUpdateProduceCallbackImp::ShowDeleteFile(unsigned arcIndex)
436
+ {
437
+ const CArcItem &ai = (*_arcItems)[arcIndex];
438
+ {
439
+ CDirItemsStat &stat = *_stat;
440
+ if (ai.IsDir)
441
+ stat.NumDirs++;
442
+ else if (ai.IsAltStream)
443
+ {
444
+ stat.NumAltStreams++;
445
+ stat.AltStreamsSize += ai.Size;
446
+ }
447
+ else
448
+ {
449
+ stat.NumFiles++;
450
+ stat.FilesSize += ai.Size;
451
+ }
452
+ }
453
+ return _callback->ShowDeleteFile(ai.Name, ai.IsDir);
454
+ }
455
+
456
+ bool CRenamePair::Prepare()
457
+ {
458
+ if (RecursedType != NRecursedType::kNonRecursed)
459
+ return false;
460
+ if (!WildcardParsing)
461
+ return true;
462
+ return !DoesNameContainWildcard(OldName);
463
+ }
464
+
465
+ extern bool g_CaseSensitive;
466
+
467
+ static unsigned CompareTwoNames(const wchar_t *s1, const wchar_t *s2)
468
+ {
469
+ for (unsigned i = 0;; i++)
470
+ {
471
+ wchar_t c1 = s1[i];
472
+ wchar_t c2 = s2[i];
473
+ if (c1 == 0 || c2 == 0)
474
+ return i;
475
+ if (c1 == c2)
476
+ continue;
477
+ if (!g_CaseSensitive && (MyCharUpper(c1) == MyCharUpper(c2)))
478
+ continue;
479
+ if (IsPathSepar(c1) && IsPathSepar(c2))
480
+ continue;
481
+ return i;
482
+ }
483
+ }
484
+
485
+ bool CRenamePair::GetNewPath(bool isFolder, const UString &src, UString &dest) const
486
+ {
487
+ unsigned num = CompareTwoNames(OldName, src);
488
+ if (OldName[num] == 0)
489
+ {
490
+ if (src[num] != 0 && !IsPathSepar(src[num]) && num != 0 && !IsPathSepar(src[num - 1]))
491
+ return false;
492
+ }
493
+ else
494
+ {
495
+ // OldName[num] != 0
496
+ // OldName = "1\1a.txt"
497
+ // src = "1"
498
+
499
+ if (!isFolder
500
+ || src[num] != 0
501
+ || !IsPathSepar(OldName[num])
502
+ || OldName[num + 1] != 0)
503
+ return false;
504
+ }
505
+ dest = NewName + src.Ptr(num);
506
+ return true;
507
+ }
508
+
509
+ #ifdef SUPPORT_ALT_STREAMS
510
+ int FindAltStreamColon_in_Path(const wchar_t *path);
511
+ #endif
512
+
513
+ static HRESULT Compress(
514
+ const CUpdateOptions &options,
515
+ bool isUpdatingItself,
516
+ CCodecs *codecs,
517
+ const CActionSet &actionSet,
518
+ const CArc *arc,
519
+ CArchivePath &archivePath,
520
+ const CObjectVector<CArcItem> &arcItems,
521
+ Byte *processedItemsStatuses,
522
+ const CDirItems &dirItems,
523
+ const CDirItem *parentDirItem,
524
+ CTempFiles &tempFiles,
525
+ CUpdateErrorInfo &errorInfo,
526
+ IUpdateCallbackUI *callback,
527
+ CFinishArchiveStat &st)
528
+ {
529
+ CMyComPtr<IOutArchive> outArchive;
530
+ int formatIndex = options.MethodMode.Type.FormatIndex;
531
+
532
+ if (arc)
533
+ {
534
+ formatIndex = arc->FormatIndex;
535
+ if (formatIndex < 0)
536
+ return E_NOTIMPL;
537
+ CMyComPtr<IInArchive> archive2 = arc->Archive;
538
+ HRESULT result = archive2.QueryInterface(IID_IOutArchive, &outArchive);
539
+ if (result != S_OK)
540
+ throw kUpdateIsNotSupoorted;
541
+ }
542
+ else
543
+ {
544
+ RINOK(codecs->CreateOutArchive(formatIndex, outArchive));
545
+
546
+ #ifdef EXTERNAL_CODECS
547
+ {
548
+ CMyComPtr<ISetCompressCodecsInfo> setCompressCodecsInfo;
549
+ outArchive.QueryInterface(IID_ISetCompressCodecsInfo, (void **)&setCompressCodecsInfo);
550
+ if (setCompressCodecsInfo)
551
+ {
552
+ RINOK(setCompressCodecsInfo->SetCompressCodecsInfo(codecs));
553
+ }
554
+ }
555
+ #endif
556
+ }
557
+
558
+ if (outArchive == 0)
559
+ throw kUpdateIsNotSupoorted;
560
+
561
+ NFileTimeType::EEnum fileTimeType;
562
+ {
563
+ UInt32 value;
564
+ RINOK(outArchive->GetFileTimeType(&value));
565
+
566
+ switch (value)
567
+ {
568
+ case NFileTimeType::kWindows:
569
+ case NFileTimeType::kUnix:
570
+ case NFileTimeType::kDOS:
571
+ fileTimeType = (NFileTimeType::EEnum)value;
572
+ break;
573
+ default:
574
+ return E_FAIL;
575
+ }
576
+ }
577
+
578
+ {
579
+ const CArcInfoEx &arcInfo = codecs->Formats[formatIndex];
580
+ if (options.AltStreams.Val && !arcInfo.Flags_AltStreams())
581
+ return E_NOTIMPL;
582
+ if (options.NtSecurity.Val && !arcInfo.Flags_NtSecure())
583
+ return E_NOTIMPL;
584
+ }
585
+
586
+ CRecordVector<CUpdatePair2> updatePairs2;
587
+
588
+ UStringVector newNames;
589
+
590
+ CArcToDoStat stat2;
591
+
592
+ if (options.RenamePairs.Size() != 0)
593
+ {
594
+ FOR_VECTOR (i, arcItems)
595
+ {
596
+ const CArcItem &ai = arcItems[i];
597
+ bool needRename = false;
598
+ UString dest;
599
+
600
+ if (ai.Censored)
601
+ {
602
+ FOR_VECTOR (j, options.RenamePairs)
603
+ {
604
+ const CRenamePair &rp = options.RenamePairs[j];
605
+ if (rp.GetNewPath(ai.IsDir, ai.Name, dest))
606
+ {
607
+ needRename = true;
608
+ break;
609
+ }
610
+
611
+ #ifdef SUPPORT_ALT_STREAMS
612
+ if (ai.IsAltStream)
613
+ {
614
+ int colonPos = FindAltStreamColon_in_Path(ai.Name);
615
+ if (colonPos >= 0)
616
+ {
617
+ UString mainName = ai.Name.Left(colonPos);
618
+ /*
619
+ actually we must improve that code to support cases
620
+ with folder renaming like: rn arc dir1\ dir2\
621
+ */
622
+ if (rp.GetNewPath(false, mainName, dest))
623
+ {
624
+ needRename = true;
625
+ dest += ':';
626
+ dest += ai.Name.Ptr(colonPos + 1);
627
+ break;
628
+ }
629
+ }
630
+ }
631
+ #endif
632
+ }
633
+ }
634
+
635
+ CUpdatePair2 up2;
636
+ up2.SetAs_NoChangeArcItem(ai.IndexInServer);
637
+ if (needRename)
638
+ {
639
+ up2.NewProps = true;
640
+ RINOK(arc->IsItemAnti(i, up2.IsAnti));
641
+ up2.NewNameIndex = newNames.Add(dest);
642
+ }
643
+ updatePairs2.Add(up2);
644
+ }
645
+ }
646
+ else
647
+ {
648
+ CRecordVector<CUpdatePair> updatePairs;
649
+ GetUpdatePairInfoList(dirItems, arcItems, fileTimeType, updatePairs); // must be done only once!!!
650
+ CUpdateProduceCallbackImp upCallback(&arcItems, &stat2.DeleteData, callback);
651
+
652
+ UpdateProduce(updatePairs, actionSet, updatePairs2, isUpdatingItself ? &upCallback : NULL);
653
+ }
654
+
655
+ {
656
+ FOR_VECTOR (i, updatePairs2)
657
+ {
658
+ const CUpdatePair2 &up = updatePairs2[i];
659
+
660
+ // 17.01: anti-item is (up.NewData && (p.UseArcProps in most cases))
661
+
662
+ if (up.NewData && !up.UseArcProps)
663
+ {
664
+ if (up.ExistOnDisk())
665
+ {
666
+ CDirItemsStat2 &stat = stat2.NewData;
667
+ const CDirItem &di = dirItems.Items[up.DirIndex];
668
+ if (di.IsDir())
669
+ {
670
+ if (up.IsAnti)
671
+ stat.Anti_NumDirs++;
672
+ else
673
+ stat.NumDirs++;
674
+ }
675
+ else if (di.IsAltStream)
676
+ {
677
+ if (up.IsAnti)
678
+ stat.Anti_NumAltStreams++;
679
+ else
680
+ {
681
+ stat.NumAltStreams++;
682
+ stat.AltStreamsSize += di.Size;
683
+ }
684
+ }
685
+ else
686
+ {
687
+ if (up.IsAnti)
688
+ stat.Anti_NumFiles++;
689
+ else
690
+ {
691
+ stat.NumFiles++;
692
+ stat.FilesSize += di.Size;
693
+ }
694
+ }
695
+ }
696
+ }
697
+ else if (up.ArcIndex >= 0)
698
+ {
699
+ CDirItemsStat2 &stat = *(up.NewData ? &stat2.NewData : &stat2.OldData);
700
+ const CArcItem &ai = arcItems[up.ArcIndex];
701
+ if (ai.IsDir)
702
+ {
703
+ if (up.IsAnti)
704
+ stat.Anti_NumDirs++;
705
+ else
706
+ stat.NumDirs++;
707
+ }
708
+ else if (ai.IsAltStream)
709
+ {
710
+ if (up.IsAnti)
711
+ stat.Anti_NumAltStreams++;
712
+ else
713
+ {
714
+ stat.NumAltStreams++;
715
+ stat.AltStreamsSize += ai.Size;
716
+ }
717
+ }
718
+ else
719
+ {
720
+ if (up.IsAnti)
721
+ stat.Anti_NumFiles++;
722
+ else
723
+ {
724
+ stat.NumFiles++;
725
+ stat.FilesSize += ai.Size;
726
+ }
727
+ }
728
+ }
729
+ }
730
+ RINOK(callback->SetNumItems(stat2));
731
+ }
732
+
733
+ CArchiveUpdateCallback *updateCallbackSpec = new CArchiveUpdateCallback;
734
+ CMyComPtr<IArchiveUpdateCallback> updateCallback(updateCallbackSpec);
735
+
736
+ updateCallbackSpec->ShareForWrite = options.OpenShareForWrite;
737
+ updateCallbackSpec->StopAfterOpenError = options.StopAfterOpenError;
738
+ updateCallbackSpec->StdInMode = options.StdInMode;
739
+ updateCallbackSpec->Callback = callback;
740
+
741
+ if (arc)
742
+ {
743
+ // we set Archive to allow to transfer GetProperty requests back to DLL.
744
+ updateCallbackSpec->Archive = arc->Archive;
745
+ }
746
+
747
+ updateCallbackSpec->DirItems = &dirItems;
748
+ updateCallbackSpec->ParentDirItem = parentDirItem;
749
+
750
+ updateCallbackSpec->StoreNtSecurity = options.NtSecurity.Val;
751
+ updateCallbackSpec->StoreHardLinks = options.HardLinks.Val;
752
+ updateCallbackSpec->StoreSymLinks = options.SymLinks.Val;
753
+
754
+ updateCallbackSpec->Arc = arc;
755
+ updateCallbackSpec->ArcItems = &arcItems;
756
+ updateCallbackSpec->UpdatePairs = &updatePairs2;
757
+
758
+ updateCallbackSpec->ProcessedItemsStatuses = processedItemsStatuses;
759
+
760
+ if (options.RenamePairs.Size() != 0)
761
+ updateCallbackSpec->NewNames = &newNames;
762
+
763
+ CMyComPtr<IOutStream> outSeekStream;
764
+ CMyComPtr<ISequentialOutStream> outStream;
765
+
766
+ if (!options.StdOutMode)
767
+ {
768
+ FString dirPrefix;
769
+ if (!GetOnlyDirPrefix(us2fs(archivePath.GetFinalPath()), dirPrefix))
770
+ throw 1417161;
771
+ CreateComplexDir(dirPrefix);
772
+ }
773
+
774
+ COutFileStream *outStreamSpec = NULL;
775
+ CStdOutFileStream *stdOutFileStreamSpec = NULL;
776
+ COutMultiVolStream *volStreamSpec = NULL;
777
+
778
+ if (options.VolumesSizes.Size() == 0)
779
+ {
780
+ if (options.StdOutMode)
781
+ {
782
+ stdOutFileStreamSpec = new CStdOutFileStream;
783
+ outStream = stdOutFileStreamSpec;
784
+ }
785
+ else
786
+ {
787
+ outStreamSpec = new COutFileStream;
788
+ outSeekStream = outStreamSpec;
789
+ outStream = outSeekStream;
790
+ bool isOK = false;
791
+ FString realPath;
792
+
793
+ for (unsigned i = 0; i < (1 << 16); i++)
794
+ {
795
+ if (archivePath.Temp)
796
+ {
797
+ if (i > 0)
798
+ {
799
+ archivePath.TempPostfix.Empty();
800
+ archivePath.TempPostfix.Add_UInt32(i);
801
+ }
802
+ realPath = archivePath.GetTempPath();
803
+ }
804
+ else
805
+ realPath = us2fs(archivePath.GetFinalPath());
806
+ if (outStreamSpec->Create(realPath, false))
807
+ {
808
+ tempFiles.Paths.Add(realPath);
809
+ isOK = true;
810
+ break;
811
+ }
812
+ if (::GetLastError() != ERROR_FILE_EXISTS)
813
+ break;
814
+ if (!archivePath.Temp)
815
+ break;
816
+ }
817
+
818
+ if (!isOK)
819
+ return errorInfo.SetFromLastError("cannot open file", realPath);
820
+ }
821
+ }
822
+ else
823
+ {
824
+ if (options.StdOutMode)
825
+ return E_FAIL;
826
+ if (arc && arc->GetGlobalOffset() > 0)
827
+ return E_NOTIMPL;
828
+
829
+ volStreamSpec = new COutMultiVolStream;
830
+ outSeekStream = volStreamSpec;
831
+ outStream = outSeekStream;
832
+ volStreamSpec->Sizes = options.VolumesSizes;
833
+ volStreamSpec->Prefix = us2fs(archivePath.GetFinalVolPath());
834
+ volStreamSpec->Prefix += '.';
835
+ volStreamSpec->TempFiles = &tempFiles;
836
+ volStreamSpec->Init();
837
+
838
+ /*
839
+ updateCallbackSpec->VolumesSizes = volumesSizes;
840
+ updateCallbackSpec->VolName = archivePath.Prefix + archivePath.Name;
841
+ if (!archivePath.VolExtension.IsEmpty())
842
+ updateCallbackSpec->VolExt = UString('.') + archivePath.VolExtension;
843
+ */
844
+ }
845
+
846
+ RINOK(SetProperties(outArchive, options.MethodMode.Properties));
847
+
848
+ if (options.SfxMode)
849
+ {
850
+ CInFileStream *sfxStreamSpec = new CInFileStream;
851
+ CMyComPtr<IInStream> sfxStream(sfxStreamSpec);
852
+ if (!sfxStreamSpec->Open(options.SfxModule))
853
+ return errorInfo.SetFromLastError("cannot open SFX module", options.SfxModule);
854
+
855
+ CMyComPtr<ISequentialOutStream> sfxOutStream;
856
+ COutFileStream *outStreamSpec2 = NULL;
857
+ if (options.VolumesSizes.Size() == 0)
858
+ sfxOutStream = outStream;
859
+ else
860
+ {
861
+ outStreamSpec2 = new COutFileStream;
862
+ sfxOutStream = outStreamSpec2;
863
+ FString realPath = us2fs(archivePath.GetFinalPath());
864
+ if (!outStreamSpec2->Create(realPath, false))
865
+ return errorInfo.SetFromLastError("cannot open file", realPath);
866
+ }
867
+
868
+ {
869
+ UInt64 sfxSize;
870
+ RINOK(sfxStreamSpec->GetSize(&sfxSize));
871
+ RINOK(callback->WriteSfx(fs2us(options.SfxModule), sfxSize));
872
+ }
873
+
874
+ RINOK(NCompress::CopyStream(sfxStream, sfxOutStream, NULL));
875
+
876
+ if (outStreamSpec2)
877
+ {
878
+ RINOK(outStreamSpec2->Close());
879
+ }
880
+ }
881
+
882
+ CMyComPtr<ISequentialOutStream> tailStream;
883
+
884
+ if (options.SfxMode || !arc || arc->ArcStreamOffset == 0)
885
+ tailStream = outStream;
886
+ else
887
+ {
888
+ // Int64 globalOffset = arc->GetGlobalOffset();
889
+ RINOK(arc->InStream->Seek(0, STREAM_SEEK_SET, NULL));
890
+ RINOK(NCompress::CopyStream_ExactSize(arc->InStream, outStream, arc->ArcStreamOffset, NULL));
891
+ if (options.StdOutMode)
892
+ tailStream = outStream;
893
+ else
894
+ {
895
+ CTailOutStream *tailStreamSpec = new CTailOutStream;
896
+ tailStream = tailStreamSpec;
897
+ tailStreamSpec->Stream = outSeekStream;
898
+ tailStreamSpec->Offset = arc->ArcStreamOffset;
899
+ tailStreamSpec->Init();
900
+ }
901
+ }
902
+
903
+
904
+ HRESULT result = outArchive->UpdateItems(tailStream, updatePairs2.Size(), updateCallback);
905
+ // callback->Finalize();
906
+ RINOK(result);
907
+
908
+ if (!updateCallbackSpec->AreAllFilesClosed())
909
+ {
910
+ errorInfo.Message = "There are unclosed input file:";
911
+ errorInfo.FileNames = updateCallbackSpec->_openFiles_Paths;
912
+ return E_FAIL;
913
+ }
914
+
915
+ if (options.SetArcMTime)
916
+ {
917
+ FILETIME ft;
918
+ ft.dwLowDateTime = 0;
919
+ ft.dwHighDateTime = 0;
920
+ FOR_VECTOR (i, updatePairs2)
921
+ {
922
+ CUpdatePair2 &pair2 = updatePairs2[i];
923
+ const FILETIME *ft2 = NULL;
924
+ if (pair2.NewProps && pair2.DirIndex >= 0)
925
+ ft2 = &dirItems.Items[pair2.DirIndex].MTime;
926
+ else if (pair2.UseArcProps && pair2.ArcIndex >= 0)
927
+ ft2 = &arcItems[pair2.ArcIndex].MTime;
928
+ if (ft2)
929
+ {
930
+ if (::CompareFileTime(&ft, ft2) < 0)
931
+ ft = *ft2;
932
+ }
933
+ }
934
+ if (ft.dwLowDateTime != 0 || ft.dwHighDateTime != 0)
935
+ {
936
+ if (outStreamSpec)
937
+ outStreamSpec->SetMTime(&ft);
938
+ else if (volStreamSpec)
939
+ volStreamSpec->SetMTime(&ft);;
940
+ }
941
+ }
942
+
943
+ if (callback)
944
+ {
945
+ UInt64 size = 0;
946
+ if (outStreamSpec)
947
+ outStreamSpec->GetSize(&size);
948
+ else if (stdOutFileStreamSpec)
949
+ size = stdOutFileStreamSpec->GetSize();
950
+ else
951
+ size = volStreamSpec->GetSize();
952
+
953
+ st.OutArcFileSize = size;
954
+ }
955
+
956
+ if (outStreamSpec)
957
+ result = outStreamSpec->Close();
958
+ else if (volStreamSpec)
959
+ result = volStreamSpec->Close();
960
+ return result;
961
+ }
962
+
963
+ bool CensorNode_CheckPath2(const NWildcard::CCensorNode &node, const CReadArcItem &item, bool &include);
964
+
965
+ static bool Censor_CheckPath(const NWildcard::CCensor &censor, const CReadArcItem &item)
966
+ {
967
+ bool finded = false;
968
+ FOR_VECTOR (i, censor.Pairs)
969
+ {
970
+ bool include;
971
+ if (CensorNode_CheckPath2(censor.Pairs[i].Head, item, include))
972
+ {
973
+ if (!include)
974
+ return false;
975
+ finded = true;
976
+ }
977
+ }
978
+ return finded;
979
+ }
980
+
981
+ static HRESULT EnumerateInArchiveItems(
982
+ // bool storeStreamsMode,
983
+ const NWildcard::CCensor &censor,
984
+ const CArc &arc,
985
+ CObjectVector<CArcItem> &arcItems)
986
+ {
987
+ arcItems.Clear();
988
+ UInt32 numItems;
989
+ IInArchive *archive = arc.Archive;
990
+ RINOK(archive->GetNumberOfItems(&numItems));
991
+ arcItems.ClearAndReserve(numItems);
992
+
993
+ CReadArcItem item;
994
+
995
+ for (UInt32 i = 0; i < numItems; i++)
996
+ {
997
+ CArcItem ai;
998
+
999
+ RINOK(arc.GetItem(i, item));
1000
+ ai.Name = item.Path;
1001
+ ai.IsDir = item.IsDir;
1002
+ ai.IsAltStream =
1003
+ #ifdef SUPPORT_ALT_STREAMS
1004
+ item.IsAltStream;
1005
+ #else
1006
+ false;
1007
+ #endif
1008
+
1009
+ /*
1010
+ if (!storeStreamsMode && ai.IsAltStream)
1011
+ continue;
1012
+ */
1013
+ ai.Censored = Censor_CheckPath(censor, item);
1014
+
1015
+ RINOK(arc.GetItemMTime(i, ai.MTime, ai.MTimeDefined));
1016
+ RINOK(arc.GetItemSize(i, ai.Size, ai.SizeDefined));
1017
+
1018
+ {
1019
+ CPropVariant prop;
1020
+ RINOK(archive->GetProperty(i, kpidTimeType, &prop));
1021
+ if (prop.vt == VT_UI4)
1022
+ {
1023
+ ai.TimeType = (int)(NFileTimeType::EEnum)prop.ulVal;
1024
+ switch (ai.TimeType)
1025
+ {
1026
+ case NFileTimeType::kWindows:
1027
+ case NFileTimeType::kUnix:
1028
+ case NFileTimeType::kDOS:
1029
+ break;
1030
+ default:
1031
+ return E_FAIL;
1032
+ }
1033
+ }
1034
+ }
1035
+
1036
+ ai.IndexInServer = i;
1037
+ arcItems.AddInReserved(ai);
1038
+ }
1039
+ return S_OK;
1040
+ }
1041
+
1042
+ #if defined(_WIN32) && !defined(UNDER_CE)
1043
+
1044
+ #include <mapi.h>
1045
+
1046
+ #endif
1047
+
1048
+ HRESULT UpdateArchive(
1049
+ CCodecs *codecs,
1050
+ const CObjectVector<COpenType> &types,
1051
+ const UString &cmdArcPath2,
1052
+ NWildcard::CCensor &censor,
1053
+ CUpdateOptions &options,
1054
+ CUpdateErrorInfo &errorInfo,
1055
+ IOpenCallbackUI *openCallback,
1056
+ IUpdateCallbackUI2 *callback,
1057
+ bool needSetPath)
1058
+ {
1059
+ if (options.StdOutMode && options.EMailMode)
1060
+ return E_FAIL;
1061
+
1062
+ if (types.Size() > 1)
1063
+ return E_NOTIMPL;
1064
+
1065
+ bool renameMode = !options.RenamePairs.IsEmpty();
1066
+ if (renameMode)
1067
+ {
1068
+ if (options.Commands.Size() != 1)
1069
+ return E_FAIL;
1070
+ }
1071
+
1072
+ if (options.DeleteAfterCompressing)
1073
+ {
1074
+ if (options.Commands.Size() != 1)
1075
+ return E_NOTIMPL;
1076
+ const CActionSet &as = options.Commands[0].ActionSet;
1077
+ for (int i = 2; i < NPairState::kNumValues; i++)
1078
+ if (as.StateActions[i] != NPairAction::kCompress)
1079
+ return E_NOTIMPL;
1080
+ }
1081
+
1082
+ censor.AddPathsToCensor(options.PathMode);
1083
+ #ifdef _WIN32
1084
+ ConvertToLongNames(censor);
1085
+ #endif
1086
+ censor.ExtendExclude();
1087
+
1088
+
1089
+ if (options.VolumesSizes.Size() > 0 && (options.EMailMode /* || options.SfxMode */))
1090
+ return E_NOTIMPL;
1091
+
1092
+ if (options.SfxMode)
1093
+ {
1094
+ CProperty property;
1095
+ property.Name = "rsfx";
1096
+ options.MethodMode.Properties.Add(property);
1097
+ if (options.SfxModule.IsEmpty())
1098
+ {
1099
+ errorInfo.Message = "SFX file is not specified";
1100
+ return E_FAIL;
1101
+ }
1102
+ bool found = false;
1103
+ if (options.SfxModule.Find(FCHAR_PATH_SEPARATOR) < 0)
1104
+ {
1105
+ const FString fullName = NDLL::GetModuleDirPrefix() + options.SfxModule;
1106
+ if (NFind::DoesFileExist(fullName))
1107
+ {
1108
+ options.SfxModule = fullName;
1109
+ found = true;
1110
+ }
1111
+ }
1112
+ if (!found)
1113
+ {
1114
+ if (!NFind::DoesFileExist(options.SfxModule))
1115
+ return errorInfo.SetFromLastError("cannot find specified SFX module", options.SfxModule);
1116
+ }
1117
+ }
1118
+
1119
+ CArchiveLink arcLink;
1120
+
1121
+
1122
+ if (needSetPath)
1123
+ {
1124
+ if (!options.InitFormatIndex(codecs, types, cmdArcPath2) ||
1125
+ !options.SetArcPath(codecs, cmdArcPath2))
1126
+ return E_NOTIMPL;
1127
+ }
1128
+
1129
+ UString arcPath = options.ArchivePath.GetFinalPath();
1130
+
1131
+ if (!options.VolumesSizes.IsEmpty())
1132
+ {
1133
+ arcPath = options.ArchivePath.GetFinalVolPath();
1134
+ arcPath += '.';
1135
+ arcPath += "001";
1136
+ }
1137
+
1138
+ if (cmdArcPath2.IsEmpty())
1139
+ {
1140
+ if (options.MethodMode.Type.FormatIndex < 0)
1141
+ throw "type of archive is not specified";
1142
+ }
1143
+ else
1144
+ {
1145
+ NFind::CFileInfo fi;
1146
+ if (!fi.Find(us2fs(arcPath)))
1147
+ {
1148
+ if (renameMode)
1149
+ throw "can't find archive";;
1150
+ if (options.MethodMode.Type.FormatIndex < 0)
1151
+ {
1152
+ if (!options.SetArcPath(codecs, cmdArcPath2))
1153
+ return E_NOTIMPL;
1154
+ }
1155
+ }
1156
+ else
1157
+ {
1158
+ if (fi.IsDir())
1159
+ throw "there is no such archive";
1160
+ if (fi.IsDevice)
1161
+ return E_NOTIMPL;
1162
+
1163
+ if (!options.StdOutMode && options.UpdateArchiveItself)
1164
+ if (fi.IsReadOnly())
1165
+ {
1166
+ errorInfo.SystemError = ERROR_ACCESS_DENIED;
1167
+ errorInfo.Message = "The file is read-only";
1168
+ errorInfo.FileNames.Add(us2fs(arcPath));
1169
+ return errorInfo.Get_HRESULT_Error();
1170
+ }
1171
+
1172
+ if (options.VolumesSizes.Size() > 0)
1173
+ {
1174
+ errorInfo.FileNames.Add(us2fs(arcPath));
1175
+ errorInfo.SystemError = (DWORD)E_NOTIMPL;
1176
+ errorInfo.Message = kUpdateIsNotSupoorted_MultiVol;
1177
+ return E_NOTIMPL;
1178
+ }
1179
+ CObjectVector<COpenType> types2;
1180
+ // change it.
1181
+ if (options.MethodMode.Type_Defined)
1182
+ types2.Add(options.MethodMode.Type);
1183
+ // We need to set Properties to open archive only in some cases (WIM archives).
1184
+
1185
+ CIntVector excl;
1186
+ COpenOptions op;
1187
+ #ifndef _SFX
1188
+ op.props = &options.MethodMode.Properties;
1189
+ #endif
1190
+ op.codecs = codecs;
1191
+ op.types = &types2;
1192
+ op.excludedFormats = &excl;
1193
+ op.stdInMode = false;
1194
+ op.stream = NULL;
1195
+ op.filePath = arcPath;
1196
+
1197
+ RINOK(callback->StartOpenArchive(arcPath));
1198
+
1199
+ HRESULT result = arcLink.Open_Strict(op, openCallback);
1200
+
1201
+ if (result == E_ABORT)
1202
+ return result;
1203
+
1204
+ HRESULT res2 = callback->OpenResult(codecs, arcLink, arcPath, result);
1205
+ /*
1206
+ if (result == S_FALSE)
1207
+ return E_FAIL;
1208
+ */
1209
+ RINOK(res2);
1210
+ RINOK(result);
1211
+
1212
+ if (arcLink.VolumePaths.Size() > 1)
1213
+ {
1214
+ errorInfo.SystemError = (DWORD)E_NOTIMPL;
1215
+ errorInfo.Message = kUpdateIsNotSupoorted_MultiVol;
1216
+ return E_NOTIMPL;
1217
+ }
1218
+
1219
+ CArc &arc = arcLink.Arcs.Back();
1220
+ arc.MTimeDefined = !fi.IsDevice;
1221
+ arc.MTime = fi.MTime;
1222
+
1223
+ if (arc.ErrorInfo.ThereIsTail)
1224
+ {
1225
+ errorInfo.SystemError = (DWORD)E_NOTIMPL;
1226
+ errorInfo.Message = "There is some data block after the end of the archive";
1227
+ return E_NOTIMPL;
1228
+ }
1229
+ if (options.MethodMode.Type.FormatIndex < 0)
1230
+ {
1231
+ options.MethodMode.Type.FormatIndex = arcLink.GetArc()->FormatIndex;
1232
+ if (!options.SetArcPath(codecs, cmdArcPath2))
1233
+ return E_NOTIMPL;
1234
+ }
1235
+ }
1236
+ }
1237
+
1238
+ if (options.MethodMode.Type.FormatIndex < 0)
1239
+ {
1240
+ options.MethodMode.Type.FormatIndex = codecs->FindFormatForArchiveType((UString)kDefaultArcType);
1241
+ if (options.MethodMode.Type.FormatIndex < 0)
1242
+ return E_NOTIMPL;
1243
+ }
1244
+
1245
+ bool thereIsInArchive = arcLink.IsOpen;
1246
+ if (!thereIsInArchive && renameMode)
1247
+ return E_FAIL;
1248
+
1249
+ CDirItems dirItems;
1250
+ dirItems.Callback = callback;
1251
+
1252
+ CDirItem parentDirItem;
1253
+ CDirItem *parentDirItem_Ptr = NULL;
1254
+
1255
+ /*
1256
+ FStringVector requestedPaths;
1257
+ FStringVector *requestedPaths_Ptr = NULL;
1258
+ if (options.DeleteAfterCompressing)
1259
+ requestedPaths_Ptr = &requestedPaths;
1260
+ */
1261
+
1262
+ if (options.StdInMode)
1263
+ {
1264
+ CDirItem di;
1265
+ di.Name = options.StdInFileName;
1266
+ di.Size = (UInt64)(Int64)-1;
1267
+ di.Attrib = 0;
1268
+ NTime::GetCurUtcFileTime(di.MTime);
1269
+ di.CTime = di.ATime = di.MTime;
1270
+ dirItems.Items.Add(di);
1271
+ }
1272
+ else
1273
+ {
1274
+ bool needScanning = false;
1275
+
1276
+ if (!renameMode)
1277
+ FOR_VECTOR (i, options.Commands)
1278
+ if (options.Commands[i].ActionSet.NeedScanning())
1279
+ needScanning = true;
1280
+
1281
+ if (needScanning)
1282
+ {
1283
+ RINOK(callback->StartScanning());
1284
+
1285
+ dirItems.SymLinks = options.SymLinks.Val;
1286
+
1287
+ #if defined(_WIN32) && !defined(UNDER_CE)
1288
+ dirItems.ReadSecure = options.NtSecurity.Val;
1289
+ #endif
1290
+
1291
+ dirItems.ScanAltStreams = options.AltStreams.Val;
1292
+
1293
+ HRESULT res = EnumerateItems(censor,
1294
+ options.PathMode,
1295
+ options.AddPathPrefix,
1296
+ dirItems);
1297
+
1298
+ if (res != S_OK)
1299
+ {
1300
+ if (res != E_ABORT)
1301
+ errorInfo.Message = "Scanning error";
1302
+ return res;
1303
+ }
1304
+
1305
+ RINOK(callback->FinishScanning(dirItems.Stat));
1306
+
1307
+ if (censor.Pairs.Size() == 1)
1308
+ {
1309
+ NFind::CFileInfo fi;
1310
+ FString prefix = us2fs(censor.Pairs[0].Prefix);
1311
+ prefix += '.';
1312
+ // UString prefix = censor.Pairs[0].Prefix;
1313
+ /*
1314
+ if (prefix.Back() == WCHAR_PATH_SEPARATOR)
1315
+ {
1316
+ prefix.DeleteBack();
1317
+ }
1318
+ */
1319
+ if (fi.Find(prefix))
1320
+ if (fi.IsDir())
1321
+ {
1322
+ parentDirItem.Size = fi.Size;
1323
+ parentDirItem.CTime = fi.CTime;
1324
+ parentDirItem.ATime = fi.ATime;
1325
+ parentDirItem.MTime = fi.MTime;
1326
+ parentDirItem.Attrib = fi.Attrib;
1327
+ parentDirItem_Ptr = &parentDirItem;
1328
+
1329
+ int secureIndex = -1;
1330
+ #if defined(_WIN32) && !defined(UNDER_CE)
1331
+ if (options.NtSecurity.Val)
1332
+ dirItems.AddSecurityItem(prefix, secureIndex);
1333
+ #endif
1334
+ parentDirItem.SecureIndex = secureIndex;
1335
+
1336
+ parentDirItem_Ptr = &parentDirItem;
1337
+ }
1338
+ }
1339
+ }
1340
+ }
1341
+
1342
+ FString tempDirPrefix;
1343
+ bool usesTempDir = false;
1344
+
1345
+ #ifdef _WIN32
1346
+ CTempDir tempDirectory;
1347
+ if (options.EMailMode && options.EMailRemoveAfter)
1348
+ {
1349
+ tempDirectory.Create(kTempFolderPrefix);
1350
+ tempDirPrefix = tempDirectory.GetPath();
1351
+ NormalizeDirPathPrefix(tempDirPrefix);
1352
+ usesTempDir = true;
1353
+ }
1354
+ #endif
1355
+
1356
+ CTempFiles tempFiles;
1357
+
1358
+ bool createTempFile = false;
1359
+
1360
+ if (!options.StdOutMode && options.UpdateArchiveItself)
1361
+ {
1362
+ CArchivePath &ap = options.Commands[0].ArchivePath;
1363
+ ap = options.ArchivePath;
1364
+ // if ((archive != 0 && !usesTempDir) || !options.WorkingDir.IsEmpty())
1365
+ if ((thereIsInArchive || !options.WorkingDir.IsEmpty()) && !usesTempDir && options.VolumesSizes.Size() == 0)
1366
+ {
1367
+ createTempFile = true;
1368
+ ap.Temp = true;
1369
+ if (!options.WorkingDir.IsEmpty())
1370
+ ap.TempPrefix = options.WorkingDir;
1371
+ else
1372
+ ap.TempPrefix = us2fs(ap.Prefix);
1373
+ NormalizeDirPathPrefix(ap.TempPrefix);
1374
+ }
1375
+ }
1376
+
1377
+ unsigned ci;
1378
+
1379
+
1380
+ // self including protection
1381
+ if (options.DeleteAfterCompressing)
1382
+ {
1383
+ for (ci = 0; ci < options.Commands.Size(); ci++)
1384
+ {
1385
+ CArchivePath &ap = options.Commands[ci].ArchivePath;
1386
+ const FString path = us2fs(ap.GetFinalPath());
1387
+ // maybe we must compare absolute paths path here
1388
+ FOR_VECTOR (i, dirItems.Items)
1389
+ {
1390
+ const FString phyPath = dirItems.GetPhyPath(i);
1391
+ if (phyPath == path)
1392
+ {
1393
+ UString s;
1394
+ s = "It is not allowed to include archive to itself";
1395
+ s.Add_LF();
1396
+ s += path;
1397
+ throw s;
1398
+ }
1399
+ }
1400
+ }
1401
+ }
1402
+
1403
+
1404
+ for (ci = 0; ci < options.Commands.Size(); ci++)
1405
+ {
1406
+ CArchivePath &ap = options.Commands[ci].ArchivePath;
1407
+ if (usesTempDir)
1408
+ {
1409
+ // Check it
1410
+ ap.Prefix = fs2us(tempDirPrefix);
1411
+ // ap.Temp = true;
1412
+ // ap.TempPrefix = tempDirPrefix;
1413
+ }
1414
+ if (!options.StdOutMode &&
1415
+ (ci > 0 || !createTempFile))
1416
+ {
1417
+ const FString path = us2fs(ap.GetFinalPath());
1418
+ if (NFind::DoesFileOrDirExist(path))
1419
+ {
1420
+ errorInfo.SystemError = ERROR_FILE_EXISTS;
1421
+ errorInfo.Message = "The file already exists";
1422
+ errorInfo.FileNames.Add(path);
1423
+ return errorInfo.Get_HRESULT_Error();
1424
+ }
1425
+ }
1426
+ }
1427
+
1428
+ CObjectVector<CArcItem> arcItems;
1429
+ if (thereIsInArchive)
1430
+ {
1431
+ RINOK(EnumerateInArchiveItems(
1432
+ // options.StoreAltStreams,
1433
+ censor, arcLink.Arcs.Back(), arcItems));
1434
+ }
1435
+
1436
+ /*
1437
+ FStringVector processedFilePaths;
1438
+ FStringVector *processedFilePaths_Ptr = NULL;
1439
+ if (options.DeleteAfterCompressing)
1440
+ processedFilePaths_Ptr = &processedFilePaths;
1441
+ */
1442
+
1443
+ CByteBuffer processedItems;
1444
+ if (options.DeleteAfterCompressing)
1445
+ {
1446
+ unsigned num = dirItems.Items.Size();
1447
+ processedItems.Alloc(num);
1448
+ for (unsigned i = 0; i < num; i++)
1449
+ processedItems[i] = 0;
1450
+ }
1451
+
1452
+ /*
1453
+ #ifndef _NO_CRYPTO
1454
+ if (arcLink.PasswordWasAsked)
1455
+ {
1456
+ // We set password, if open have requested password
1457
+ RINOK(callback->SetPassword(arcLink.Password));
1458
+ }
1459
+ #endif
1460
+ */
1461
+
1462
+ for (ci = 0; ci < options.Commands.Size(); ci++)
1463
+ {
1464
+ const CArc *arc = thereIsInArchive ? arcLink.GetArc() : NULL;
1465
+ CUpdateArchiveCommand &command = options.Commands[ci];
1466
+ UString name;
1467
+ bool isUpdating;
1468
+
1469
+ if (options.StdOutMode)
1470
+ {
1471
+ name = "stdout";
1472
+ isUpdating = thereIsInArchive;
1473
+ }
1474
+ else
1475
+ {
1476
+ name = command.ArchivePath.GetFinalPath();
1477
+ isUpdating = (ci == 0 && options.UpdateArchiveItself && thereIsInArchive);
1478
+ }
1479
+
1480
+ RINOK(callback->StartArchive(name, isUpdating))
1481
+
1482
+ CFinishArchiveStat st;
1483
+
1484
+ RINOK(Compress(options,
1485
+ isUpdating,
1486
+ codecs,
1487
+ command.ActionSet,
1488
+ arc,
1489
+ command.ArchivePath,
1490
+ arcItems,
1491
+ options.DeleteAfterCompressing ? (Byte *)processedItems : NULL,
1492
+
1493
+ dirItems,
1494
+ parentDirItem_Ptr,
1495
+
1496
+ tempFiles,
1497
+ errorInfo, callback, st));
1498
+
1499
+ RINOK(callback->FinishArchive(st));
1500
+ }
1501
+
1502
+
1503
+ if (thereIsInArchive)
1504
+ {
1505
+ RINOK(arcLink.Close());
1506
+ arcLink.Release();
1507
+ }
1508
+
1509
+ tempFiles.Paths.Clear();
1510
+ if (createTempFile)
1511
+ {
1512
+ try
1513
+ {
1514
+ CArchivePath &ap = options.Commands[0].ArchivePath;
1515
+ const FString &tempPath = ap.GetTempPath();
1516
+
1517
+ // DWORD attrib = 0;
1518
+ if (thereIsInArchive)
1519
+ {
1520
+ // attrib = NFind::GetFileAttrib(us2fs(arcPath));
1521
+ if (!DeleteFileAlways(us2fs(arcPath)))
1522
+ return errorInfo.SetFromLastError("cannot delete the file", us2fs(arcPath));
1523
+ }
1524
+
1525
+ if (!MyMoveFile(tempPath, us2fs(arcPath)))
1526
+ {
1527
+ errorInfo.SetFromLastError("cannot move the file", tempPath);
1528
+ errorInfo.FileNames.Add(us2fs(arcPath));
1529
+ return errorInfo.Get_HRESULT_Error();
1530
+ }
1531
+
1532
+ /*
1533
+ if (attrib != INVALID_FILE_ATTRIBUTES && (attrib & FILE_ATTRIBUTE_READONLY))
1534
+ {
1535
+ DWORD attrib2 = NFind::GetFileAttrib(us2fs(arcPath));
1536
+ if (attrib2 != INVALID_FILE_ATTRIBUTES)
1537
+ NDir::SetFileAttrib(us2fs(arcPath), attrib2 | FILE_ATTRIBUTE_READONLY);
1538
+ }
1539
+ */
1540
+ }
1541
+ catch(...)
1542
+ {
1543
+ throw;
1544
+ }
1545
+ }
1546
+
1547
+
1548
+ #if defined(_WIN32) && !defined(UNDER_CE)
1549
+
1550
+ if (options.EMailMode)
1551
+ {
1552
+ NDLL::CLibrary mapiLib;
1553
+ if (!mapiLib.Load(FTEXT("Mapi32.dll")))
1554
+ {
1555
+ errorInfo.SetFromLastError("cannot load Mapi32.dll");
1556
+ return errorInfo.Get_HRESULT_Error();
1557
+ }
1558
+
1559
+ /*
1560
+ LPMAPISENDDOCUMENTS fnSend = (LPMAPISENDDOCUMENTS)mapiLib.GetProc("MAPISendDocuments");
1561
+ if (fnSend == 0)
1562
+ {
1563
+ errorInfo.SetFromLastError)("7-Zip cannot find MAPISendDocuments function");
1564
+ return errorInfo.Get_HRESULT_Error();
1565
+ }
1566
+ */
1567
+
1568
+ LPMAPISENDMAIL sendMail = (LPMAPISENDMAIL)mapiLib.GetProc("MAPISendMail");
1569
+ if (sendMail == 0)
1570
+ {
1571
+ errorInfo.SetFromLastError("7-Zip cannot find MAPISendMail function");
1572
+ return errorInfo.Get_HRESULT_Error();;
1573
+ }
1574
+
1575
+ FStringVector fullPaths;
1576
+ unsigned i;
1577
+
1578
+ for (i = 0; i < options.Commands.Size(); i++)
1579
+ {
1580
+ CArchivePath &ap = options.Commands[i].ArchivePath;
1581
+ FString finalPath = us2fs(ap.GetFinalPath());
1582
+ FString arcPath2;
1583
+ if (!MyGetFullPathName(finalPath, arcPath2))
1584
+ return errorInfo.SetFromLastError("GetFullPathName error", finalPath);
1585
+ fullPaths.Add(arcPath2);
1586
+ }
1587
+
1588
+ CCurrentDirRestorer curDirRestorer;
1589
+
1590
+ AStringVector paths;
1591
+ AStringVector names;
1592
+
1593
+ for (i = 0; i < fullPaths.Size(); i++)
1594
+ {
1595
+ const UString arcPath2 = fs2us(fullPaths[i]);
1596
+ const UString fileName = ExtractFileNameFromPath(arcPath2);
1597
+ paths.Add(GetAnsiString(arcPath2));
1598
+ names.Add(GetAnsiString(fileName));
1599
+ // const AString path (GetAnsiString(arcPath2));
1600
+ // const AString name (GetAnsiString(fileName));
1601
+ // Warning!!! MAPISendDocuments function changes Current directory
1602
+ // fnSend(0, ";", (LPSTR)(LPCSTR)path, (LPSTR)(LPCSTR)name, 0);
1603
+ }
1604
+
1605
+ CRecordVector<MapiFileDesc> files;
1606
+ files.ClearAndSetSize(paths.Size());
1607
+
1608
+ for (i = 0; i < paths.Size(); i++)
1609
+ {
1610
+ MapiFileDesc &f = files[i];
1611
+ memset(&f, 0, sizeof(f));
1612
+ f.nPosition = 0xFFFFFFFF;
1613
+ f.lpszPathName = (char *)(const char *)paths[i];
1614
+ f.lpszFileName = (char *)(const char *)names[i];
1615
+ }
1616
+
1617
+ {
1618
+ MapiMessage m;
1619
+ memset(&m, 0, sizeof(m));
1620
+ m.nFileCount = files.Size();
1621
+ m.lpFiles = &files.Front();
1622
+
1623
+ const AString addr (GetAnsiString(options.EMailAddress));
1624
+ MapiRecipDesc rec;
1625
+ if (!addr.IsEmpty())
1626
+ {
1627
+ memset(&rec, 0, sizeof(rec));
1628
+ rec.ulRecipClass = MAPI_TO;
1629
+ rec.lpszAddress = (char *)(const char *)addr;
1630
+ m.nRecipCount = 1;
1631
+ m.lpRecips = &rec;
1632
+ }
1633
+
1634
+ sendMail((LHANDLE)0, 0, &m, MAPI_DIALOG, 0);
1635
+ }
1636
+ }
1637
+
1638
+ #endif
1639
+
1640
+ if (options.DeleteAfterCompressing)
1641
+ {
1642
+ CRecordVector<CDirPathSortPair> pairs;
1643
+ FStringVector foldersNames;
1644
+
1645
+ unsigned i;
1646
+
1647
+ for (i = 0; i < dirItems.Items.Size(); i++)
1648
+ {
1649
+ const CDirItem &dirItem = dirItems.Items[i];
1650
+ const FString phyPath = dirItems.GetPhyPath(i);
1651
+ if (dirItem.IsDir())
1652
+ {
1653
+ CDirPathSortPair pair;
1654
+ pair.Index = i;
1655
+ pair.SetNumSlashes(phyPath);
1656
+ pairs.Add(pair);
1657
+ }
1658
+ else
1659
+ {
1660
+ if (processedItems[i] != 0 || dirItem.Size == 0)
1661
+ {
1662
+ NFind::CFileInfo fileInfo;
1663
+ if (fileInfo.Find(phyPath))
1664
+ {
1665
+ // maybe we must exclude also files with archive name: "a a.7z * -sdel"
1666
+ if (fileInfo.Size == dirItem.Size
1667
+ && CompareFileTime(&fileInfo.MTime, &dirItem.MTime) == 0
1668
+ && CompareFileTime(&fileInfo.CTime, &dirItem.CTime) == 0)
1669
+ {
1670
+ RINOK(callback->DeletingAfterArchiving(phyPath, false));
1671
+ DeleteFileAlways(phyPath);
1672
+ }
1673
+ }
1674
+ }
1675
+ else
1676
+ {
1677
+ // file was skipped
1678
+ /*
1679
+ errorInfo.SystemError = 0;
1680
+ errorInfo.Message = "file was not processed";
1681
+ errorInfo.FileName = phyPath;
1682
+ return E_FAIL;
1683
+ */
1684
+ }
1685
+ }
1686
+ }
1687
+
1688
+ pairs.Sort2();
1689
+
1690
+ for (i = 0; i < pairs.Size(); i++)
1691
+ {
1692
+ const FString phyPath = dirItems.GetPhyPath(pairs[i].Index);
1693
+ if (NFind::DoesDirExist(phyPath))
1694
+ {
1695
+ RINOK(callback->DeletingAfterArchiving(phyPath, true));
1696
+ RemoveDir(phyPath);
1697
+ }
1698
+ }
1699
+
1700
+ RINOK(callback->FinishDeletingAfterArchiving());
1701
+ }
1702
+
1703
+ return S_OK;
1704
+ }