X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Flzx-comp.c;h=cde37ab5ca77558cf181dacd151f83a84c42c0d4;hb=e03410487e77ea4aa8af8ebcf279f4ccbcd9ccba;hp=d06b0675d0f89be0db151aac8af12e784307566c;hpb=885632f08c75c1d7bb5d25436231c78f6ad7e0c0;p=wimlib diff --git a/src/lzx-comp.c b/src/lzx-comp.c index d06b0675..cde37ab5 100644 --- a/src/lzx-comp.c +++ b/src/lzx-comp.c @@ -5,24 +5,26 @@ * * This code was originally based on code written by Matthew T. Russotto * (liblzxcomp). - * + */ + +/* * Copyright (C) 2002 Matthew T. Russotto * Copyright (C) 2012 Eric Biggers * - * wimlib - Library for working with WIM files + * This file is part of wimlib, a library for working with WIM files. * - * This library is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 2.1 of the License, or (at your option) any - * later version. + * wimlib is free software; you can redistribute it and/or modify it under the + * terms of the GNU General Public License as published by the Free + * Software Foundation; either version 3 of the License, or (at your option) + * any later version. * - * This library is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * wimlib is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. * - * You should have received a copy of the GNU Lesser General Public License along - * with this library; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the GNU General Public License + * along with wimlib; if not, see http://www.gnu.org/licenses/. */ @@ -51,7 +53,6 @@ #include "lzx.h" #include "comp.h" -#include "huffman.h" #include #include #include @@ -469,7 +470,7 @@ static int lzx_write_compressed_tree(struct output_bitstream *out, if (delta < 0) delta += 17; pretree_freqs[19]++; - pretree_freqs[delta]++; + pretree_freqs[(unsigned char)delta]++; output_syms[output_syms_idx++] = 19; output_syms[output_syms_idx++] = additional_bits; output_syms[output_syms_idx++] = delta; @@ -485,7 +486,7 @@ static int lzx_write_compressed_tree(struct output_bitstream *out, if (delta < 0) delta += 17; - pretree_freqs[delta]++; + pretree_freqs[(unsigned char)delta]++; output_syms[output_syms_idx++] = delta; } @@ -638,7 +639,7 @@ int lzx_compress(const void *__uncompressed_data, uint uncompressed_len, uint i; int ret; - LZX_DEBUG("uncompressed_len = %u\n", uncompressed_len); + LZX_DEBUG("uncompressed_len = %u", uncompressed_len); if (uncompressed_len < 100) return 1; @@ -666,8 +667,7 @@ int lzx_compress(const void *__uncompressed_data, uint uncompressed_len, &queue, freq_tabs.main_freq_table, &lzx_lz_params); - LZX_DEBUG("using %u matches\n", num_matches); - + LZX_DEBUG("using %u matches", num_matches); lzx_make_huffman_codes(&freq_tabs, &codes); @@ -728,31 +728,31 @@ int lzx_compress(const void *__uncompressed_data, uint uncompressed_len, compressed_len = ostream.bit_output - (u8*)compressed_data; - LZX_DEBUG("Compressed %u => %u bytes\n", - uncompressed_len, compressed_len); + LZX_DEBUG("Compressed %u => %u bytes", + uncompressed_len, compressed_len); *compressed_len_ret = compressed_len; #ifdef ENABLE_VERIFY_COMPRESSION /* Verify that we really get the same thing back when decompressing. */ + LZX_DEBUG("Verifying the compressed data."); u8 buf[uncompressed_len]; ret = lzx_decompress(compressed_data, compressed_len, buf, uncompressed_len); if (ret != 0) { - ERROR("ERROR: Failed to decompress data we compressed!\n"); - exit(0); + ERROR("lzx_compress(): Failed to decompress data we compressed"); abort(); } for (i = 0; i < uncompressed_len; i++) { if (buf[i] != *((u8*)__uncompressed_data + i)) { - ERROR("Data we compressed didn't decompress to " - "the original data (difference at byte %u of " - "%u)\n", i + 1, uncompressed_len); + ERROR("lzx_compress(): Data we compressed didn't " + "decompress to the original data (difference at " + "byte %u of %u)", i + 1, uncompressed_len); abort(); } } - LZX_DEBUG("Compression verified to be correct.\n"); + LZX_DEBUG("Compression verified to be correct."); #endif return 0;