libarchive-static 1.0.6 → 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 (295) hide show
  1. checksums.yaml +4 -4
  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_reader.c +6 -4
  20. data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
  21. data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
  22. data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
  23. data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
  24. data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
  25. data/ext/libarchive-3.6.2/Makefile.in +16892 -0
  26. data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
  27. data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
  28. data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
  29. data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
  30. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
  31. data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
  32. data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
  33. data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
  34. data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
  35. data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
  36. data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
  37. data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
  38. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
  39. data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
  40. data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
  41. data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
  42. data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
  43. data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
  44. data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
  45. data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
  46. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
  47. data/ext/libarchive-3.6.2/config.h.in +1504 -0
  48. data/ext/libarchive-3.6.2/configure +25558 -0
  49. data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
  50. data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
  51. data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
  52. data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
  53. data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
  54. data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
  55. data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
  56. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
  57. data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
  58. data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
  59. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
  60. data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
  61. data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
  62. data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
  63. data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
  64. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
  65. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
  66. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
  67. data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
  68. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
  69. data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
  70. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
  71. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
  72. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
  73. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
  74. data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
  75. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
  76. data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
  77. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
  78. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
  79. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
  80. data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
  81. data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
  82. data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
  83. data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
  84. data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
  85. data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
  86. data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
  87. data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
  88. data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
  89. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
  90. data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
  91. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
  92. data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
  93. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
  94. data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
  95. data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
  96. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
  97. data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
  98. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
  99. data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
  100. data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
  101. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
  102. data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
  103. data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
  104. data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
  105. data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
  106. data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
  107. data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
  108. data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
  109. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
  110. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
  111. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
  112. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
  113. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
  114. data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
  115. data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
  116. data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
  117. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
  118. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
  119. data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
  120. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
  121. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
  122. data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
  123. data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
  124. 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
  125. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
  126. 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
  127. 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
  128. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
  129. 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
  130. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
  131. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
  132. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
  139. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
  140. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
  141. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
  142. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
  143. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
  144. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
  145. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
  146. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
  147. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
  148. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
  149. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
  150. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
  151. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
  152. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
  153. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
  154. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
  155. data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
  156. data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
  157. data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
  158. data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
  159. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
  160. data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
  161. data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
  162. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
  163. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
  164. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
  165. data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
  166. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
  167. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
  168. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
  169. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
  170. 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
  171. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
  172. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
  173. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
  174. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
  175. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
  176. 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
  177. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
  178. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
  179. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
  180. data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
  181. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
  182. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
  183. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
  184. data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
  185. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
  186. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
  187. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
  188. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
  189. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
  190. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
  191. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
  192. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
  193. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
  194. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
  195. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
  196. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
  197. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
  198. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
  199. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
  200. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
  201. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
  202. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
  203. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
  204. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
  205. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
  206. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
  207. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
  208. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
  209. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
  210. data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
  211. data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
  212. data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
  213. data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
  214. data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
  215. data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
  216. data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
  217. data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
  218. data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
  219. data/ext/libarchive-static-makefile +144 -80
  220. data/ext/libarchive-static-wrapper-makefile +1 -1
  221. data/ext/zlib-1.2.13/Makefile.in +404 -0
  222. data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
  223. data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
  224. data/ext/zlib-1.2.13/configure +922 -0
  225. data/ext/zlib-1.2.13/crc32.c +1125 -0
  226. data/ext/zlib-1.2.13/crc32.h +9446 -0
  227. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
  228. data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
  229. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
  230. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
  231. data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
  232. data/ext/zlib-1.2.13/gzread.c +650 -0
  233. data/ext/zlib-1.2.13/gzwrite.c +677 -0
  234. data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
  235. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
  236. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
  237. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
  238. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
  239. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
  240. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
  241. data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
  242. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
  243. data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
  244. data/ext/zlib-1.2.13/uncompr.c +93 -0
  245. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
  246. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
  247. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
  248. data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
  249. metadata +241 -133
  250. data/ext/libarchive-0.1.1/libarchive.c +0 -1762
  251. data/ext/libarchive-2.8.4/Makefile.in +0 -7076
  252. data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
  253. data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
  254. data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
  255. data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
  256. data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
  257. data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
  258. data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
  259. data/ext/libarchive-2.8.4/config.h.in +0 -772
  260. data/ext/libarchive-2.8.4/configure +0 -17916
  261. data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
  262. data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
  263. data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
  264. data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
  265. data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
  266. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
  267. data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
  268. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
  269. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
  270. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
  271. data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
  272. data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
  273. data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
  274. data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
  275. data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
  276. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
  277. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
  278. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
  279. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
  280. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
  281. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
  282. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
  283. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
  284. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
  285. data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
  286. data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
  287. data/ext/zlib-1.2.5/Makefile.in +0 -257
  288. data/ext/zlib-1.2.5/configure +0 -596
  289. data/ext/zlib-1.2.5/crc32.c +0 -442
  290. data/ext/zlib-1.2.5/crc32.h +0 -441
  291. data/ext/zlib-1.2.5/example.c +0 -565
  292. data/ext/zlib-1.2.5/gzread.c +0 -653
  293. data/ext/zlib-1.2.5/gzwrite.c +0 -531
  294. data/ext/zlib-1.2.5/minigzip.c +0 -440
  295. 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
+ }