libarchive-static 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. checksums.yaml +5 -5
  2. data/ext/extconf.rb +2 -9
  3. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.c +6 -6
  4. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.o +0 -0
  5. data/ext/libarchive-0.1.1/ext/archive_read_support_format.o +0 -0
  6. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c +1 -1
  7. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.o +0 -0
  8. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.c +5 -5
  9. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.o +0 -0
  10. data/ext/libarchive-0.1.1/ext/config.h +23 -0
  11. data/ext/libarchive-0.1.1/ext/config.log +230 -0
  12. data/ext/libarchive-0.1.1/ext/config.status +671 -0
  13. data/ext/libarchive-0.1.1/ext/libarchive.c +1 -1
  14. data/ext/libarchive-0.1.1/ext/libarchive.o +0 -0
  15. data/ext/libarchive-0.1.1/ext/libarchive_archive.c +7 -7
  16. data/ext/libarchive-0.1.1/ext/libarchive_archive.o +0 -0
  17. data/ext/libarchive-0.1.1/ext/libarchive_entry.c +6 -0
  18. data/ext/libarchive-0.1.1/ext/libarchive_entry.o +0 -0
  19. data/ext/libarchive-0.1.1/ext/libarchive_internal.h +0 -1
  20. data/ext/libarchive-0.1.1/ext/libarchive_reader.c +6 -4
  21. data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
  22. data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
  23. data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
  24. data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
  25. data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
  26. data/ext/libarchive-3.6.2/Makefile.in +16892 -0
  27. data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
  28. data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
  29. data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
  30. data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
  31. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
  32. data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
  33. data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
  34. data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
  35. data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
  36. data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
  37. data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
  38. data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
  39. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
  40. data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
  41. data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
  42. data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
  43. data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
  44. data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
  45. data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
  46. data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
  47. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
  48. data/ext/libarchive-3.6.2/config.h.in +1504 -0
  49. data/ext/libarchive-3.6.2/configure +25558 -0
  50. data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
  51. data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
  52. data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
  53. data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
  54. data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
  55. data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
  56. data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
  57. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
  58. data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
  59. data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
  60. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
  61. data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
  62. data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
  63. data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
  64. data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
  65. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
  66. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
  67. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
  68. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
  69. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
  70. data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
  71. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
  72. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
  73. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
  74. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
  75. data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
  76. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
  77. data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
  78. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
  79. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
  80. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
  81. data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
  82. data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
  83. data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
  84. data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
  85. data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
  86. data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
  87. data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
  88. data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
  89. data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
  90. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
  91. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
  92. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
  93. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
  94. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
  95. data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
  96. data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
  97. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
  98. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
  99. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
  100. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
  101. data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
  102. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
  103. data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
  104. data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
  105. data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
  106. data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
  107. data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
  108. data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
  109. data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
  110. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
  111. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
  112. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
  113. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
  114. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
  115. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
  116. data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
  117. data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
  118. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
  119. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
  120. data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
  121. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
  122. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
  123. data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
  124. data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
  125. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_all.c → libarchive-3.6.2/libarchive/archive_read_support_filter_all.c} +35 -10
  126. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
  127. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_bzip2.c → libarchive-3.6.2/libarchive/archive_read_support_filter_bzip2.c} +38 -26
  128. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_compress.c → libarchive-3.6.2/libarchive/archive_read_support_filter_compress.c} +52 -44
  129. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
  130. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_gzip.c → libarchive-3.6.2/libarchive/archive_read_support_filter_gzip.c} +108 -37
  131. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
  132. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
  133. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
  134. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_none.c → libarchive-3.6.2/libarchive/archive_read_support_filter_none.c} +15 -3
  135. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_program.c → libarchive-3.6.2/libarchive/archive_read_support_filter_program.c} +114 -77
  136. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_rpm.c → libarchive-3.6.2/libarchive/archive_read_support_filter_rpm.c} +31 -31
  137. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_uu.c → libarchive-3.6.2/libarchive/archive_read_support_filter_uu.c} +141 -85
  138. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_compression_xz.c → libarchive-3.6.2/libarchive/archive_read_support_filter_xz.c} +369 -284
  139. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
  140. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
  141. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
  142. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
  143. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
  144. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
  145. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
  146. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
  147. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
  148. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
  149. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
  150. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
  151. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
  152. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
  153. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
  154. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
  155. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
  156. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
  157. data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
  158. data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
  159. data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
  160. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
  161. data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
  162. data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
  163. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
  164. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
  165. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
  166. data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
  167. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
  168. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
  169. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
  170. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
  171. data/ext/{libarchive-2.8.4/libarchive/archive_write_set_compression_compress.c → libarchive-3.6.2/libarchive/archive_write_add_filter_compress.c} +86 -131
  172. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
  173. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
  174. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
  175. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
  176. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
  177. data/ext/{libarchive-2.8.4/libarchive/archive_read_support_format_all.c → libarchive-3.6.2/libarchive/archive_write_add_filter_none.c} +11 -11
  178. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
  179. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
  180. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
  181. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
  182. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
  183. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
  184. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
  185. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
  186. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
  187. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
  188. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
  189. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
  190. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
  191. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
  192. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
  193. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
  194. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
  195. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
  196. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
  197. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
  198. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
  199. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
  200. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
  201. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
  202. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
  203. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
  204. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
  205. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
  206. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
  207. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
  208. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
  209. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
  210. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
  211. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
  212. data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
  213. data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
  214. data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
  215. data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
  216. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
  217. data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
  218. data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
  219. data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
  220. data/ext/libarchive-static-makefile +144 -80
  221. data/ext/libarchive-static-wrapper-makefile +1 -1
  222. data/ext/zlib-1.2.13/Makefile.in +404 -0
  223. data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
  224. data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
  225. data/ext/zlib-1.2.13/configure +922 -0
  226. data/ext/zlib-1.2.13/crc32.c +1125 -0
  227. data/ext/zlib-1.2.13/crc32.h +9446 -0
  228. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
  229. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
  230. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
  231. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
  232. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
  233. data/ext/zlib-1.2.13/gzread.c +650 -0
  234. data/ext/zlib-1.2.13/gzwrite.c +677 -0
  235. data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
  236. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
  237. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
  238. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
  239. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
  240. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
  241. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
  242. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
  243. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
  244. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
  245. data/ext/zlib-1.2.13/uncompr.c +93 -0
  246. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
  247. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
  248. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
  249. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
  250. metadata +244 -137
  251. data/ext/libarchive-0.1.1/libarchive.c +0 -1762
  252. data/ext/libarchive-2.8.4/Makefile.in +0 -7076
  253. data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
  254. data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
  255. data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
  256. data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
  257. data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
  258. data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
  259. data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
  260. data/ext/libarchive-2.8.4/config.h.in +0 -772
  261. data/ext/libarchive-2.8.4/configure +0 -17916
  262. data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
  263. data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
  264. data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
  265. data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
  266. data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
  267. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
  268. data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
  269. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
  270. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
  271. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
  272. data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
  273. data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
  274. data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
  275. data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
  276. data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
  277. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
  278. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
  279. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
  280. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
  281. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
  282. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
  283. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
  284. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
  285. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
  286. data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
  287. data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
  288. data/ext/zlib-1.2.5/Makefile.in +0 -257
  289. data/ext/zlib-1.2.5/configure +0 -596
  290. data/ext/zlib-1.2.5/crc32.c +0 -442
  291. data/ext/zlib-1.2.5/crc32.h +0 -441
  292. data/ext/zlib-1.2.5/example.c +0 -565
  293. data/ext/zlib-1.2.5/gzread.c +0 -653
  294. data/ext/zlib-1.2.5/gzwrite.c +0 -531
  295. data/ext/zlib-1.2.5/minigzip.c +0 -440
  296. data/ext/zlib-1.2.5/uncompr.c +0 -59
