* xpress-decomp.c
*
* XPRESS decompression routines.
+ */
+
+/*
*
* 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/.
*/
* the end. Otherwise Microsoft's software will fail to decompress the
* XPRESS-compressed data.
*
- * Howeve, WIMLIB's decompressor in xpress-decomp.c currently does not care if
+ * Howeve, wimlib's decompressor in xpress-decomp.c currently does not care if
* this extra symbol is there or not.
*/
#include "decomp.h"
-
-
/* Decodes @huffsym, a value >= XPRESS_NUM_CHARS, that is the header of a match.
* */
static int xpress_decode_match(int huffsym, uint window_pos, uint window_len,
if (window_pos + match_len > window_len) {
ERROR("XPRESS dedecompression error: match of length %d "
- "bytes overflows window\n", match_len);
+ "bytes overflows window", match_len);
return -1;
}
if (match_src < window) {
ERROR("XPRESS decompression error: match of length %d bytes "
- "references data before window (match_offset = "
- "%d, window_pos = %d)\n", match_len,
- match_offset, window_pos);
+ "references data before window (match_offset = %d, "
+ "window_pos = %d)", match_len, match_offset, window_pos);
return -1;
}
compressed_data = __compressed_data;
lens_p = lens;
- DEBUG2("compressed_len = %d, uncompressed_len = %d\n",
- compressed_len, uncompressed_len);
+ DEBUG2("compressed_len = %d, uncompressed_len = %d",
+ compressed_len, uncompressed_len);
/* XPRESS uses only one Huffman tree. It contains 512 symbols, and the
* code lengths of these symbols are given literally as 4-bit integers
return ret;
init_input_bitstream(&istream, compressed_data + XPRESS_NUM_SYMBOLS / 2,
- compressed_len - XPRESS_NUM_SYMBOLS / 2);
+ compressed_len - XPRESS_NUM_SYMBOLS / 2);
return xpress_decompress_literals(&istream, uncompressed_data,
uncompressed_len, lens, decode_table);