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.
- checksums.yaml +4 -4
- data/ext/extconf.rb +2 -9
- data/ext/libarchive-0.1.1/ext/archive_read_support_compression.c +6 -6
- data/ext/libarchive-0.1.1/ext/archive_read_support_compression.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_read_support_format.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c +1 -1
- data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.o +0 -0
- data/ext/libarchive-0.1.1/ext/archive_write_set_compression.c +5 -5
- data/ext/libarchive-0.1.1/ext/archive_write_set_compression.o +0 -0
- data/ext/libarchive-0.1.1/ext/config.h +23 -0
- data/ext/libarchive-0.1.1/ext/config.log +230 -0
- data/ext/libarchive-0.1.1/ext/config.status +671 -0
- data/ext/libarchive-0.1.1/ext/libarchive.c +1 -1
- data/ext/libarchive-0.1.1/ext/libarchive.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_archive.c +7 -7
- data/ext/libarchive-0.1.1/ext/libarchive_archive.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_entry.c +6 -0
- data/ext/libarchive-0.1.1/ext/libarchive_entry.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_reader.c +6 -4
- data/ext/libarchive-0.1.1/ext/libarchive_reader.o +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_ruby.so +0 -0
- data/ext/libarchive-0.1.1/ext/libarchive_win32.h +1 -1
- data/ext/libarchive-0.1.1/ext/libarchive_writer.c +2 -2
- data/ext/libarchive-0.1.1/ext/libarchive_writer.o +0 -0
- data/ext/libarchive-3.6.2/Makefile.in +16892 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_append_compile_flags.m4 +67 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_append_flag.m4 +71 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_check_compile_flag.m4 +74 -0
- data/ext/libarchive-3.6.2/build/autoconf/ax_require_defined.m4 +37 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/check_stdcall_func.m4 +0 -0
- data/ext/libarchive-3.6.2/build/autoconf/compile +348 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.guess +1754 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.rpath +696 -0
- data/ext/libarchive-3.6.2/build/autoconf/config.sub +1890 -0
- data/ext/libarchive-3.6.2/build/autoconf/depcomp +791 -0
- data/ext/libarchive-3.6.2/build/autoconf/iconv.m4 +271 -0
- data/ext/libarchive-3.6.2/build/autoconf/install-sh +541 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/autoconf/la_uid_t.m4 +0 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-ld.m4 +109 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-link.m4 +777 -0
- data/ext/libarchive-3.6.2/build/autoconf/lib-prefix.m4 +224 -0
- data/ext/libarchive-3.6.2/build/autoconf/ltmain.sh +11251 -0
- data/ext/libarchive-3.6.2/build/autoconf/m4_ax_compile_check_sizeof.m4 +115 -0
- data/ext/libarchive-3.6.2/build/autoconf/missing +215 -0
- data/ext/libarchive-3.6.2/build/autoconf/test-driver +153 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/build/pkgconfig/libarchive.pc.in +4 -1
- data/ext/libarchive-3.6.2/config.h.in +1504 -0
- data/ext/libarchive-3.6.2/configure +25558 -0
- data/ext/libarchive-3.6.2/libarchive/archive.h +1212 -0
- data/ext/libarchive-3.6.2/libarchive/archive_acl.c +2097 -0
- data/ext/libarchive-3.6.2/libarchive/archive_acl_private.h +83 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2.h +197 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2_impl.h +161 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2s_ref.c +369 -0
- data/ext/libarchive-3.6.2/libarchive/archive_blake2sp_ref.c +361 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_check_magic.c +63 -22
- data/ext/libarchive-3.6.2/libarchive/archive_cmdline.c +227 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cmdline_private.h +47 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_crc32.h +17 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cryptor.c +534 -0
- data/ext/libarchive-3.6.2/libarchive/archive_cryptor_private.h +188 -0
- data/ext/libarchive-3.6.2/libarchive/archive_digest.c +1505 -0
- data/ext/libarchive-3.6.2/libarchive/archive_digest_private.h +416 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_darwin.c +559 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_freebsd.c +712 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_linux.c +760 -0
- data/ext/libarchive-3.6.2/libarchive/archive_disk_acl_sunos.c +824 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_endian.h +48 -15
- data/ext/libarchive-3.6.2/libarchive/archive_entry.c +2149 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry.h +305 -106
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_bhfi.c +5 -4
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_copy_stat.c +9 -3
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_link_resolver.c +104 -62
- data/ext/libarchive-3.6.2/libarchive/archive_entry_locale.h +92 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_private.h +65 -49
- data/ext/libarchive-3.6.2/libarchive/archive_entry_sparse.c +156 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_stat.c +6 -6
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_strmode.c +1 -1
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_entry_xattr.c +4 -6
- data/ext/libarchive-3.6.2/libarchive/archive_getdate.c +1165 -0
- data/ext/libarchive-3.6.2/libarchive/archive_getdate.h +39 -0
- data/ext/libarchive-3.6.2/libarchive/archive_hmac.c +334 -0
- data/ext/libarchive-3.6.2/libarchive/archive_hmac_private.h +117 -0
- data/ext/libarchive-3.6.2/libarchive/archive_match.c +1875 -0
- data/ext/libarchive-3.6.2/libarchive/archive_openssl_evp_private.h +53 -0
- data/ext/libarchive-3.6.2/libarchive/archive_openssl_hmac_private.h +54 -0
- data/ext/libarchive-3.6.2/libarchive/archive_options.c +218 -0
- data/ext/libarchive-3.6.2/libarchive/archive_options_private.h +51 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.c +337 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pack_dev.h +49 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.c +463 -0
- data/ext/libarchive-3.6.2/libarchive/archive_pathmatch.h +52 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_platform.h +77 -9
- data/ext/libarchive-3.6.2/libarchive/archive_platform_acl.h +55 -0
- data/ext/libarchive-3.6.2/libarchive/archive_platform_xattr.h +47 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd7.c +1168 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd7_private.h +119 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd8.c +1287 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd8_private.h +148 -0
- data/ext/libarchive-3.6.2/libarchive/archive_ppmd_private.h +151 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_private.h +74 -18
- data/ext/libarchive-3.6.2/libarchive/archive_random.c +272 -0
- data/ext/libarchive-3.6.2/libarchive/archive_random_private.h +36 -0
- data/ext/libarchive-3.6.2/libarchive/archive_rb.c +709 -0
- data/ext/libarchive-3.6.2/libarchive/archive_rb.h +113 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read.c +1756 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_add_passphrase.c +190 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_append_filter.c +204 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_data_into_fd.c +64 -18
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_entry_from_file.c +1086 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_posix.c +2732 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_private.h +40 -4
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_disk_set_standard_lookup.c +21 -11
- data/ext/libarchive-3.6.2/libarchive/archive_read_disk_windows.c +2479 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_extract.c +60 -0
- data/ext/{libarchive-2.8.4/libarchive/archive_read_extract.c → libarchive-3.6.2/libarchive/archive_read_extract2.c} +34 -61
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_fd.c +70 -49
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_file.c +38 -23
- data/ext/libarchive-3.6.2/libarchive/archive_read_open_filename.c +586 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_open_memory.c +58 -28
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_private.h +127 -59
- data/ext/libarchive-3.6.2/libarchive/archive_read_set_format.c +117 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_set_options.c +133 -0
- 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
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_by_code.c +83 -0
- 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
- 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
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_grzip.c +112 -0
- 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
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lrzip.c +122 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lz4.c +742 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_lzop.c +499 -0
- 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
- 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
- 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
- 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
- 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
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_filter_zstd.c +297 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_7zip.c +3900 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_all.c +89 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_ar.c +126 -72
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_by_code.c +92 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cab.c +3228 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_cpio.c +1104 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_empty.c +14 -11
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_iso9660.c +990 -541
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_lha.c +2916 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_mtree.c +2150 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar.c +3797 -0
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_rar5.c +4251 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_raw.c +38 -31
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_tar.c +1157 -629
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_warc.c +848 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_read_support_format_xar.c +439 -258
- data/ext/libarchive-3.6.2/libarchive/archive_read_support_format_zip.c +4270 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string.c +4240 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string.h +243 -0
- data/ext/libarchive-3.6.2/libarchive/archive_string_composition.h +2292 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_string_sprintf.c +44 -16
- data/ext/libarchive-3.6.2/libarchive/archive_util.c +655 -0
- data/ext/libarchive-3.6.2/libarchive/archive_version_details.c +151 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_virtual.c +85 -16
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.c +214 -541
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_windows.h +74 -106
- data/ext/libarchive-3.6.2/libarchive/archive_write.c +828 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter.c +72 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_b64encode.c +304 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_by_name.c +77 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_bzip2.c +401 -0
- 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
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_grzip.c +135 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_gzip.c +442 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lrzip.c +197 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lz4.c +700 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_lzop.c +478 -0
- 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
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_program.c +391 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_uuencode.c +295 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_xz.c +545 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_add_filter_zstd.c +418 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_disk_posix.c +4711 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_private.h +9 -2
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_disk_set_standard_lookup.c +30 -29
- data/ext/libarchive-3.6.2/libarchive/archive_write_disk_windows.c +2842 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_fd.c +15 -10
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_file.c +15 -9
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_filename.c +128 -20
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_open_memory.c +7 -18
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_private.h +72 -29
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format.c +56 -3
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_7zip.c +2322 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ar.c +54 -34
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_by_name.c +20 -2
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio.c +11 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_binary.c +610 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_newc.c +457 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_cpio_odc.c +500 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_filter_by_ext.c +142 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_gnutar.c +755 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_iso9660.c +8165 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_mtree.c +2217 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_pax.c +1049 -387
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_private.h +42 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_raw.c +125 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_shar.c +62 -47
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/archive_write_set_format_ustar.c +279 -108
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_v7tar.c +638 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_warc.c +453 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_xar.c +3259 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_format_zip.c +1704 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_options.c +130 -0
- data/ext/libarchive-3.6.2/libarchive/archive_write_set_passphrase.c +95 -0
- data/ext/libarchive-3.6.2/libarchive/archive_xxhash.h +48 -0
- data/ext/libarchive-3.6.2/libarchive/config_freebsd.h +271 -0
- data/ext/{libarchive-2.8.4 → libarchive-3.6.2}/libarchive/filter_fork.h +10 -5
- data/ext/{libarchive-2.8.4/libarchive/filter_fork.c → libarchive-3.6.2/libarchive/filter_fork_posix.c} +98 -19
- data/ext/libarchive-3.6.2/libarchive/filter_fork_windows.c +236 -0
- data/ext/libarchive-3.6.2/libarchive/xxhash.c +525 -0
- data/ext/libarchive-static-makefile +144 -80
- data/ext/libarchive-static-wrapper-makefile +1 -1
- data/ext/zlib-1.2.13/Makefile.in +404 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/adler32.c +51 -34
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/compress.c +27 -21
- data/ext/zlib-1.2.13/configure +922 -0
- data/ext/zlib-1.2.13/crc32.c +1125 -0
- data/ext/zlib-1.2.13/crc32.h +9446 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.c +842 -459
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/deflate.h +37 -33
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzclose.c +0 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzguts.h +103 -16
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/gzlib.c +155 -53
- data/ext/zlib-1.2.13/gzread.c +650 -0
- data/ext/zlib-1.2.13/gzwrite.c +677 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/infback.c +24 -12
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.c +49 -66
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffast.h +0 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inffixed.h +3 -3
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.c +209 -94
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inflate.h +9 -5
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.c +24 -50
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/inftrees.h +1 -1
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.c +135 -198
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/trees.h +0 -0
- data/ext/zlib-1.2.13/uncompr.c +93 -0
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zconf.h +182 -63
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zlib.h +617 -295
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.c +50 -41
- data/ext/{zlib-1.2.5 → zlib-1.2.13}/zutil.h +83 -82
- metadata +241 -133
- data/ext/libarchive-0.1.1/libarchive.c +0 -1762
- data/ext/libarchive-2.8.4/Makefile.in +0 -7076
- data/ext/libarchive-2.8.4/build/autoconf/compile +0 -143
- data/ext/libarchive-2.8.4/build/autoconf/config.guess +0 -1502
- data/ext/libarchive-2.8.4/build/autoconf/config.sub +0 -1708
- data/ext/libarchive-2.8.4/build/autoconf/depcomp +0 -630
- data/ext/libarchive-2.8.4/build/autoconf/install-sh +0 -291
- data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +0 -8406
- data/ext/libarchive-2.8.4/build/autoconf/missing +0 -376
- data/ext/libarchive-2.8.4/config.h.in +0 -772
- data/ext/libarchive-2.8.4/configure +0 -17916
- data/ext/libarchive-2.8.4/libarchive/archive.h +0 -741
- data/ext/libarchive-2.8.4/libarchive/archive_entry.c +0 -2202
- data/ext/libarchive-2.8.4/libarchive/archive_hash.h +0 -281
- data/ext/libarchive-2.8.4/libarchive/archive_read.c +0 -1249
- data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +0 -198
- data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +0 -570
- data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +0 -272
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +0 -777
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +0 -1304
- data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +0 -903
- data/ext/libarchive-2.8.4/libarchive/archive_string.c +0 -453
- data/ext/libarchive-2.8.4/libarchive/archive_string.h +0 -148
- data/ext/libarchive-2.8.4/libarchive/archive_util.c +0 -391
- data/ext/libarchive-2.8.4/libarchive/archive_write.c +0 -466
- data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +0 -2628
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +0 -408
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +0 -477
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +0 -257
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +0 -347
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +0 -438
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +0 -344
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +0 -295
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +0 -1050
- data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +0 -667
- data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +0 -154
- data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +0 -113
- data/ext/zlib-1.2.5/Makefile.in +0 -257
- data/ext/zlib-1.2.5/configure +0 -596
- data/ext/zlib-1.2.5/crc32.c +0 -442
- data/ext/zlib-1.2.5/crc32.h +0 -441
- data/ext/zlib-1.2.5/example.c +0 -565
- data/ext/zlib-1.2.5/gzread.c +0 -653
- data/ext/zlib-1.2.5/gzwrite.c +0 -531
- data/ext/zlib-1.2.5/minigzip.c +0 -440
- data/ext/zlib-1.2.5/uncompr.c +0 -59
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* trees.c -- output deflated data using Huffman coding
|
|
2
|
-
* Copyright (C) 1995-
|
|
2
|
+
* Copyright (C) 1995-2021 Jean-loup Gailly
|
|
3
3
|
* detect_data_type() function provided freely by Cosmin Truta, 2006
|
|
4
4
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
|
5
5
|
*/
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
#include "deflate.h"
|
|
38
38
|
|
|
39
|
-
#ifdef
|
|
39
|
+
#ifdef ZLIB_DEBUG
|
|
40
40
|
# include <ctype.h>
|
|
41
41
|
#endif
|
|
42
42
|
|
|
@@ -74,11 +74,6 @@ local const uch bl_order[BL_CODES]
|
|
|
74
74
|
* probability, to avoid transmitting the lengths for unused bit length codes.
|
|
75
75
|
*/
|
|
76
76
|
|
|
77
|
-
#define Buf_size (8 * 2*sizeof(char))
|
|
78
|
-
/* Number of bits used within bi_buf. (bi_buf might be implemented on
|
|
79
|
-
* more than 16 bits on some systems.)
|
|
80
|
-
*/
|
|
81
|
-
|
|
82
77
|
/* ===========================================================================
|
|
83
78
|
* Local data. These are initialized only once.
|
|
84
79
|
*/
|
|
@@ -127,13 +122,13 @@ struct static_tree_desc_s {
|
|
|
127
122
|
int max_length; /* max bit length for the codes */
|
|
128
123
|
};
|
|
129
124
|
|
|
130
|
-
local static_tree_desc static_l_desc =
|
|
125
|
+
local const static_tree_desc static_l_desc =
|
|
131
126
|
{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
|
|
132
127
|
|
|
133
|
-
local static_tree_desc static_d_desc =
|
|
128
|
+
local const static_tree_desc static_d_desc =
|
|
134
129
|
{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
|
|
135
130
|
|
|
136
|
-
local static_tree_desc static_bl_desc =
|
|
131
|
+
local const static_tree_desc static_bl_desc =
|
|
137
132
|
{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
|
|
138
133
|
|
|
139
134
|
/* ===========================================================================
|
|
@@ -151,24 +146,22 @@ local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
|
|
|
151
146
|
local int build_bl_tree OF((deflate_state *s));
|
|
152
147
|
local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
|
|
153
148
|
int blcodes));
|
|
154
|
-
local void compress_block OF((deflate_state *s, ct_data *ltree,
|
|
155
|
-
ct_data *dtree));
|
|
149
|
+
local void compress_block OF((deflate_state *s, const ct_data *ltree,
|
|
150
|
+
const ct_data *dtree));
|
|
156
151
|
local int detect_data_type OF((deflate_state *s));
|
|
157
|
-
local unsigned bi_reverse OF((unsigned
|
|
152
|
+
local unsigned bi_reverse OF((unsigned code, int len));
|
|
158
153
|
local void bi_windup OF((deflate_state *s));
|
|
159
154
|
local void bi_flush OF((deflate_state *s));
|
|
160
|
-
local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
|
|
161
|
-
int header));
|
|
162
155
|
|
|
163
156
|
#ifdef GEN_TREES_H
|
|
164
157
|
local void gen_trees_header OF((void));
|
|
165
158
|
#endif
|
|
166
159
|
|
|
167
|
-
#ifndef
|
|
160
|
+
#ifndef ZLIB_DEBUG
|
|
168
161
|
# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
|
|
169
162
|
/* Send a code of the given tree. c and tree must not have side effects */
|
|
170
163
|
|
|
171
|
-
#else /*
|
|
164
|
+
#else /* !ZLIB_DEBUG */
|
|
172
165
|
# define send_code(s, c, tree) \
|
|
173
166
|
{ if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
|
|
174
167
|
send_bits(s, tree[c].Code, tree[c].Len); }
|
|
@@ -187,7 +180,7 @@ local void gen_trees_header OF((void));
|
|
|
187
180
|
* Send a value on a given number of bits.
|
|
188
181
|
* IN assertion: length <= 16 and value fits in length bits.
|
|
189
182
|
*/
|
|
190
|
-
#ifdef
|
|
183
|
+
#ifdef ZLIB_DEBUG
|
|
191
184
|
local void send_bits OF((deflate_state *s, int value, int length));
|
|
192
185
|
|
|
193
186
|
local void send_bits(s, value, length)
|
|
@@ -200,7 +193,7 @@ local void send_bits(s, value, length)
|
|
|
200
193
|
s->bits_sent += (ulg)length;
|
|
201
194
|
|
|
202
195
|
/* If not enough room in bi_buf, use (valid) bits from bi_buf and
|
|
203
|
-
* (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
|
|
196
|
+
* (16 - bi_valid) bits from value, leaving (width - (16 - bi_valid))
|
|
204
197
|
* unused bits in value.
|
|
205
198
|
*/
|
|
206
199
|
if (s->bi_valid > (int)Buf_size - length) {
|
|
@@ -213,12 +206,12 @@ local void send_bits(s, value, length)
|
|
|
213
206
|
s->bi_valid += length;
|
|
214
207
|
}
|
|
215
208
|
}
|
|
216
|
-
#else /* !
|
|
209
|
+
#else /* !ZLIB_DEBUG */
|
|
217
210
|
|
|
218
211
|
#define send_bits(s, value, length) \
|
|
219
212
|
{ int len = length;\
|
|
220
213
|
if (s->bi_valid > (int)Buf_size - len) {\
|
|
221
|
-
int val = value;\
|
|
214
|
+
int val = (int)value;\
|
|
222
215
|
s->bi_buf |= (ush)val << s->bi_valid;\
|
|
223
216
|
put_short(s, s->bi_buf);\
|
|
224
217
|
s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
|
|
@@ -228,7 +221,7 @@ local void send_bits(s, value, length)
|
|
|
228
221
|
s->bi_valid += len;\
|
|
229
222
|
}\
|
|
230
223
|
}
|
|
231
|
-
#endif /*
|
|
224
|
+
#endif /* ZLIB_DEBUG */
|
|
232
225
|
|
|
233
226
|
|
|
234
227
|
/* the arguments must not have side effects */
|
|
@@ -263,7 +256,7 @@ local void tr_static_init()
|
|
|
263
256
|
length = 0;
|
|
264
257
|
for (code = 0; code < LENGTH_CODES-1; code++) {
|
|
265
258
|
base_length[code] = length;
|
|
266
|
-
for (n = 0; n < (1<<extra_lbits[code]); n++) {
|
|
259
|
+
for (n = 0; n < (1 << extra_lbits[code]); n++) {
|
|
267
260
|
_length_code[length++] = (uch)code;
|
|
268
261
|
}
|
|
269
262
|
}
|
|
@@ -272,13 +265,13 @@ local void tr_static_init()
|
|
|
272
265
|
* in two different ways: code 284 + 5 bits or code 285, so we
|
|
273
266
|
* overwrite length_code[255] to use the best encoding:
|
|
274
267
|
*/
|
|
275
|
-
_length_code[length-1] = (uch)code;
|
|
268
|
+
_length_code[length - 1] = (uch)code;
|
|
276
269
|
|
|
277
270
|
/* Initialize the mapping dist (0..32K) -> dist code (0..29) */
|
|
278
271
|
dist = 0;
|
|
279
272
|
for (code = 0 ; code < 16; code++) {
|
|
280
273
|
base_dist[code] = dist;
|
|
281
|
-
for (n = 0; n < (1<<extra_dbits[code]); n++) {
|
|
274
|
+
for (n = 0; n < (1 << extra_dbits[code]); n++) {
|
|
282
275
|
_dist_code[dist++] = (uch)code;
|
|
283
276
|
}
|
|
284
277
|
}
|
|
@@ -286,11 +279,11 @@ local void tr_static_init()
|
|
|
286
279
|
dist >>= 7; /* from now on, all distances are divided by 128 */
|
|
287
280
|
for ( ; code < D_CODES; code++) {
|
|
288
281
|
base_dist[code] = dist << 7;
|
|
289
|
-
for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
|
|
282
|
+
for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
|
|
290
283
|
_dist_code[256 + dist++] = (uch)code;
|
|
291
284
|
}
|
|
292
285
|
}
|
|
293
|
-
Assert (dist == 256, "tr_static_init: 256+dist != 512");
|
|
286
|
+
Assert (dist == 256, "tr_static_init: 256 + dist != 512");
|
|
294
287
|
|
|
295
288
|
/* Construct the codes of the static literal tree */
|
|
296
289
|
for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
|
|
@@ -319,16 +312,16 @@ local void tr_static_init()
|
|
|
319
312
|
}
|
|
320
313
|
|
|
321
314
|
/* ===========================================================================
|
|
322
|
-
*
|
|
315
|
+
* Generate the file trees.h describing the static trees.
|
|
323
316
|
*/
|
|
324
317
|
#ifdef GEN_TREES_H
|
|
325
|
-
# ifndef
|
|
318
|
+
# ifndef ZLIB_DEBUG
|
|
326
319
|
# include <stdio.h>
|
|
327
320
|
# endif
|
|
328
321
|
|
|
329
322
|
# define SEPARATOR(i, last, width) \
|
|
330
323
|
((i) == (last)? "\n};\n\n" : \
|
|
331
|
-
((i) % (width) == (width)-1 ? ",\n" : ", "))
|
|
324
|
+
((i) % (width) == (width) - 1 ? ",\n" : ", "))
|
|
332
325
|
|
|
333
326
|
void gen_trees_header()
|
|
334
327
|
{
|
|
@@ -399,8 +392,7 @@ void ZLIB_INTERNAL _tr_init(s)
|
|
|
399
392
|
|
|
400
393
|
s->bi_buf = 0;
|
|
401
394
|
s->bi_valid = 0;
|
|
402
|
-
|
|
403
|
-
#ifdef DEBUG
|
|
395
|
+
#ifdef ZLIB_DEBUG
|
|
404
396
|
s->compressed_len = 0L;
|
|
405
397
|
s->bits_sent = 0L;
|
|
406
398
|
#endif
|
|
@@ -424,7 +416,7 @@ local void init_block(s)
|
|
|
424
416
|
|
|
425
417
|
s->dyn_ltree[END_BLOCK].Freq = 1;
|
|
426
418
|
s->opt_len = s->static_len = 0L;
|
|
427
|
-
s->
|
|
419
|
+
s->sym_next = s->matches = 0;
|
|
428
420
|
}
|
|
429
421
|
|
|
430
422
|
#define SMALLEST 1
|
|
@@ -466,7 +458,7 @@ local void pqdownheap(s, tree, k)
|
|
|
466
458
|
while (j <= s->heap_len) {
|
|
467
459
|
/* Set j to the smallest of the two sons: */
|
|
468
460
|
if (j < s->heap_len &&
|
|
469
|
-
smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
|
|
461
|
+
smaller(tree, s->heap[j + 1], s->heap[j], s->depth)) {
|
|
470
462
|
j++;
|
|
471
463
|
}
|
|
472
464
|
/* Exit if v is smaller than both sons */
|
|
@@ -515,7 +507,7 @@ local void gen_bitlen(s, desc)
|
|
|
515
507
|
*/
|
|
516
508
|
tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
|
|
517
509
|
|
|
518
|
-
for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
|
|
510
|
+
for (h = s->heap_max + 1; h < HEAP_SIZE; h++) {
|
|
519
511
|
n = s->heap[h];
|
|
520
512
|
bits = tree[tree[n].Dad].Len + 1;
|
|
521
513
|
if (bits > max_length) bits = max_length, overflow++;
|
|
@@ -526,22 +518,22 @@ local void gen_bitlen(s, desc)
|
|
|
526
518
|
|
|
527
519
|
s->bl_count[bits]++;
|
|
528
520
|
xbits = 0;
|
|
529
|
-
if (n >= base) xbits = extra[n-base];
|
|
521
|
+
if (n >= base) xbits = extra[n - base];
|
|
530
522
|
f = tree[n].Freq;
|
|
531
|
-
s->opt_len += (ulg)f * (bits + xbits);
|
|
532
|
-
if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
|
|
523
|
+
s->opt_len += (ulg)f * (unsigned)(bits + xbits);
|
|
524
|
+
if (stree) s->static_len += (ulg)f * (unsigned)(stree[n].Len + xbits);
|
|
533
525
|
}
|
|
534
526
|
if (overflow == 0) return;
|
|
535
527
|
|
|
536
|
-
|
|
528
|
+
Tracev((stderr,"\nbit length overflow\n"));
|
|
537
529
|
/* This happens for example on obj2 and pic of the Calgary corpus */
|
|
538
530
|
|
|
539
531
|
/* Find the first bit length which could increase: */
|
|
540
532
|
do {
|
|
541
|
-
bits = max_length-1;
|
|
533
|
+
bits = max_length - 1;
|
|
542
534
|
while (s->bl_count[bits] == 0) bits--;
|
|
543
|
-
s->bl_count[bits]--;
|
|
544
|
-
s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
|
|
535
|
+
s->bl_count[bits]--; /* move one leaf down the tree */
|
|
536
|
+
s->bl_count[bits + 1] += 2; /* move one overflow item as its brother */
|
|
545
537
|
s->bl_count[max_length]--;
|
|
546
538
|
/* The brother of the overflow item also moves one step up,
|
|
547
539
|
* but this does not affect bl_count[max_length]
|
|
@@ -560,9 +552,8 @@ local void gen_bitlen(s, desc)
|
|
|
560
552
|
m = s->heap[--h];
|
|
561
553
|
if (m > max_code) continue;
|
|
562
554
|
if ((unsigned) tree[m].Len != (unsigned) bits) {
|
|
563
|
-
|
|
564
|
-
s->opt_len += ((
|
|
565
|
-
*(long)tree[m].Freq;
|
|
555
|
+
Tracev((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
|
|
556
|
+
s->opt_len += ((ulg)bits - tree[m].Len) * tree[m].Freq;
|
|
566
557
|
tree[m].Len = (ush)bits;
|
|
567
558
|
}
|
|
568
559
|
n--;
|
|
@@ -578,13 +569,13 @@ local void gen_bitlen(s, desc)
|
|
|
578
569
|
* OUT assertion: the field code is set for all tree elements of non
|
|
579
570
|
* zero code length.
|
|
580
571
|
*/
|
|
581
|
-
local void gen_codes
|
|
572
|
+
local void gen_codes(tree, max_code, bl_count)
|
|
582
573
|
ct_data *tree; /* the tree to decorate */
|
|
583
574
|
int max_code; /* largest code with non zero frequency */
|
|
584
575
|
ushf *bl_count; /* number of codes at each bit length */
|
|
585
576
|
{
|
|
586
577
|
ush next_code[MAX_BITS+1]; /* next code value for each bit length */
|
|
587
|
-
|
|
578
|
+
unsigned code = 0; /* running code value */
|
|
588
579
|
int bits; /* bit index */
|
|
589
580
|
int n; /* code index */
|
|
590
581
|
|
|
@@ -592,12 +583,13 @@ local void gen_codes (tree, max_code, bl_count)
|
|
|
592
583
|
* without bit reversal.
|
|
593
584
|
*/
|
|
594
585
|
for (bits = 1; bits <= MAX_BITS; bits++) {
|
|
595
|
-
|
|
586
|
+
code = (code + bl_count[bits - 1]) << 1;
|
|
587
|
+
next_code[bits] = (ush)code;
|
|
596
588
|
}
|
|
597
589
|
/* Check that the bit counts in bl_count are consistent. The last code
|
|
598
590
|
* must be all ones.
|
|
599
591
|
*/
|
|
600
|
-
Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
|
|
592
|
+
Assert (code + bl_count[MAX_BITS] - 1 == (1 << MAX_BITS) - 1,
|
|
601
593
|
"inconsistent bit counts");
|
|
602
594
|
Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
|
|
603
595
|
|
|
@@ -605,10 +597,10 @@ local void gen_codes (tree, max_code, bl_count)
|
|
|
605
597
|
int len = tree[n].Len;
|
|
606
598
|
if (len == 0) continue;
|
|
607
599
|
/* Now reverse the bits */
|
|
608
|
-
tree[n].Code = bi_reverse(next_code[len]++, len);
|
|
600
|
+
tree[n].Code = (ush)bi_reverse(next_code[len]++, len);
|
|
609
601
|
|
|
610
602
|
Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
|
|
611
|
-
|
|
603
|
+
n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len] - 1));
|
|
612
604
|
}
|
|
613
605
|
}
|
|
614
606
|
|
|
@@ -632,7 +624,7 @@ local void build_tree(s, desc)
|
|
|
632
624
|
int node; /* new node being created */
|
|
633
625
|
|
|
634
626
|
/* Construct the initial heap, with least frequent element in
|
|
635
|
-
* heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
|
|
627
|
+
* heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
|
|
636
628
|
* heap[0] is not used.
|
|
637
629
|
*/
|
|
638
630
|
s->heap_len = 0, s->heap_max = HEAP_SIZE;
|
|
@@ -660,7 +652,7 @@ local void build_tree(s, desc)
|
|
|
660
652
|
}
|
|
661
653
|
desc->max_code = max_code;
|
|
662
654
|
|
|
663
|
-
/* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
|
|
655
|
+
/* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
|
|
664
656
|
* establish sub-heaps of increasing lengths:
|
|
665
657
|
*/
|
|
666
658
|
for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
|
|
@@ -708,7 +700,7 @@ local void build_tree(s, desc)
|
|
|
708
700
|
* Scan a literal or distance tree to determine the frequencies of the codes
|
|
709
701
|
* in the bit length tree.
|
|
710
702
|
*/
|
|
711
|
-
local void scan_tree
|
|
703
|
+
local void scan_tree(s, tree, max_code)
|
|
712
704
|
deflate_state *s;
|
|
713
705
|
ct_data *tree; /* the tree to be scanned */
|
|
714
706
|
int max_code; /* and its largest code of non zero frequency */
|
|
@@ -722,10 +714,10 @@ local void scan_tree (s, tree, max_code)
|
|
|
722
714
|
int min_count = 4; /* min repeat count */
|
|
723
715
|
|
|
724
716
|
if (nextlen == 0) max_count = 138, min_count = 3;
|
|
725
|
-
tree[max_code+1].Len = (ush)0xffff; /* guard */
|
|
717
|
+
tree[max_code + 1].Len = (ush)0xffff; /* guard */
|
|
726
718
|
|
|
727
719
|
for (n = 0; n <= max_code; n++) {
|
|
728
|
-
curlen = nextlen; nextlen = tree[n+1].Len;
|
|
720
|
+
curlen = nextlen; nextlen = tree[n + 1].Len;
|
|
729
721
|
if (++count < max_count && curlen == nextlen) {
|
|
730
722
|
continue;
|
|
731
723
|
} else if (count < min_count) {
|
|
@@ -753,7 +745,7 @@ local void scan_tree (s, tree, max_code)
|
|
|
753
745
|
* Send a literal or distance tree in compressed form, using the codes in
|
|
754
746
|
* bl_tree.
|
|
755
747
|
*/
|
|
756
|
-
local void send_tree
|
|
748
|
+
local void send_tree(s, tree, max_code)
|
|
757
749
|
deflate_state *s;
|
|
758
750
|
ct_data *tree; /* the tree to be scanned */
|
|
759
751
|
int max_code; /* and its largest code of non zero frequency */
|
|
@@ -766,11 +758,11 @@ local void send_tree (s, tree, max_code)
|
|
|
766
758
|
int max_count = 7; /* max repeat count */
|
|
767
759
|
int min_count = 4; /* min repeat count */
|
|
768
760
|
|
|
769
|
-
/* tree[max_code+1].Len = -1; */ /* guard already set */
|
|
761
|
+
/* tree[max_code + 1].Len = -1; */ /* guard already set */
|
|
770
762
|
if (nextlen == 0) max_count = 138, min_count = 3;
|
|
771
763
|
|
|
772
764
|
for (n = 0; n <= max_code; n++) {
|
|
773
|
-
curlen = nextlen; nextlen = tree[n+1].Len;
|
|
765
|
+
curlen = nextlen; nextlen = tree[n + 1].Len;
|
|
774
766
|
if (++count < max_count && curlen == nextlen) {
|
|
775
767
|
continue;
|
|
776
768
|
} else if (count < min_count) {
|
|
@@ -781,13 +773,13 @@ local void send_tree (s, tree, max_code)
|
|
|
781
773
|
send_code(s, curlen, s->bl_tree); count--;
|
|
782
774
|
}
|
|
783
775
|
Assert(count >= 3 && count <= 6, " 3_6?");
|
|
784
|
-
send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
|
|
776
|
+
send_code(s, REP_3_6, s->bl_tree); send_bits(s, count - 3, 2);
|
|
785
777
|
|
|
786
778
|
} else if (count <= 10) {
|
|
787
|
-
send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
|
|
779
|
+
send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count - 3, 3);
|
|
788
780
|
|
|
789
781
|
} else {
|
|
790
|
-
send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
|
|
782
|
+
send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count - 11, 7);
|
|
791
783
|
}
|
|
792
784
|
count = 0; prevlen = curlen;
|
|
793
785
|
if (nextlen == 0) {
|
|
@@ -815,8 +807,8 @@ local int build_bl_tree(s)
|
|
|
815
807
|
|
|
816
808
|
/* Build the bit length tree: */
|
|
817
809
|
build_tree(s, (tree_desc *)(&(s->bl_desc)));
|
|
818
|
-
/* opt_len now includes the length of the tree representations, except
|
|
819
|
-
*
|
|
810
|
+
/* opt_len now includes the length of the tree representations, except the
|
|
811
|
+
* lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
|
|
820
812
|
*/
|
|
821
813
|
|
|
822
814
|
/* Determine the number of bit length codes to send. The pkzip format
|
|
@@ -827,7 +819,7 @@ local int build_bl_tree(s)
|
|
|
827
819
|
if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
|
|
828
820
|
}
|
|
829
821
|
/* Update opt_len to include the bit length tree and counts */
|
|
830
|
-
s->opt_len += 3*(max_blindex+1) + 5+5+4;
|
|
822
|
+
s->opt_len += 3*((ulg)max_blindex + 1) + 5 + 5 + 4;
|
|
831
823
|
Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
|
|
832
824
|
s->opt_len, s->static_len));
|
|
833
825
|
|
|
@@ -849,19 +841,19 @@ local void send_all_trees(s, lcodes, dcodes, blcodes)
|
|
|
849
841
|
Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
|
|
850
842
|
"too many codes");
|
|
851
843
|
Tracev((stderr, "\nbl counts: "));
|
|
852
|
-
send_bits(s, lcodes-257, 5);
|
|
853
|
-
send_bits(s, dcodes-1, 5);
|
|
854
|
-
send_bits(s, blcodes-4, 4);
|
|
844
|
+
send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
|
|
845
|
+
send_bits(s, dcodes - 1, 5);
|
|
846
|
+
send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */
|
|
855
847
|
for (rank = 0; rank < blcodes; rank++) {
|
|
856
848
|
Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
|
|
857
849
|
send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
|
|
858
850
|
}
|
|
859
851
|
Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
|
|
860
852
|
|
|
861
|
-
send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1);
|
|
853
|
+
send_tree(s, (ct_data *)s->dyn_ltree, lcodes - 1); /* literal tree */
|
|
862
854
|
Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
|
|
863
855
|
|
|
864
|
-
send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1);
|
|
856
|
+
send_tree(s, (ct_data *)s->dyn_dtree, dcodes - 1); /* distance tree */
|
|
865
857
|
Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
|
|
866
858
|
}
|
|
867
859
|
|
|
@@ -874,53 +866,48 @@ void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last)
|
|
|
874
866
|
ulg stored_len; /* length of input block */
|
|
875
867
|
int last; /* one if this is the last block for a file */
|
|
876
868
|
{
|
|
877
|
-
send_bits(s, (STORED_BLOCK<<1)+last, 3);
|
|
878
|
-
|
|
869
|
+
send_bits(s, (STORED_BLOCK<<1) + last, 3); /* send block type */
|
|
870
|
+
bi_windup(s); /* align on byte boundary */
|
|
871
|
+
put_short(s, (ush)stored_len);
|
|
872
|
+
put_short(s, (ush)~stored_len);
|
|
873
|
+
if (stored_len)
|
|
874
|
+
zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len);
|
|
875
|
+
s->pending += stored_len;
|
|
876
|
+
#ifdef ZLIB_DEBUG
|
|
879
877
|
s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
|
|
880
878
|
s->compressed_len += (stored_len + 4) << 3;
|
|
879
|
+
s->bits_sent += 2*16;
|
|
880
|
+
s->bits_sent += stored_len << 3;
|
|
881
881
|
#endif
|
|
882
|
-
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
/* ===========================================================================
|
|
885
|
+
* Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
|
|
886
|
+
*/
|
|
887
|
+
void ZLIB_INTERNAL _tr_flush_bits(s)
|
|
888
|
+
deflate_state *s;
|
|
889
|
+
{
|
|
890
|
+
bi_flush(s);
|
|
883
891
|
}
|
|
884
892
|
|
|
885
893
|
/* ===========================================================================
|
|
886
894
|
* Send one empty static block to give enough lookahead for inflate.
|
|
887
895
|
* This takes 10 bits, of which 7 may remain in the bit buffer.
|
|
888
|
-
* The current inflate code requires 9 bits of lookahead. If the
|
|
889
|
-
* last two codes for the previous block (real code plus EOB) were coded
|
|
890
|
-
* on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode
|
|
891
|
-
* the last real code. In this case we send two empty static blocks instead
|
|
892
|
-
* of one. (There are no problems if the previous block is stored or fixed.)
|
|
893
|
-
* To simplify the code, we assume the worst case of last real code encoded
|
|
894
|
-
* on one bit only.
|
|
895
896
|
*/
|
|
896
897
|
void ZLIB_INTERNAL _tr_align(s)
|
|
897
898
|
deflate_state *s;
|
|
898
899
|
{
|
|
899
900
|
send_bits(s, STATIC_TREES<<1, 3);
|
|
900
901
|
send_code(s, END_BLOCK, static_ltree);
|
|
901
|
-
#ifdef
|
|
902
|
+
#ifdef ZLIB_DEBUG
|
|
902
903
|
s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
|
|
903
904
|
#endif
|
|
904
905
|
bi_flush(s);
|
|
905
|
-
/* Of the 10 bits for the empty block, we have already sent
|
|
906
|
-
* (10 - bi_valid) bits. The lookahead for the last real code (before
|
|
907
|
-
* the EOB of the previous block) was thus at least one plus the length
|
|
908
|
-
* of the EOB plus what we have just sent of the empty static block.
|
|
909
|
-
*/
|
|
910
|
-
if (1 + s->last_eob_len + 10 - s->bi_valid < 9) {
|
|
911
|
-
send_bits(s, STATIC_TREES<<1, 3);
|
|
912
|
-
send_code(s, END_BLOCK, static_ltree);
|
|
913
|
-
#ifdef DEBUG
|
|
914
|
-
s->compressed_len += 10L;
|
|
915
|
-
#endif
|
|
916
|
-
bi_flush(s);
|
|
917
|
-
}
|
|
918
|
-
s->last_eob_len = 7;
|
|
919
906
|
}
|
|
920
907
|
|
|
921
908
|
/* ===========================================================================
|
|
922
909
|
* Determine the best encoding for the current block: dynamic trees, static
|
|
923
|
-
* trees or store, and
|
|
910
|
+
* trees or store, and write out the encoded block.
|
|
924
911
|
*/
|
|
925
912
|
void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
|
926
913
|
deflate_state *s;
|
|
@@ -956,14 +943,17 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
|
|
956
943
|
max_blindex = build_bl_tree(s);
|
|
957
944
|
|
|
958
945
|
/* Determine the best encoding. Compute the block lengths in bytes. */
|
|
959
|
-
opt_lenb = (s->opt_len+3+7)>>3;
|
|
960
|
-
static_lenb = (s->static_len+3+7)>>3;
|
|
946
|
+
opt_lenb = (s->opt_len + 3 + 7) >> 3;
|
|
947
|
+
static_lenb = (s->static_len + 3 + 7) >> 3;
|
|
961
948
|
|
|
962
949
|
Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
|
|
963
950
|
opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
|
|
964
|
-
s->
|
|
951
|
+
s->sym_next / 3));
|
|
965
952
|
|
|
966
|
-
|
|
953
|
+
#ifndef FORCE_STATIC
|
|
954
|
+
if (static_lenb <= opt_lenb || s->strategy == Z_FIXED)
|
|
955
|
+
#endif
|
|
956
|
+
opt_lenb = static_lenb;
|
|
967
957
|
|
|
968
958
|
} else {
|
|
969
959
|
Assert(buf != (char*)0, "lost buf");
|
|
@@ -973,7 +963,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
|
|
973
963
|
#ifdef FORCE_STORED
|
|
974
964
|
if (buf != (char*)0) { /* force stored block */
|
|
975
965
|
#else
|
|
976
|
-
if (stored_len+4 <= opt_lenb && buf != (char*)0) {
|
|
966
|
+
if (stored_len + 4 <= opt_lenb && buf != (char*)0) {
|
|
977
967
|
/* 4: two words for the lengths */
|
|
978
968
|
#endif
|
|
979
969
|
/* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
|
|
@@ -984,22 +974,20 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
|
|
984
974
|
*/
|
|
985
975
|
_tr_stored_block(s, buf, stored_len, last);
|
|
986
976
|
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
#
|
|
992
|
-
send_bits(s, (STATIC_TREES<<1)+last, 3);
|
|
993
|
-
compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
|
|
994
|
-
#ifdef DEBUG
|
|
977
|
+
} else if (static_lenb == opt_lenb) {
|
|
978
|
+
send_bits(s, (STATIC_TREES<<1) + last, 3);
|
|
979
|
+
compress_block(s, (const ct_data *)static_ltree,
|
|
980
|
+
(const ct_data *)static_dtree);
|
|
981
|
+
#ifdef ZLIB_DEBUG
|
|
995
982
|
s->compressed_len += 3 + s->static_len;
|
|
996
983
|
#endif
|
|
997
984
|
} else {
|
|
998
|
-
send_bits(s, (DYN_TREES<<1)+last, 3);
|
|
999
|
-
send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
|
|
1000
|
-
max_blindex+1);
|
|
1001
|
-
compress_block(s, (ct_data *)s->dyn_ltree,
|
|
1002
|
-
|
|
985
|
+
send_bits(s, (DYN_TREES<<1) + last, 3);
|
|
986
|
+
send_all_trees(s, s->l_desc.max_code + 1, s->d_desc.max_code + 1,
|
|
987
|
+
max_blindex + 1);
|
|
988
|
+
compress_block(s, (const ct_data *)s->dyn_ltree,
|
|
989
|
+
(const ct_data *)s->dyn_dtree);
|
|
990
|
+
#ifdef ZLIB_DEBUG
|
|
1003
991
|
s->compressed_len += 3 + s->opt_len;
|
|
1004
992
|
#endif
|
|
1005
993
|
}
|
|
@@ -1011,25 +999,26 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
|
|
1011
999
|
|
|
1012
1000
|
if (last) {
|
|
1013
1001
|
bi_windup(s);
|
|
1014
|
-
#ifdef
|
|
1002
|
+
#ifdef ZLIB_DEBUG
|
|
1015
1003
|
s->compressed_len += 7; /* align on byte boundary */
|
|
1016
1004
|
#endif
|
|
1017
1005
|
}
|
|
1018
|
-
Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
|
|
1019
|
-
s->compressed_len-7*last));
|
|
1006
|
+
Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len >> 3,
|
|
1007
|
+
s->compressed_len - 7*last));
|
|
1020
1008
|
}
|
|
1021
1009
|
|
|
1022
1010
|
/* ===========================================================================
|
|
1023
1011
|
* Save the match info and tally the frequency counts. Return true if
|
|
1024
1012
|
* the current block must be flushed.
|
|
1025
1013
|
*/
|
|
1026
|
-
int ZLIB_INTERNAL _tr_tally
|
|
1014
|
+
int ZLIB_INTERNAL _tr_tally(s, dist, lc)
|
|
1027
1015
|
deflate_state *s;
|
|
1028
1016
|
unsigned dist; /* distance of matched string */
|
|
1029
|
-
unsigned lc; /* match length-MIN_MATCH or unmatched char (
|
|
1017
|
+
unsigned lc; /* match length - MIN_MATCH or unmatched char (dist==0) */
|
|
1030
1018
|
{
|
|
1031
|
-
s->
|
|
1032
|
-
s->
|
|
1019
|
+
s->sym_buf[s->sym_next++] = (uch)dist;
|
|
1020
|
+
s->sym_buf[s->sym_next++] = (uch)(dist >> 8);
|
|
1021
|
+
s->sym_buf[s->sym_next++] = (uch)lc;
|
|
1033
1022
|
if (dist == 0) {
|
|
1034
1023
|
/* lc is the unmatched char */
|
|
1035
1024
|
s->dyn_ltree[lc].Freq++;
|
|
@@ -1041,33 +1030,10 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
|
|
|
1041
1030
|
(ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
|
|
1042
1031
|
(ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match");
|
|
1043
1032
|
|
|
1044
|
-
s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
|
|
1033
|
+
s->dyn_ltree[_length_code[lc] + LITERALS + 1].Freq++;
|
|
1045
1034
|
s->dyn_dtree[d_code(dist)].Freq++;
|
|
1046
1035
|
}
|
|
1047
|
-
|
|
1048
|
-
#ifdef TRUNCATE_BLOCK
|
|
1049
|
-
/* Try to guess if it is profitable to stop the current block here */
|
|
1050
|
-
if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
|
|
1051
|
-
/* Compute an upper bound for the compressed length */
|
|
1052
|
-
ulg out_length = (ulg)s->last_lit*8L;
|
|
1053
|
-
ulg in_length = (ulg)((long)s->strstart - s->block_start);
|
|
1054
|
-
int dcode;
|
|
1055
|
-
for (dcode = 0; dcode < D_CODES; dcode++) {
|
|
1056
|
-
out_length += (ulg)s->dyn_dtree[dcode].Freq *
|
|
1057
|
-
(5L+extra_dbits[dcode]);
|
|
1058
|
-
}
|
|
1059
|
-
out_length >>= 3;
|
|
1060
|
-
Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
|
|
1061
|
-
s->last_lit, in_length, out_length,
|
|
1062
|
-
100L - out_length*100L/in_length));
|
|
1063
|
-
if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
|
|
1064
|
-
}
|
|
1065
|
-
#endif
|
|
1066
|
-
return (s->last_lit == s->lit_bufsize-1);
|
|
1067
|
-
/* We avoid equality with lit_bufsize because of wraparound at 64K
|
|
1068
|
-
* on 16 bit machines and because stored blocks are restricted to
|
|
1069
|
-
* 64K-1 bytes.
|
|
1070
|
-
*/
|
|
1036
|
+
return (s->sym_next == s->sym_end);
|
|
1071
1037
|
}
|
|
1072
1038
|
|
|
1073
1039
|
/* ===========================================================================
|
|
@@ -1075,25 +1041,26 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
|
|
|
1075
1041
|
*/
|
|
1076
1042
|
local void compress_block(s, ltree, dtree)
|
|
1077
1043
|
deflate_state *s;
|
|
1078
|
-
ct_data *ltree; /* literal tree */
|
|
1079
|
-
ct_data *dtree; /* distance tree */
|
|
1044
|
+
const ct_data *ltree; /* literal tree */
|
|
1045
|
+
const ct_data *dtree; /* distance tree */
|
|
1080
1046
|
{
|
|
1081
1047
|
unsigned dist; /* distance of matched string */
|
|
1082
1048
|
int lc; /* match length or unmatched char (if dist == 0) */
|
|
1083
|
-
unsigned
|
|
1049
|
+
unsigned sx = 0; /* running index in sym_buf */
|
|
1084
1050
|
unsigned code; /* the code to send */
|
|
1085
1051
|
int extra; /* number of extra bits to send */
|
|
1086
1052
|
|
|
1087
|
-
if (s->
|
|
1088
|
-
dist = s->
|
|
1089
|
-
|
|
1053
|
+
if (s->sym_next != 0) do {
|
|
1054
|
+
dist = s->sym_buf[sx++] & 0xff;
|
|
1055
|
+
dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8;
|
|
1056
|
+
lc = s->sym_buf[sx++];
|
|
1090
1057
|
if (dist == 0) {
|
|
1091
1058
|
send_code(s, lc, ltree); /* send a literal byte */
|
|
1092
1059
|
Tracecv(isgraph(lc), (stderr," '%c' ", lc));
|
|
1093
1060
|
} else {
|
|
1094
1061
|
/* Here, lc is the match length - MIN_MATCH */
|
|
1095
1062
|
code = _length_code[lc];
|
|
1096
|
-
send_code(s, code+LITERALS+1, ltree);
|
|
1063
|
+
send_code(s, code + LITERALS + 1, ltree); /* send length code */
|
|
1097
1064
|
extra = extra_lbits[code];
|
|
1098
1065
|
if (extra != 0) {
|
|
1099
1066
|
lc -= base_length[code];
|
|
@@ -1106,28 +1073,26 @@ local void compress_block(s, ltree, dtree)
|
|
|
1106
1073
|
send_code(s, code, dtree); /* send the distance code */
|
|
1107
1074
|
extra = extra_dbits[code];
|
|
1108
1075
|
if (extra != 0) {
|
|
1109
|
-
dist -= base_dist[code];
|
|
1076
|
+
dist -= (unsigned)base_dist[code];
|
|
1110
1077
|
send_bits(s, dist, extra); /* send the extra distance bits */
|
|
1111
1078
|
}
|
|
1112
1079
|
} /* literal or match pair ? */
|
|
1113
1080
|
|
|
1114
|
-
/* Check that the overlay between pending_buf and
|
|
1115
|
-
Assert(
|
|
1116
|
-
"pendingBuf overflow");
|
|
1081
|
+
/* Check that the overlay between pending_buf and sym_buf is ok: */
|
|
1082
|
+
Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow");
|
|
1117
1083
|
|
|
1118
|
-
} while (
|
|
1084
|
+
} while (sx < s->sym_next);
|
|
1119
1085
|
|
|
1120
1086
|
send_code(s, END_BLOCK, ltree);
|
|
1121
|
-
s->last_eob_len = ltree[END_BLOCK].Len;
|
|
1122
1087
|
}
|
|
1123
1088
|
|
|
1124
1089
|
/* ===========================================================================
|
|
1125
1090
|
* Check if the data type is TEXT or BINARY, using the following algorithm:
|
|
1126
1091
|
* - TEXT if the two conditions below are satisfied:
|
|
1127
1092
|
* a) There are no non-portable control characters belonging to the
|
|
1128
|
-
* "
|
|
1093
|
+
* "block list" (0..6, 14..25, 28..31).
|
|
1129
1094
|
* b) There is at least one printable character belonging to the
|
|
1130
|
-
* "
|
|
1095
|
+
* "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
|
|
1131
1096
|
* - BINARY otherwise.
|
|
1132
1097
|
* - The following partially-portable control characters form a
|
|
1133
1098
|
* "gray list" that is ignored in this detection algorithm:
|
|
@@ -1137,19 +1102,19 @@ local void compress_block(s, ltree, dtree)
|
|
|
1137
1102
|
local int detect_data_type(s)
|
|
1138
1103
|
deflate_state *s;
|
|
1139
1104
|
{
|
|
1140
|
-
/*
|
|
1105
|
+
/* block_mask is the bit mask of block-listed bytes
|
|
1141
1106
|
* set bits 0..6, 14..25, and 28..31
|
|
1142
1107
|
* 0xf3ffc07f = binary 11110011111111111100000001111111
|
|
1143
1108
|
*/
|
|
1144
|
-
unsigned long
|
|
1109
|
+
unsigned long block_mask = 0xf3ffc07fUL;
|
|
1145
1110
|
int n;
|
|
1146
1111
|
|
|
1147
|
-
/* Check for non-textual ("
|
|
1148
|
-
for (n = 0; n <= 31; n++,
|
|
1149
|
-
if ((
|
|
1112
|
+
/* Check for non-textual ("block-listed") bytes. */
|
|
1113
|
+
for (n = 0; n <= 31; n++, block_mask >>= 1)
|
|
1114
|
+
if ((block_mask & 1) && (s->dyn_ltree[n].Freq != 0))
|
|
1150
1115
|
return Z_BINARY;
|
|
1151
1116
|
|
|
1152
|
-
/* Check for textual ("
|
|
1117
|
+
/* Check for textual ("allow-listed") bytes. */
|
|
1153
1118
|
if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0
|
|
1154
1119
|
|| s->dyn_ltree[13].Freq != 0)
|
|
1155
1120
|
return Z_TEXT;
|
|
@@ -1157,7 +1122,7 @@ local int detect_data_type(s)
|
|
|
1157
1122
|
if (s->dyn_ltree[n].Freq != 0)
|
|
1158
1123
|
return Z_TEXT;
|
|
1159
1124
|
|
|
1160
|
-
/* There are no "
|
|
1125
|
+
/* There are no "block-listed" or "allow-listed" bytes:
|
|
1161
1126
|
* this stream either is empty or has tolerated ("gray-listed") bytes only.
|
|
1162
1127
|
*/
|
|
1163
1128
|
return Z_BINARY;
|
|
@@ -1210,35 +1175,7 @@ local void bi_windup(s)
|
|
|
1210
1175
|
}
|
|
1211
1176
|
s->bi_buf = 0;
|
|
1212
1177
|
s->bi_valid = 0;
|
|
1213
|
-
#ifdef
|
|
1214
|
-
s->bits_sent = (s->bits_sent+7) & ~7;
|
|
1215
|
-
#endif
|
|
1216
|
-
}
|
|
1217
|
-
|
|
1218
|
-
/* ===========================================================================
|
|
1219
|
-
* Copy a stored block, storing first the length and its
|
|
1220
|
-
* one's complement if requested.
|
|
1221
|
-
*/
|
|
1222
|
-
local void copy_block(s, buf, len, header)
|
|
1223
|
-
deflate_state *s;
|
|
1224
|
-
charf *buf; /* the input data */
|
|
1225
|
-
unsigned len; /* its length */
|
|
1226
|
-
int header; /* true if block header must be written */
|
|
1227
|
-
{
|
|
1228
|
-
bi_windup(s); /* align on byte boundary */
|
|
1229
|
-
s->last_eob_len = 8; /* enough lookahead for inflate */
|
|
1230
|
-
|
|
1231
|
-
if (header) {
|
|
1232
|
-
put_short(s, (ush)len);
|
|
1233
|
-
put_short(s, (ush)~len);
|
|
1234
|
-
#ifdef DEBUG
|
|
1235
|
-
s->bits_sent += 2*16;
|
|
1236
|
-
#endif
|
|
1237
|
-
}
|
|
1238
|
-
#ifdef DEBUG
|
|
1239
|
-
s->bits_sent += (ulg)len<<3;
|
|
1178
|
+
#ifdef ZLIB_DEBUG
|
|
1179
|
+
s->bits_sent = (s->bits_sent + 7) & ~7;
|
|
1240
1180
|
#endif
|
|
1241
|
-
while (len--) {
|
|
1242
|
-
put_byte(s, *buf++);
|
|
1243
|
-
}
|
|
1244
1181
|
}
|