@@ -41,22 +41,20 @@ __FBSDID("$FreeBSD: src/lib/libarchive/archive_read_open_memory.c,v 1.6 2007/07/
41
41
  */
42
42
 
43
43
  struct read_memory_data {
44
- unsigned char *buffer;
45
- unsigned char *end;
44
+ const unsigned char *start;
45
+ const unsigned char *p;
46
+ const unsigned char *end;
46
47
  ssize_t read_size;
47
48
  };
48
49
 
49
50
  static int memory_read_close(struct archive *, void *);
50
51
  static int memory_read_open(struct archive *, void *);
51
- #if ARCHIVE_API_VERSION < 2
52
- static ssize_t memory_read_skip(struct archive *, void *, size_t request);
53
- #else
54
- static off_t memory_read_skip(struct archive *, void *, off_t request);
55
- #endif
52
+ static int64_t memory_read_seek(struct archive *, void *, int64_t offset, int whence);
53
+ static int64_t memory_read_skip(struct archive *, void *, int64_t request);
56
54
  static ssize_t memory_read(struct archive *, void *, const void **buff);
57
55
 
58
56
  int
59
- archive_read_open_memory(struct archive *a, void *buff, size_t size)
57
+ archive_read_open_memory(struct archive *a, const void *buff, size_t size)
60
58
  {
61
59
  return archive_read_open_memory2(a, buff, size, size);
62
60
  }
@@ -67,22 +65,26 @@ archive_read_open_memory(struct archive *a, void *buff, size_t size)
67
65
  * test harnesses can exercise block operations inside the library.
68
66
  */
69
67
  int
70
- archive_read_open_memory2(struct archive *a, void *buff,
68
+ archive_read_open_memory2(struct archive *a, const void *buff,
71
69
  size_t size, size_t read_size)
72
70
  {
73
71
  struct read_memory_data *mine;
74
72
 
75
- mine = (struct read_memory_data *)malloc(sizeof(*mine));
73
+ mine = (struct read_memory_data *)calloc(1, sizeof(*mine));
76
74
  if (mine == NULL) {
77
75
  archive_set_error(a, ENOMEM, "No memory");
78
76
  return (ARCHIVE_FATAL);
79
77
  }
80
- memset(mine, 0, sizeof(*mine));
81
- mine->buffer = (unsigned char *)buff;
82
- mine->end = mine->buffer + size;
78
+ mine->start = mine->p = (const unsigned char *)buff;
79
+ mine->end = mine->start + size;
83
80
  mine->read_size = read_size;
84
- return (archive_read_open2(a, mine, memory_read_open,
85
- memory_read, memory_read_skip, memory_read_close));
81
+ archive_read_set_open_callback(a, memory_read_open);
82
+ archive_read_set_read_callback(a, memory_read);
83
+ archive_read_set_seek_callback(a, memory_read_seek);
84
+ archive_read_set_skip_callback(a, memory_read_skip);
85
+ archive_read_set_close_callback(a, memory_read_close);
86
+ archive_read_set_callback_data(a, mine);
87
+ return (archive_read_open1(a));
86
88
  }
87
89
 
88
90
  /*
@@ -110,11 +112,11 @@ memory_read(struct archive *a, void *client_data, const void **buff)
110
112
  ssize_t size;
111
113
 
112
114
  (void)a; /* UNUSED */
113
- *buff = mine->buffer;
114
- size = mine->end - mine->buffer;
115
+ *buff = mine->p;
116
+ size = mine->end - mine->p;
115
117
  if (size > mine->read_size)
116
118
  size = mine->read_size;
117
- mine->buffer += size;
119
+ mine->p += size;
118
120
  return (size);
119
121
  }
120
122
 
@@ -123,26 +125,54 @@ memory_read(struct archive *a, void *client_data, const void **buff)
123
125
  * necessary in order to better exercise internal code when used
124
126
  * as a test harness.
125
127
  */
126
- #if ARCHIVE_API_VERSION < 2
127
- static ssize_t
128
- memory_read_skip(struct archive *a, void *client_data, size_t skip)
129
- #else
130
- static off_t
131
- memory_read_skip(struct archive *a, void *client_data, off_t skip)
132
- #endif
128
+ static int64_t
129
+ memory_read_skip(struct archive *a, void *client_data, int64_t skip)
133
130
  {
134
131
  struct read_memory_data *mine = (struct read_memory_data *)client_data;
135
132
 
136
133
  (void)a; /* UNUSED */
137
- if ((off_t)skip > (off_t)(mine->end - mine->buffer))
138
- skip = mine->end - mine->buffer;
134
+ if ((int64_t)skip > (int64_t)(mine->end - mine->p))
135
+ skip = mine->end - mine->p;
139
136
  /* Round down to block size. */
140
137
  skip /= mine->read_size;
141
138
  skip *= mine->read_size;
142
- mine->buffer += skip;
139
+ mine->p += skip;
143
140
  return (skip);
144
141
  }
145
142
 
143
+ /*
144
+ * Seeking.
145
+ */
146
+ static int64_t
147
+ memory_read_seek(struct archive *a, void *client_data, int64_t offset, int whence)
148
+ {
149
+ struct read_memory_data *mine = (struct read_memory_data *)client_data;
150
+
151
+ (void)a; /* UNUSED */
152
+ switch (whence) {
153
+ case SEEK_SET:
154
+ mine->p = mine->start + offset;
155
+ break;
156
+ case SEEK_CUR:
157
+ mine->p += offset;
158
+ break;
159
+ case SEEK_END:
160
+ mine->p = mine->end + offset;
161
+ break;
162
+ default:
163
+ return ARCHIVE_FATAL;
164
+ }
165
+ if (mine->p < mine->start) {
166
+ mine->p = mine->start;
167
+ return ARCHIVE_FAILED;
168
+ }
169
+ if (mine->p > mine->end) {
170
+ mine->p = mine->end;
171
+ return ARCHIVE_FAILED;
172
+ }
173
+ return (mine->p - mine->start);
174
+ }
175
+
146
176
  /*
147
177
  * Close is just cleaning up our one small bit of data.
148
178
  */
@@ -25,12 +25,14 @@
25
25
  * $FreeBSD: head/lib/libarchive/archive_read_private.h 201088 2009-12-28 02:18:55Z kientzle $
26
26
  */
27
27
 
28
+ #ifndef ARCHIVE_READ_PRIVATE_H_INCLUDED
29
+ #define ARCHIVE_READ_PRIVATE_H_INCLUDED
30
+
28
31
  #ifndef __LIBARCHIVE_BUILD
32
+ #ifndef __LIBARCHIVE_TEST
29
33
  #error This header is only to be used internally to libarchive.
30
34
  #endif
31
-
32
- #ifndef ARCHIVE_READ_PRIVATE_H_INCLUDED
33
- #define ARCHIVE_READ_PRIVATE_H_INCLUDED
35
+ #endif
34
36
 
35
37
  #include "archive.h"
36
38
  #include "archive_string.h"
@@ -40,29 +42,46 @@ struct archive_read;
40
42
  struct archive_read_filter_bidder;
41
43
  struct archive_read_filter;
42
44
 
45
+ struct archive_read_filter_bidder_vtable {
46
+ /* Taste the upstream filter to see if we handle this. */
47
+ int (*bid)(struct archive_read_filter_bidder *,
48
+ struct archive_read_filter *);
49
+ /* Initialize a newly-created filter. */
50
+ int (*init)(struct archive_read_filter *);
51
+ /* Release the bidder's configuration data. */
52
+ void (*free)(struct archive_read_filter_bidder *);
53
+ };
54
+
43
55
  /*
44
56
  * How bidding works for filters:
45
- * * The bid manager reads the first block from the current source.
46
- * * It shows that block to each registered bidder.
57
+ * * The bid manager initializes the client-provided reader as the
58
+ * first filter.
59
+ * * It invokes the bidder for each registered filter with the
60
+ * current head filter.
61
+ * * The bidders can use archive_read_filter_ahead() to peek ahead
62
+ * at the incoming data to compose their bids.
47
63
  * * The bid manager creates a new filter structure for the winning
48
64
  * bidder and gives the winning bidder a chance to initialize it.
49
- * * The new filter becomes the top filter in the archive_read structure
50
- * and we repeat the process.
51
- * This ends only when no bidder provides a non-zero bid.
65
+ * * The new filter becomes the new top filter and we repeat the
66
+ * process.
67
+ * This ends only when no bidder provides a non-zero bid. Then
68
+ * we perform a similar dance with the registered format handlers.
52
69
  */
53
70
  struct archive_read_filter_bidder {
54
71
  /* Configuration data for the bidder. */
55
72
  void *data;
56
- /* Taste the upstream filter to see if we handle this. */
57
- int (*bid)(struct archive_read_filter_bidder *,
58
- struct archive_read_filter *);
59
- /* Initialize a newly-created filter. */
60
- int (*init)(struct archive_read_filter *);
61
- /* Set an option for the filter bidder. */
62
- int (*options)(struct archive_read_filter_bidder *,
63
- const char *key, const char *value);
64
- /* Release the bidder's configuration data. */
65
- int (*free)(struct archive_read_filter_bidder *);
73
+ /* Name of the filter */
74
+ const char *name;
75
+ const struct archive_read_filter_bidder_vtable *vtable;
76
+ };
77
+
78
+ struct archive_read_filter_vtable {
79
+ /* Return next block. */
80
+ ssize_t (*read)(struct archive_read_filter *, const void **);
81
+ /* Close (just this filter) and free(self). */
82
+ int (*close)(struct archive_read_filter *self);
83
+ /* Read any header metadata if available. */
84
+ int (*read_header)(struct archive_read_filter *self, struct archive_entry *entry);
66
85
  };
67
86
 
68
87
  /*
@@ -71,22 +90,20 @@ struct archive_read_filter_bidder {
71
90
  * corresponding bidder above.
72
91
  */
73
92
  struct archive_read_filter {
93
+ int64_t position;
74
94
  /* Essentially all filters will need these values, so
75
95
  * just declare them here. */
76
96
  struct archive_read_filter_bidder *bidder; /* My bidder. */
77
97
  struct archive_read_filter *upstream; /* Who I read from. */
78
98
  struct archive_read *archive; /* Associated archive. */
79
- /* Return next block. */
80
- ssize_t (*read)(struct archive_read_filter *, const void **);
81
- /* Skip forward this many bytes. */
82
- int64_t (*skip)(struct archive_read_filter *self, int64_t request);
83
- /* Close (just this filter) and free(self). */
84
- int (*close)(struct archive_read_filter *self);
99
+ const struct archive_read_filter_vtable *vtable;
85
100
  /* My private data. */
86
101
  void *data;
87
102
 
88
103
  const char *name;
89
104
  int code;
105
+ int can_skip;
106
+ int can_seek;
90
107
 
91
108
  /* Used by reblocking logic. */
92
109
  char *buffer;
@@ -97,8 +114,8 @@ struct archive_read_filter {
97
114
  size_t client_total;
98
115
  const char *client_next;
99
116
  size_t client_avail;
100
- int64_t position;
101
117
  char end_of_file;
118
+ char closed;
102
119
  char fatal;
103
120
  };
104
121
 
@@ -110,10 +127,34 @@ struct archive_read_filter {
110
127
  * transformation filters. This will probably break the API/ABI and
111
128
  * so should be deferred at least until libarchive 3.0.
112
129
  */
130
+ struct archive_read_data_node {
131
+ int64_t begin_position;
132
+ int64_t total_size;
133
+ void *data;
134
+ };
113
135
  struct archive_read_client {
136
+ archive_open_callback *opener;
114
137
  archive_read_callback *reader;
115
138
  archive_skip_callback *skipper;
139
+ archive_seek_callback *seeker;
116
140
  archive_close_callback *closer;
141
+ archive_switch_callback *switcher;
142
+ unsigned int nodes;
143
+ unsigned int cursor;
144
+ int64_t position;
145
+ struct archive_read_data_node *dataset;
146
+ };
147
+ struct archive_read_passphrase {
148
+ char *passphrase;
149
+ struct archive_read_passphrase *next;
150
+ };
151
+
152
+ struct archive_read_extract {
153
+ struct archive *ad; /* archive_write_disk object */
154
+
155
+ /* Progress function invoked during extract. */
156
+ void (*extract_progress)(void *);
157
+ void *extract_progress_user_data;
117
158
  };
118
159
 
119
160
  struct archive_read {
@@ -122,29 +163,28 @@ struct archive_read {
122
163
  struct archive_entry *entry;
123
164
 
124
165
  /* Dev/ino of the archive being read/written. */
125
- dev_t skip_file_dev;
126
- ino_t skip_file_ino;
127
-
128
- /*
129
- * Used by archive_read_data() to track blocks and copy
130
- * data to client buffers, filling gaps with zero bytes.
131
- */
132
- const char *read_data_block;
133
- off_t read_data_offset;
134
- off_t read_data_output_offset;
135
- size_t read_data_remaining;
166
+ int skip_file_set;
167
+ int64_t skip_file_dev;
168
+ int64_t skip_file_ino;
136
169
 
137
- /* Callbacks to open/read/write/close client archive stream. */
170
+ /* Callbacks to open/read/write/close client archive streams. */
138
171
  struct archive_read_client client;
139
172
 
140
173
  /* Registered filter bidders. */
141
- struct archive_read_filter_bidder bidders[8];
174
+ struct archive_read_filter_bidder bidders[16];
142
175
 
143
176
  /* Last filter in chain */
144
177
  struct archive_read_filter *filter;
145
178
 
179
+ /* Whether to bypass filter bidding process */
180
+ int bypass_filter_bidding;
181
+
146
182
  /* File offset of beginning of most recently-read header. */
147
- off_t header_position;
183
+ int64_t header_position;
184
+
185
+ /* Nodes and offsets of compressed data block */
186
+ unsigned int data_start_node;
187
+ unsigned int data_end_node;
148
188
 
149
189
  /*
150
190
  * Format detection is mostly the same as compression
@@ -157,43 +197,71 @@ struct archive_read {
157
197
  struct archive_format_descriptor {
158
198
  void *data;
159
199
  const char *name;
160
- int (*bid)(struct archive_read *);
200
+ int (*bid)(struct archive_read *, int best_bid);
161
201
  int (*options)(struct archive_read *, const char *key,
162
202
  const char *value);
163
203
  int (*read_header)(struct archive_read *, struct archive_entry *);
164
- int (*read_data)(struct archive_read *, const void **, size_t *, off_t *);
204
+ int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *);
165
205
  int (*read_data_skip)(struct archive_read *);
206
+ int64_t (*seek_data)(struct archive_read *, int64_t, int);
166
207
  int (*cleanup)(struct archive_read *);
167
- } formats[9];
208
+ int (*format_capabilties)(struct archive_read *);
209
+ int (*has_encrypted_entries)(struct archive_read *);
210
+ } formats[16];
168
211
  struct archive_format_descriptor *format; /* Active format. */
169
212
 
170
213
  /*
171
214
  * Various information needed by archive_extract.
172
215
  */
173
- struct extract *extract;
216
+ struct archive_read_extract *extract;
174
217
  int (*cleanup_archive_extract)(struct archive_read *);
218
+
219
+ /*
220
+ * Decryption passphrase.
221
+ */
222
+ struct {
223
+ struct archive_read_passphrase *first;
224
+ struct archive_read_passphrase **last;
225
+ int candidate;
226
+ archive_passphrase_callback *callback;
227
+ void *client_data;
228
+ } passphrases;
175
229
  };
176
230
 
177
231
  int __archive_read_register_format(struct archive_read *a,
178
- void *format_data,
179
- const char *name,
180
- int (*bid)(struct archive_read *),
181
- int (*options)(struct archive_read *, const char *, const char *),
182
- int (*read_header)(struct archive_read *, struct archive_entry *),
183
- int (*read_data)(struct archive_read *, const void **, size_t *, off_t *),
184
- int (*read_data_skip)(struct archive_read *),
185
- int (*cleanup)(struct archive_read *));
186
-
187
- struct archive_read_filter_bidder
188
- *__archive_read_get_bidder(struct archive_read *a);
232
+ void *format_data,
233
+ const char *name,
234
+ int (*bid)(struct archive_read *, int),
235
+ int (*options)(struct archive_read *, const char *, const char *),
236
+ int (*read_header)(struct archive_read *, struct archive_entry *),
237
+ int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *),
238
+ int (*read_data_skip)(struct archive_read *),
239
+ int64_t (*seek_data)(struct archive_read *, int64_t, int),
240
+ int (*cleanup)(struct archive_read *),
241
+ int (*format_capabilities)(struct archive_read *),
242
+ int (*has_encrypted_entries)(struct archive_read *));
243
+
244
+ int __archive_read_register_bidder(struct archive_read *a,
245
+ void *bidder_data,
246
+ const char *name,
247
+ const struct archive_read_filter_bidder_vtable *vtable);
189
248
 
190
249
  const void *__archive_read_ahead(struct archive_read *, size_t, ssize_t *);
191
250
  const void *__archive_read_filter_ahead(struct archive_read_filter *,
192
251
  size_t, ssize_t *);
193
- ssize_t __archive_read_consume(struct archive_read *, size_t);
194
- ssize_t __archive_read_filter_consume(struct archive_read_filter *, size_t);
195
- int64_t __archive_read_skip(struct archive_read *, int64_t);
196
- int64_t __archive_read_skip_lenient(struct archive_read *, int64_t);
197
- int64_t __archive_read_filter_skip(struct archive_read_filter *, int64_t);
252
+ int64_t __archive_read_seek(struct archive_read*, int64_t, int);
253
+ int64_t __archive_read_filter_seek(struct archive_read_filter *, int64_t, int);
254
+ int64_t __archive_read_consume(struct archive_read *, int64_t);
255
+ int64_t __archive_read_filter_consume(struct archive_read_filter *, int64_t);
256
+ int __archive_read_header(struct archive_read *, struct archive_entry *);
198
257
  int __archive_read_program(struct archive_read_filter *, const char *);
258
+ void __archive_read_free_filters(struct archive_read *);
259
+ struct archive_read_extract *__archive_read_get_extract(struct archive_read *);
260
+
261
+
262
+ /*
263
+ * Get a decryption passphrase.
264
+ */
265
+ void __archive_read_reset_passphrase(struct archive_read *a);
266
+ const char * __archive_read_next_passphrase(struct archive_read *a);
199
267
  #endif
@@ -0,0 +1,117 @@
1
+ /*-
2
+ * Copyright (c) 2003-2012 Tim Kientzle
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ * 1. Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * 2. Redistributions in binary form must reproduce the above copyright
11
+ * notice, this list of conditions and the following disclaimer in the
12
+ * documentation and/or other materials provided with the distribution.
13
+ *
14
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ */
25
+
26
+ #include "archive_platform.h"
27
+ __FBSDID("$FreeBSD$");
28
+
29
+ #ifdef HAVE_ERRNO_H
30
+ #include <errno.h>
31
+ #endif
32
+
33
+ #include "archive.h"
34
+ #include "archive_private.h"
35
+ #include "archive_read_private.h"
36
+
37
+ int
38
+ archive_read_set_format(struct archive *_a, int code)
39
+ {
40
+ int r1, r2, slots, i;
41
+ char str[10];
42
+ struct archive_read *a = (struct archive_read *)_a;
43
+
44
+ if ((r1 = archive_read_support_format_by_code(_a, code)) < (ARCHIVE_OK))
45
+ return r1;
46
+
47
+ r1 = r2 = (ARCHIVE_OK);
48
+ if (a->format)
49
+ r2 = (ARCHIVE_WARN);
50
+ switch (code & ARCHIVE_FORMAT_BASE_MASK)
51
+ {
52
+ case ARCHIVE_FORMAT_7ZIP:
53
+ strcpy(str, "7zip");
54
+ break;
55
+ case ARCHIVE_FORMAT_AR:
56
+ strcpy(str, "ar");
57
+ break;
58
+ case ARCHIVE_FORMAT_CAB:
59
+ strcpy(str, "cab");
60
+ break;
61
+ case ARCHIVE_FORMAT_CPIO:
62
+ strcpy(str, "cpio");
63
+ break;
64
+ case ARCHIVE_FORMAT_EMPTY:
65
+ strcpy(str, "empty");
66
+ break;
67
+ case ARCHIVE_FORMAT_ISO9660:
68
+ strcpy(str, "iso9660");
69
+ break;
70
+ case ARCHIVE_FORMAT_LHA:
71
+ strcpy(str, "lha");
72
+ break;
73
+ case ARCHIVE_FORMAT_MTREE:
74
+ strcpy(str, "mtree");
75
+ break;
76
+ case ARCHIVE_FORMAT_RAR:
77
+ strcpy(str, "rar");
78
+ break;
79
+ case ARCHIVE_FORMAT_RAR_V5:
80
+ strcpy(str, "rar5");
81
+ break;
82
+ case ARCHIVE_FORMAT_RAW:
83
+ strcpy(str, "raw");
84
+ break;
85
+ case ARCHIVE_FORMAT_TAR:
86
+ strcpy(str, "tar");
87
+ break;
88
+ case ARCHIVE_FORMAT_WARC:
89
+ strcpy(str, "warc");
90
+ break;
91
+ case ARCHIVE_FORMAT_XAR:
92
+ strcpy(str, "xar");
93
+ break;
94
+ case ARCHIVE_FORMAT_ZIP:
95
+ strcpy(str, "zip");
96
+ break;
97
+ default:
98
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
99
+ "Invalid format code specified");
100
+ return (ARCHIVE_FATAL);
101
+ }
102
+
103
+ slots = sizeof(a->formats) / sizeof(a->formats[0]);
104
+ a->format = &(a->formats[0]);
105
+ for (i = 0; i < slots; i++, a->format++) {
106
+ if (!a->format->name || !strcmp(a->format->name, str))
107
+ break;
108
+ }
109
+ if (!a->format->name || strcmp(a->format->name, str))
110
+ {
111
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
112
+ "Internal error: Unable to set format");
113
+ r1 = (ARCHIVE_FATAL);
114
+ }
115
+
116
+ return (r1 < r2) ? r1 : r2;
117
+ }
@@ -0,0 +1,133 @@
1
+ /*-
2
+ * Copyright (c) 2011 Tim Kientzle
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ * 1. Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * 2. Redistributions in binary form must reproduce the above copyright
11
+ * notice, this list of conditions and the following disclaimer in the
12
+ * documentation and/or other materials provided with the distribution.
13
+ *
14
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ */
25
+
26
+ #include "archive_platform.h"
27
+ __FBSDID("$FreeBSD$");
28
+
29
+ #include "archive_read_private.h"
30
+ #include "archive_options_private.h"
31
+
32
+ static int archive_set_format_option(struct archive *a,
33
+ const char *m, const char *o, const char *v);
34
+ static int archive_set_filter_option(struct archive *a,
35
+ const char *m, const char *o, const char *v);
36
+ static int archive_set_option(struct archive *a,
37
+ const char *m, const char *o, const char *v);
38
+
39
+ int
40
+ archive_read_set_format_option(struct archive *a, const char *m, const char *o,
41
+ const char *v)
42
+ {
43
+ return _archive_set_option(a, m, o, v,
44
+ ARCHIVE_READ_MAGIC, "archive_read_set_format_option",
45
+ archive_set_format_option);
46
+ }
47
+
48
+ int
49
+ archive_read_set_filter_option(struct archive *a, const char *m, const char *o,
50
+ const char *v)
51
+ {
52
+ return _archive_set_option(a, m, o, v,
53
+ ARCHIVE_READ_MAGIC, "archive_read_set_filter_option",
54
+ archive_set_filter_option);
55
+ }
56
+
57
+ int
58
+ archive_read_set_option(struct archive *a, const char *m, const char *o,
59
+ const char *v)
60
+ {
61
+ return _archive_set_option(a, m, o, v,
62
+ ARCHIVE_READ_MAGIC, "archive_read_set_option",
63
+ archive_set_option);
64
+ }
65
+
66
+ int
67
+ archive_read_set_options(struct archive *a, const char *options)
68
+ {
69
+ return _archive_set_options(a, options,
70
+ ARCHIVE_READ_MAGIC, "archive_read_set_options",
71
+ archive_set_option);
72
+ }
73
+
74
+ static int
75
+ archive_set_format_option(struct archive *_a, const char *m, const char *o,
76
+ const char *v)
77
+ {
78
+ struct archive_read *a = (struct archive_read *)_a;
79
+ size_t i;
80
+ int r, rv = ARCHIVE_WARN, matched_modules = 0;
81
+
82
+ for (i = 0; i < sizeof(a->formats)/sizeof(a->formats[0]); i++) {
83
+ struct archive_format_descriptor *format = &a->formats[i];
84
+
85
+ if (format->options == NULL || format->name == NULL)
86
+ /* This format does not support option. */
87
+ continue;
88
+ if (m != NULL) {
89
+ if (strcmp(format->name, m) != 0)
90
+ continue;
91
+ ++matched_modules;
92
+ }
93
+
94
+ a->format = format;
95
+ r = format->options(a, o, v);
96
+ a->format = NULL;
97
+
98
+ if (r == ARCHIVE_FATAL)
99
+ return (ARCHIVE_FATAL);
100
+
101
+ if (r == ARCHIVE_OK)
102
+ rv = ARCHIVE_OK;
103
+ }
104
+ /* If the format name didn't match, return a special code for
105
+ * _archive_set_option[s]. */
106
+ if (m != NULL && matched_modules == 0)
107
+ return ARCHIVE_WARN - 1;
108
+ return (rv);
109
+ }
110
+
111
+ static int
112
+ archive_set_filter_option(struct archive *_a, const char *m, const char *o,
113
+ const char *v)
114
+ {
115
+ (void)_a; /* UNUSED */
116
+ (void)o; /* UNUSED */
117
+ (void)v; /* UNUSED */
118
+
119
+ /* If the filter name didn't match, return a special code for
120
+ * _archive_set_option[s]. */
121
+ if (m != NULL)
122
+ return ARCHIVE_WARN - 1;
123
+ return ARCHIVE_WARN;
124
+ }
125
+
126
+ static int
127
+ archive_set_option(struct archive *a, const char *m, const char *o,
128
+ const char *v)
129
+ {
130
+ return _archive_set_either_option(a, m, o, v,
131
+ archive_set_format_option,
132
+ archive_set_filter_option);
133
+ }