]> wimlib.net Git - wimlib/blobdiff - src/lzx-comp.c
Extract NTFS junction points correctly
[wimlib] / src / lzx-comp.c
index caedc9a1e5d80d59d2b972b44d7614761985a1cb..601513dd4435a77b948b4ca2cd3391912160edfa 100644 (file)
@@ -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 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.
  *
- * 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 Lesser 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 Lesser General Public License
+ * along with wimlib; if not, see http://www.gnu.org/licenses/.
  */
 
 
@@ -468,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;
@@ -484,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;
                }
 
@@ -637,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;
@@ -665,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);
 
@@ -727,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;