libarchive-static 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,650 @@
1
+ /* gzread.c -- zlib functions for reading gzip files
2
+ * Copyright (C) 2004-2017 Mark Adler
3
+ * For conditions of distribution and use, see copyright notice in zlib.h
4
+ */
5
+
6
+ #include "gzguts.h"
7
+
8
+ /* Local functions */
9
+ local int gz_load OF((gz_statep, unsigned char *, unsigned, unsigned *));
10
+ local int gz_avail OF((gz_statep));
11
+ local int gz_look OF((gz_statep));
12
+ local int gz_decomp OF((gz_statep));
13
+ local int gz_fetch OF((gz_statep));
14
+ local int gz_skip OF((gz_statep, z_off64_t));
15
+ local z_size_t gz_read OF((gz_statep, voidp, z_size_t));
16
+
17
+ /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
18
+ state->fd, and update state->eof, state->err, and state->msg as appropriate.
19
+ This function needs to loop on read(), since read() is not guaranteed to
20
+ read the number of bytes requested, depending on the type of descriptor. */
21
+ local int gz_load(state, buf, len, have)
22
+ gz_statep state;
23
+ unsigned char *buf;
24
+ unsigned len;
25
+ unsigned *have;
26
+ {
27
+ int ret;
28
+ unsigned get, max = ((unsigned)-1 >> 2) + 1;
29
+
30
+ *have = 0;
31
+ do {
32
+ get = len - *have;
33
+ if (get > max)
34
+ get = max;
35
+ ret = read(state->fd, buf + *have, get);
36
+ if (ret <= 0)
37
+ break;
38
+ *have += (unsigned)ret;
39
+ } while (*have < len);
40
+ if (ret < 0) {
41
+ gz_error(state, Z_ERRNO, zstrerror());
42
+ return -1;
43
+ }
44
+ if (ret == 0)
45
+ state->eof = 1;
46
+ return 0;
47
+ }
48
+
49
+ /* Load up input buffer and set eof flag if last data loaded -- return -1 on
50
+ error, 0 otherwise. Note that the eof flag is set when the end of the input
51
+ file is reached, even though there may be unused data in the buffer. Once
52
+ that data has been used, no more attempts will be made to read the file.
53
+ If strm->avail_in != 0, then the current data is moved to the beginning of
54
+ the input buffer, and then the remainder of the buffer is loaded with the
55
+ available data from the input file. */
56
+ local int gz_avail(state)
57
+ gz_statep state;
58
+ {
59
+ unsigned got;
60
+ z_streamp strm = &(state->strm);
61
+
62
+ if (state->err != Z_OK && state->err != Z_BUF_ERROR)
63
+ return -1;
64
+ if (state->eof == 0) {
65
+ if (strm->avail_in) { /* copy what's there to the start */
66
+ unsigned char *p = state->in;
67
+ unsigned const char *q = strm->next_in;
68
+ unsigned n = strm->avail_in;
69
+ do {
70
+ *p++ = *q++;
71
+ } while (--n);
72
+ }
73
+ if (gz_load(state, state->in + strm->avail_in,
74
+ state->size - strm->avail_in, &got) == -1)
75
+ return -1;
76
+ strm->avail_in += got;
77
+ strm->next_in = state->in;
78
+ }
79
+ return 0;
80
+ }
81
+
82
+ /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
83
+ If this is the first time in, allocate required memory. state->how will be
84
+ left unchanged if there is no more input data available, will be set to COPY
85
+ if there is no gzip header and direct copying will be performed, or it will
86
+ be set to GZIP for decompression. If direct copying, then leftover input
87
+ data from the input buffer will be copied to the output buffer. In that
88
+ case, all further file reads will be directly to either the output buffer or
89
+ a user buffer. If decompressing, the inflate state will be initialized.
90
+ gz_look() will return 0 on success or -1 on failure. */
91
+ local int gz_look(state)
92
+ gz_statep state;
93
+ {
94
+ z_streamp strm = &(state->strm);
95
+
96
+ /* allocate read buffers and inflate memory */
97
+ if (state->size == 0) {
98
+ /* allocate buffers */
99
+ state->in = (unsigned char *)malloc(state->want);
100
+ state->out = (unsigned char *)malloc(state->want << 1);
101
+ if (state->in == NULL || state->out == NULL) {
102
+ free(state->out);
103
+ free(state->in);
104
+ gz_error(state, Z_MEM_ERROR, "out of memory");
105
+ return -1;
106
+ }
107
+ state->size = state->want;
108
+
109
+ /* allocate inflate memory */
110
+ state->strm.zalloc = Z_NULL;
111
+ state->strm.zfree = Z_NULL;
112
+ state->strm.opaque = Z_NULL;
113
+ state->strm.avail_in = 0;
114
+ state->strm.next_in = Z_NULL;
115
+ if (inflateInit2(&(state->strm), 15 + 16) != Z_OK) { /* gunzip */
116
+ free(state->out);
117
+ free(state->in);
118
+ state->size = 0;
119
+ gz_error(state, Z_MEM_ERROR, "out of memory");
120
+ return -1;
121
+ }
122
+ }
123
+
124
+ /* get at least the magic bytes in the input buffer */
125
+ if (strm->avail_in < 2) {
126
+ if (gz_avail(state) == -1)
127
+ return -1;
128
+ if (strm->avail_in == 0)
129
+ return 0;
130
+ }
131
+
132
+ /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
133
+ a logical dilemma here when considering the case of a partially written
134
+ gzip file, to wit, if a single 31 byte is written, then we cannot tell
135
+ whether this is a single-byte file, or just a partially written gzip
136
+ file -- for here we assume that if a gzip file is being written, then
137
+ the header will be written in a single operation, so that reading a
138
+ single byte is sufficient indication that it is not a gzip file) */
139
+ if (strm->avail_in > 1 &&
140
+ strm->next_in[0] == 31 && strm->next_in[1] == 139) {
141
+ inflateReset(strm);
142
+ state->how = GZIP;
143
+ state->direct = 0;
144
+ return 0;
145
+ }
146
+
147
+ /* no gzip header -- if we were decoding gzip before, then this is trailing
148
+ garbage. Ignore the trailing garbage and finish. */
149
+ if (state->direct == 0) {
150
+ strm->avail_in = 0;
151
+ state->eof = 1;
152
+ state->x.have = 0;
153
+ return 0;
154
+ }
155
+
156
+ /* doing raw i/o, copy any leftover input to output -- this assumes that
157
+ the output buffer is larger than the input buffer, which also assures
158
+ space for gzungetc() */
159
+ state->x.next = state->out;
160
+ memcpy(state->x.next, strm->next_in, strm->avail_in);
161
+ state->x.have = strm->avail_in;
162
+ strm->avail_in = 0;
163
+ state->how = COPY;
164
+ state->direct = 1;
165
+ return 0;
166
+ }
167
+
168
+ /* Decompress from input to the provided next_out and avail_out in the state.
169
+ On return, state->x.have and state->x.next point to the just decompressed
170
+ data. If the gzip stream completes, state->how is reset to LOOK to look for
171
+ the next gzip stream or raw data, once state->x.have is depleted. Returns 0
172
+ on success, -1 on failure. */
173
+ local int gz_decomp(state)
174
+ gz_statep state;
175
+ {
176
+ int ret = Z_OK;
177
+ unsigned had;
178
+ z_streamp strm = &(state->strm);
179
+
180
+ /* fill output buffer up to end of deflate stream */
181
+ had = strm->avail_out;
182
+ do {
183
+ /* get more input for inflate() */
184
+ if (strm->avail_in == 0 && gz_avail(state) == -1)
185
+ return -1;
186
+ if (strm->avail_in == 0) {
187
+ gz_error(state, Z_BUF_ERROR, "unexpected end of file");
188
+ break;
189
+ }
190
+
191
+ /* decompress and handle errors */
192
+ ret = inflate(strm, Z_NO_FLUSH);
193
+ if (ret == Z_STREAM_ERROR || ret == Z_NEED_DICT) {
194
+ gz_error(state, Z_STREAM_ERROR,
195
+ "internal error: inflate stream corrupt");
196
+ return -1;
197
+ }
198
+ if (ret == Z_MEM_ERROR) {
199
+ gz_error(state, Z_MEM_ERROR, "out of memory");
200
+ return -1;
201
+ }
202
+ if (ret == Z_DATA_ERROR) { /* deflate stream invalid */
203
+ gz_error(state, Z_DATA_ERROR,
204
+ strm->msg == NULL ? "compressed data error" : strm->msg);
205
+ return -1;
206
+ }
207
+ } while (strm->avail_out && ret != Z_STREAM_END);
208
+
209
+ /* update available output */
210
+ state->x.have = had - strm->avail_out;
211
+ state->x.next = strm->next_out - state->x.have;
212
+
213
+ /* if the gzip stream completed successfully, look for another */
214
+ if (ret == Z_STREAM_END)
215
+ state->how = LOOK;
216
+
217
+ /* good decompression */
218
+ return 0;
219
+ }
220
+
221
+ /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
222
+ Data is either copied from the input file or decompressed from the input
223
+ file depending on state->how. If state->how is LOOK, then a gzip header is
224
+ looked for to determine whether to copy or decompress. Returns -1 on error,
225
+ otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
226
+ end of the input file has been reached and all data has been processed. */
227
+ local int gz_fetch(state)
228
+ gz_statep state;
229
+ {
230
+ z_streamp strm = &(state->strm);
231
+
232
+ do {
233
+ switch(state->how) {
234
+ case LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
235
+ if (gz_look(state) == -1)
236
+ return -1;
237
+ if (state->how == LOOK)
238
+ return 0;
239
+ break;
240
+ case COPY: /* -> COPY */
241
+ if (gz_load(state, state->out, state->size << 1, &(state->x.have))
242
+ == -1)
243
+ return -1;
244
+ state->x.next = state->out;
245
+ return 0;
246
+ case GZIP: /* -> GZIP or LOOK (if end of gzip stream) */
247
+ strm->avail_out = state->size << 1;
248
+ strm->next_out = state->out;
249
+ if (gz_decomp(state) == -1)
250
+ return -1;
251
+ }
252
+ } while (state->x.have == 0 && (!state->eof || strm->avail_in));
253
+ return 0;
254
+ }
255
+
256
+ /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
257
+ local int gz_skip(state, len)
258
+ gz_statep state;
259
+ z_off64_t len;
260
+ {
261
+ unsigned n;
262
+
263
+ /* skip over len bytes or reach end-of-file, whichever comes first */
264
+ while (len)
265
+ /* skip over whatever is in output buffer */
266
+ if (state->x.have) {
267
+ n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > len ?
268
+ (unsigned)len : state->x.have;
269
+ state->x.have -= n;
270
+ state->x.next += n;
271
+ state->x.pos += n;
272
+ len -= n;
273
+ }
274
+
275
+ /* output buffer empty -- return if we're at the end of the input */
276
+ else if (state->eof && state->strm.avail_in == 0)
277
+ break;
278
+
279
+ /* need more data to skip -- load up output buffer */
280
+ else {
281
+ /* get more output, looking for header if required */
282
+ if (gz_fetch(state) == -1)
283
+ return -1;
284
+ }
285
+ return 0;
286
+ }
287
+
288
+ /* Read len bytes into buf from file, or less than len up to the end of the
289
+ input. Return the number of bytes read. If zero is returned, either the
290
+ end of file was reached, or there was an error. state->err must be
291
+ consulted in that case to determine which. */
292
+ local z_size_t gz_read(state, buf, len)
293
+ gz_statep state;
294
+ voidp buf;
295
+ z_size_t len;
296
+ {
297
+ z_size_t got;
298
+ unsigned n;
299
+
300
+ /* if len is zero, avoid unnecessary operations */
301
+ if (len == 0)
302
+ return 0;
303
+
304
+ /* process a skip request */
305
+ if (state->seek) {
306
+ state->seek = 0;
307
+ if (gz_skip(state, state->skip) == -1)
308
+ return 0;
309
+ }
310
+
311
+ /* get len bytes to buf, or less than len if at the end */
312
+ got = 0;
313
+ do {
314
+ /* set n to the maximum amount of len that fits in an unsigned int */
315
+ n = (unsigned)-1;
316
+ if (n > len)
317
+ n = (unsigned)len;
318
+
319
+ /* first just try copying data from the output buffer */
320
+ if (state->x.have) {
321
+ if (state->x.have < n)
322
+ n = state->x.have;
323
+ memcpy(buf, state->x.next, n);
324
+ state->x.next += n;
325
+ state->x.have -= n;
326
+ }
327
+
328
+ /* output buffer empty -- return if we're at the end of the input */
329
+ else if (state->eof && state->strm.avail_in == 0) {
330
+ state->past = 1; /* tried to read past end */
331
+ break;
332
+ }
333
+
334
+ /* need output data -- for small len or new stream load up our output
335
+ buffer */
336
+ else if (state->how == LOOK || n < (state->size << 1)) {
337
+ /* get more output, looking for header if required */
338
+ if (gz_fetch(state) == -1)
339
+ return 0;
340
+ continue; /* no progress yet -- go back to copy above */
341
+ /* the copy above assures that we will leave with space in the
342
+ output buffer, allowing at least one gzungetc() to succeed */
343
+ }
344
+
345
+ /* large len -- read directly into user buffer */
346
+ else if (state->how == COPY) { /* read directly */
347
+ if (gz_load(state, (unsigned char *)buf, n, &n) == -1)
348
+ return 0;
349
+ }
350
+
351
+ /* large len -- decompress directly into user buffer */
352
+ else { /* state->how == GZIP */
353
+ state->strm.avail_out = n;
354
+ state->strm.next_out = (unsigned char *)buf;
355
+ if (gz_decomp(state) == -1)
356
+ return 0;
357
+ n = state->x.have;
358
+ state->x.have = 0;
359
+ }
360
+
361
+ /* update progress */
362
+ len -= n;
363
+ buf = (char *)buf + n;
364
+ got += n;
365
+ state->x.pos += n;
366
+ } while (len);
367
+
368
+ /* return number of bytes read into user buffer */
369
+ return got;
370
+ }
371
+
372
+ /* -- see zlib.h -- */
373
+ int ZEXPORT gzread(file, buf, len)
374
+ gzFile file;
375
+ voidp buf;
376
+ unsigned len;
377
+ {
378
+ gz_statep state;
379
+
380
+ /* get internal structure */
381
+ if (file == NULL)
382
+ return -1;
383
+ state = (gz_statep)file;
384
+
385
+ /* check that we're reading and that there's no (serious) error */
386
+ if (state->mode != GZ_READ ||
387
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
388
+ return -1;
389
+
390
+ /* since an int is returned, make sure len fits in one, otherwise return
391
+ with an error (this avoids a flaw in the interface) */
392
+ if ((int)len < 0) {
393
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in an int");
394
+ return -1;
395
+ }
396
+
397
+ /* read len or fewer bytes to buf */
398
+ len = (unsigned)gz_read(state, buf, len);
399
+
400
+ /* check for an error */
401
+ if (len == 0 && state->err != Z_OK && state->err != Z_BUF_ERROR)
402
+ return -1;
403
+
404
+ /* return the number of bytes read (this is assured to fit in an int) */
405
+ return (int)len;
406
+ }
407
+
408
+ /* -- see zlib.h -- */
409
+ z_size_t ZEXPORT gzfread(buf, size, nitems, file)
410
+ voidp buf;
411
+ z_size_t size;
412
+ z_size_t nitems;
413
+ gzFile file;
414
+ {
415
+ z_size_t len;
416
+ gz_statep state;
417
+
418
+ /* get internal structure */
419
+ if (file == NULL)
420
+ return 0;
421
+ state = (gz_statep)file;
422
+
423
+ /* check that we're reading and that there's no (serious) error */
424
+ if (state->mode != GZ_READ ||
425
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
426
+ return 0;
427
+
428
+ /* compute bytes to read -- error on overflow */
429
+ len = nitems * size;
430
+ if (size && len / size != nitems) {
431
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
432
+ return 0;
433
+ }
434
+
435
+ /* read len or fewer bytes to buf, return the number of full items read */
436
+ return len ? gz_read(state, buf, len) / size : 0;
437
+ }
438
+
439
+ /* -- see zlib.h -- */
440
+ #ifdef Z_PREFIX_SET
441
+ # undef z_gzgetc
442
+ #else
443
+ # undef gzgetc
444
+ #endif
445
+ int ZEXPORT gzgetc(file)
446
+ gzFile file;
447
+ {
448
+ unsigned char buf[1];
449
+ gz_statep state;
450
+
451
+ /* get internal structure */
452
+ if (file == NULL)
453
+ return -1;
454
+ state = (gz_statep)file;
455
+
456
+ /* check that we're reading and that there's no (serious) error */
457
+ if (state->mode != GZ_READ ||
458
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
459
+ return -1;
460
+
461
+ /* try output buffer (no need to check for skip request) */
462
+ if (state->x.have) {
463
+ state->x.have--;
464
+ state->x.pos++;
465
+ return *(state->x.next)++;
466
+ }
467
+
468
+ /* nothing there -- try gz_read() */
469
+ return gz_read(state, buf, 1) < 1 ? -1 : buf[0];
470
+ }
471
+
472
+ int ZEXPORT gzgetc_(file)
473
+ gzFile file;
474
+ {
475
+ return gzgetc(file);
476
+ }
477
+
478
+ /* -- see zlib.h -- */
479
+ int ZEXPORT gzungetc(c, file)
480
+ int c;
481
+ gzFile file;
482
+ {
483
+ gz_statep state;
484
+
485
+ /* get internal structure */
486
+ if (file == NULL)
487
+ return -1;
488
+ state = (gz_statep)file;
489
+
490
+ /* check that we're reading and that there's no (serious) error */
491
+ if (state->mode != GZ_READ ||
492
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
493
+ return -1;
494
+
495
+ /* process a skip request */
496
+ if (state->seek) {
497
+ state->seek = 0;
498
+ if (gz_skip(state, state->skip) == -1)
499
+ return -1;
500
+ }
501
+
502
+ /* can't push EOF */
503
+ if (c < 0)
504
+ return -1;
505
+
506
+ /* if output buffer empty, put byte at end (allows more pushing) */
507
+ if (state->x.have == 0) {
508
+ state->x.have = 1;
509
+ state->x.next = state->out + (state->size << 1) - 1;
510
+ state->x.next[0] = (unsigned char)c;
511
+ state->x.pos--;
512
+ state->past = 0;
513
+ return c;
514
+ }
515
+
516
+ /* if no room, give up (must have already done a gzungetc()) */
517
+ if (state->x.have == (state->size << 1)) {
518
+ gz_error(state, Z_DATA_ERROR, "out of room to push characters");
519
+ return -1;
520
+ }
521
+
522
+ /* slide output data if needed and insert byte before existing data */
523
+ if (state->x.next == state->out) {
524
+ unsigned char *src = state->out + state->x.have;
525
+ unsigned char *dest = state->out + (state->size << 1);
526
+ while (src > state->out)
527
+ *--dest = *--src;
528
+ state->x.next = dest;
529
+ }
530
+ state->x.have++;
531
+ state->x.next--;
532
+ state->x.next[0] = (unsigned char)c;
533
+ state->x.pos--;
534
+ state->past = 0;
535
+ return c;
536
+ }
537
+
538
+ /* -- see zlib.h -- */
539
+ char * ZEXPORT gzgets(file, buf, len)
540
+ gzFile file;
541
+ char *buf;
542
+ int len;
543
+ {
544
+ unsigned left, n;
545
+ char *str;
546
+ unsigned char *eol;
547
+ gz_statep state;
548
+
549
+ /* check parameters and get internal structure */
550
+ if (file == NULL || buf == NULL || len < 1)
551
+ return NULL;
552
+ state = (gz_statep)file;
553
+
554
+ /* check that we're reading and that there's no (serious) error */
555
+ if (state->mode != GZ_READ ||
556
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
557
+ return NULL;
558
+
559
+ /* process a skip request */
560
+ if (state->seek) {
561
+ state->seek = 0;
562
+ if (gz_skip(state, state->skip) == -1)
563
+ return NULL;
564
+ }
565
+
566
+ /* copy output bytes up to new line or len - 1, whichever comes first --
567
+ append a terminating zero to the string (we don't check for a zero in
568
+ the contents, let the user worry about that) */
569
+ str = buf;
570
+ left = (unsigned)len - 1;
571
+ if (left) do {
572
+ /* assure that something is in the output buffer */
573
+ if (state->x.have == 0 && gz_fetch(state) == -1)
574
+ return NULL; /* error */
575
+ if (state->x.have == 0) { /* end of file */
576
+ state->past = 1; /* read past end */
577
+ break; /* return what we have */
578
+ }
579
+
580
+ /* look for end-of-line in current output buffer */
581
+ n = state->x.have > left ? left : state->x.have;
582
+ eol = (unsigned char *)memchr(state->x.next, '\n', n);
583
+ if (eol != NULL)
584
+ n = (unsigned)(eol - state->x.next) + 1;
585
+
586
+ /* copy through end-of-line, or remainder if not found */
587
+ memcpy(buf, state->x.next, n);
588
+ state->x.have -= n;
589
+ state->x.next += n;
590
+ state->x.pos += n;
591
+ left -= n;
592
+ buf += n;
593
+ } while (left && eol == NULL);
594
+
595
+ /* return terminated string, or if nothing, end of file */
596
+ if (buf == str)
597
+ return NULL;
598
+ buf[0] = 0;
599
+ return str;
600
+ }
601
+
602
+ /* -- see zlib.h -- */
603
+ int ZEXPORT gzdirect(file)
604
+ gzFile file;
605
+ {
606
+ gz_statep state;
607
+
608
+ /* get internal structure */
609
+ if (file == NULL)
610
+ return 0;
611
+ state = (gz_statep)file;
612
+
613
+ /* if the state is not known, but we can find out, then do so (this is
614
+ mainly for right after a gzopen() or gzdopen()) */
615
+ if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0)
616
+ (void)gz_look(state);
617
+
618
+ /* return 1 if transparent, 0 if processing a gzip stream */
619
+ return state->direct;
620
+ }
621
+
622
+ /* -- see zlib.h -- */
623
+ int ZEXPORT gzclose_r(file)
624
+ gzFile file;
625
+ {
626
+ int ret, err;
627
+ gz_statep state;
628
+
629
+ /* get internal structure */
630
+ if (file == NULL)
631
+ return Z_STREAM_ERROR;
632
+ state = (gz_statep)file;
633
+
634
+ /* check that we're reading */
635
+ if (state->mode != GZ_READ)
636
+ return Z_STREAM_ERROR;
637
+
638
+ /* free memory and close file */
639
+ if (state->size) {
640
+ inflateEnd(&(state->strm));
641
+ free(state->out);
642
+ free(state->in);
643
+ }
644
+ err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK;
645
+ gz_error(state, Z_OK, NULL);
646
+ free(state->path);
647
+ ret = close(state->fd);
648
+ free(state);
649
+ return ret ? Z_ERRNO : err;
650
+ }