wimlib
3 years agov1.7.3 v1.7.3
Eric Biggers [Fri, 14 Nov 2014 00:12:23 +0000 (18:12 -0600)]
v1.7.3

3 years agoSilence compiler warning in make_huffman_decode_table()
Eric Biggers [Tue, 11 Nov 2014 00:34:25 +0000 (18:34 -0600)]
Silence compiler warning in make_huffman_decode_table()

3 years agoLZX, LZMS: Annotate unaligned memory accesses in x86 filtering
Eric Biggers [Tue, 11 Nov 2014 00:10:41 +0000 (18:10 -0600)]
LZX, LZMS: Annotate unaligned memory accesses in x86 filtering

3 years agowimlib_export_image(): cleanups and fixes for rollback
Eric Biggers [Fri, 7 Nov 2014 00:50:18 +0000 (18:50 -0600)]
wimlib_export_image(): cleanups and fixes for rollback

- rollback setting of wimboot flag correctly (actually, don't even set it
  until we've succeeded)
- on rollback, free wim_lookup_table_entries in the destination if and
  only if they were exported.  Before it was possible for one to be freed
  if it happened to have had 0 reference count before.

3 years agowimlib_set_image_name(): Allow multiple images with empty name
Eric Biggers [Fri, 7 Nov 2014 00:44:54 +0000 (18:44 -0600)]
wimlib_set_image_name(): Allow multiple images with empty name

3 years agoFix for rewriting uncompressed resources when exporting from solid WIM
Eric Biggers [Wed, 5 Nov 2014 01:25:55 +0000 (19:25 -0600)]
Fix for rewriting uncompressed resources when exporting from solid WIM

The changes from commit 1ba2a3422b ("Workaround for WOF incompatibility")
are resulting in excessive, expensive decompressions when exporting small
incompressible files from solid blocks.  For now, add an optimization for
single chunk resources which prevents this common case from triggering
the degenerate behavior.

3 years agoRemove "memory exhausted" error messages
Eric Biggers [Sun, 26 Oct 2014 23:47:12 +0000 (18:47 -0500)]
Remove "memory exhausted" error messages

Calling code checks for NULL returns anyway, and in the case of
allocating chunk compressors there is a fallback so there shouldn't
be an error message.

3 years agowrite.c: Warn when falling back to single-threaded compression
Eric Biggers [Sun, 26 Oct 2014 23:50:49 +0000 (18:50 -0500)]
write.c: Warn when falling back to single-threaded compression

3 years agowin32_get_avail_memory(): Report 85% of minimum of virtual and physical memory
Eric Biggers [Sun, 26 Oct 2014 23:55:44 +0000 (18:55 -0500)]
win32_get_avail_memory(): Report 85% of minimum of virtual and physical memory

This should be a better prediction of how much memory can actually be
allocated.

3 years agoUpdate NEWS
Eric Biggers [Sat, 25 Oct 2014 18:13:21 +0000 (13:13 -0500)]
Update NEWS

3 years agoAdd warning messages and retries around FSCTL_SET_EXTERNAL_BACKING
Eric Biggers [Sat, 25 Oct 2014 16:28:03 +0000 (11:28 -0500)]
Add warning messages and retries around FSCTL_SET_EXTERNAL_BACKING

3 years agoDon't use the old ADD_IMAGE flag names
Eric Biggers [Sat, 25 Oct 2014 00:25:49 +0000 (19:25 -0500)]
Don't use the old ADD_IMAGE flag names

3 years agoRename add_image_params => capture_params
Eric Biggers [Sat, 25 Oct 2014 00:19:47 +0000 (19:19 -0500)]
Rename add_image_params => capture_params

3 years agoReport some extraction errors on Windows
Eric Biggers [Wed, 22 Oct 2014 03:19:11 +0000 (22:19 -0500)]
Report some extraction errors on Windows

3 years agoReport directory tree scan errors
Eric Biggers [Wed, 22 Oct 2014 03:18:05 +0000 (22:18 -0500)]
Report directory tree scan errors

3 years agoAdd WIMLIB_PROGRESS_MSG_HANDLE_ERROR
Eric Biggers [Wed, 22 Oct 2014 03:17:30 +0000 (22:17 -0500)]
Add WIMLIB_PROGRESS_MSG_HANDLE_ERROR

3 years agowin32_apply.c: Try to remove/rename conflicting short names
Eric Biggers [Sat, 18 Oct 2014 02:14:18 +0000 (21:14 -0500)]
win32_apply.c: Try to remove/rename conflicting short names

3 years agowimboot.c: Fix format string
Eric Biggers [Wed, 15 Oct 2014 00:00:17 +0000 (19:00 -0500)]
wimboot.c: Fix format string

3 years agoUpdate NEWS
Eric Biggers [Tue, 14 Oct 2014 04:24:02 +0000 (23:24 -0500)]
Update NEWS

3 years agowin32_apply.c: Match PrepopulateList patterns against all inode aliases
Eric Biggers [Tue, 14 Oct 2014 03:18:35 +0000 (22:18 -0500)]
win32_apply.c:  Match PrepopulateList patterns against all inode aliases

3 years agowin32_apply.c: Never externally back extracted SYSTEM registry files
Eric Biggers [Tue, 14 Oct 2014 03:10:27 +0000 (22:10 -0500)]
win32_apply.c: Never externally back extracted SYSTEM registry files

3 years agowimboot.c: Dynamically size extents and drive_info arrays
Eric Biggers [Tue, 14 Oct 2014 02:26:40 +0000 (21:26 -0500)]
wimboot.c:  Dynamically size extents and drive_info arrays

I figured a limit of 8 partitions is good enough, but for some reason
Windows returns 4 times as many partitions as there actually are.
Whatever, just remove the fixed limit.

3 years agoUpdate version to v1.7.3-BETA
Eric Biggers [Tue, 14 Oct 2014 01:36:05 +0000 (20:36 -0500)]
Update version to v1.7.3-BETA

3 years agoLimit can_modify_wim() calls; remove can_delete_from_wim()
Eric Biggers [Tue, 14 Oct 2014 00:42:16 +0000 (19:42 -0500)]
Limit can_modify_wim() calls; remove can_delete_from_wim()

It isn't necessary to check for permission to modify a WIM for in-memory
operations such as wimlib_add_image(), wimlib_update_image(), and
wimlib_delete_image().  It is only when the user attempts to modify an
on-disk WIM file using wimlib_overwrite() --- or when the user explicitly
opens an on-disk WIM file for write access --- that write permissions
need to be checked.

This change prevents the library from getting in the way of "unusual" use
cases, such as making last-minute changes to a WIM before extracting it
even when the underlying file is located on read-only media, which
otherwise are fully supported by the existing code.

Also part of this change is the removal of can_delete_from_wim().  This
function did a lot of work (decompressing each metadata resource) that
usually turns out to be a waste of time.  And it turns out that it really
needs to be called for any 'wimlib_update_command', including "add" and
"rename", because both "add" and "rename" can cause files to be deleted
(specifically, replaced).  But this is gone too far.  Instead, just get
rid of can_delete_from_wim() completely: it's not needed if we retain
0-reference streams when not recalculating reference counts as part of
wimlib_write() anyway.

3 years agov1.7.2 v1.7.2
Eric Biggers [Thu, 2 Oct 2014 23:42:49 +0000 (18:42 -0500)]
v1.7.2

3 years agoWorkaround for WOF incompatibility
Eric Biggers [Sun, 28 Sep 2014 03:55:57 +0000 (22:55 -0500)]
Workaround for WOF incompatibility

If a stream has compressed_size == uncompressed_size, WOF assumes it's
uncompressed.  As a workaround, we need to re-write the stream as uncompressed
if this ever happens.

This requires adjusting the DONE_WITH_FILE messages to be fired after writing
each stream, not after reading each stream.

We also need to loosen the check for whether the input stream is in a solid
block or not.

Finally, this commit also makes the DONE_WITH_FILE messages work in more cases
--- when appending to a WIM, and when the file hashes are already known.

3 years agowimlib-imagex: Don't open base or template WIMs for write access
Eric Biggers [Sat, 27 Sep 2014 22:23:51 +0000 (17:23 -0500)]
wimlib-imagex: Don't open base or template WIMs for write access

3 years agoUpdate COPYING
Eric Biggers [Sat, 27 Sep 2014 14:39:01 +0000 (09:39 -0500)]
Update COPYING

- Use "or later" clause for GPLv3 and LGPLv3
- Make LGPL exception more general

3 years agoprograms/wgetopt.c: Adjust license to reflect this not being part of the library
Eric Biggers [Sat, 27 Sep 2014 14:38:49 +0000 (09:38 -0500)]
programs/wgetopt.c: Adjust license to reflect this not being part of the library

3 years agoDon't bother with copyright statement in header file
Eric Biggers [Sat, 27 Sep 2014 14:37:35 +0000 (09:37 -0500)]
Don't bother with copyright statement in header file

3 years agoUse LGPLv3+ for src/*.c
Eric Biggers [Sat, 27 Sep 2014 14:37:07 +0000 (09:37 -0500)]
Use LGPLv3+ for src/*.c

3 years agoUpdate NEWS
Eric Biggers [Fri, 26 Sep 2014 04:01:05 +0000 (23:01 -0500)]
Update NEWS

3 years agowin32_{apply,capture}.c: workaround for SACL_SECURITY_INFORMATION quirk
Eric Biggers [Fri, 26 Sep 2014 04:00:32 +0000 (23:00 -0500)]
win32_{apply,capture}.c:  workaround for SACL_SECURITY_INFORMATION quirk

3 years agoUpdate NEWS
Eric Biggers [Fri, 26 Sep 2014 02:11:51 +0000 (21:11 -0500)]
Update NEWS

3 years agocompress_parallel.c: Smarter setting of chunks_per_msg
Eric Biggers [Thu, 25 Sep 2014 04:21:13 +0000 (23:21 -0500)]
compress_parallel.c:  Smarter setting of chunks_per_msg

Useful when compressing small chunks with many threads.

3 years agomake_reparse_data(): No changes until success ensured
Eric Biggers [Thu, 25 Sep 2014 03:46:38 +0000 (22:46 -0500)]
make_reparse_data(): No changes until success ensured

3 years agowin32_capture.c: Random cleanups
Eric Biggers [Thu, 25 Sep 2014 03:41:34 +0000 (22:41 -0500)]
win32_capture.c: Random cleanups

3 years agowin32_apply.c: Add workaround for setting ACL auto-inherit bits
Eric Biggers [Mon, 22 Sep 2014 03:38:53 +0000 (22:38 -0500)]
win32_apply.c: Add workaround for setting ACL auto-inherit bits

3 years agoA few minor compressor cleanups
Eric Biggers [Sun, 21 Sep 2014 20:33:05 +0000 (15:33 -0500)]
A few minor compressor cleanups

3 years agolzx-compress.c: Fix for lazy parsing and multiple blocks
Eric Biggers [Sun, 14 Sep 2014 17:27:16 +0000 (12:27 -0500)]
lzx-compress.c: Fix for lazy parsing and multiple blocks

3 years agoCompression updates
Eric Biggers [Sun, 14 Sep 2014 05:14:07 +0000 (00:14 -0500)]
Compression updates

- Faster searching for repeat offset matches
- Lazy updates of adaptive state in near-optimal parsing
- Faster LZX near-optimal parsing
- Better LZX lazy parsing
- Faster XPRESS near-optimal parsing
- Faster LZMS near-optimal parsing
- Faster LZMS match/literal output
- Slightly faster LZMS decompression
- Cleanups

3 years agowin32_capture.c: Fix format string
Eric Biggers [Mon, 8 Sep 2014 00:10:55 +0000 (19:10 -0500)]
win32_capture.c: Fix format string

3 years agolzx-compress.c: Avoid unnecessary branch in match cost calculation
Eric Biggers [Sun, 7 Sep 2014 05:22:08 +0000 (00:22 -0500)]
lzx-compress.c: Avoid unnecessary branch in match cost calculation

3 years agolzx_write_match(): One-branch check for aligned offset case
Eric Biggers [Sun, 7 Sep 2014 05:01:38 +0000 (00:01 -0500)]
lzx_write_match():  One-branch check for aligned offset case

3 years agolzx-compress.c: Optimize output of compressed Huffman codes
Eric Biggers [Sun, 7 Sep 2014 02:47:47 +0000 (21:47 -0500)]
lzx-compress.c:  Optimize output of compressed Huffman codes

3 years agolzx_decompress_block(): One-branch check for aligned offset case
Eric Biggers [Sun, 7 Sep 2014 01:49:02 +0000 (20:49 -0500)]
lzx_decompress_block():  One-branch check for aligned offset case

3 years agowimverify: Add --nocheck option
Eric Biggers [Sat, 6 Sep 2014 23:25:00 +0000 (18:25 -0500)]
wimverify: Add --nocheck option

3 years agolzx-decompress.c: Optimize lzx_read_codeword_lens()
Eric Biggers [Sat, 6 Sep 2014 22:44:59 +0000 (17:44 -0500)]
lzx-decompress.c: Optimize lzx_read_codeword_lens()

3 years agolzx-decompress.c: Inline and optimize lzx_decode_match()
Eric Biggers [Sat, 6 Sep 2014 21:40:56 +0000 (16:40 -0500)]
lzx-decompress.c: Inline and optimize lzx_decode_match()

3 years agoread_huffsym(): Use 'unsigned' for 'entry' and 'key_bits'
Eric Biggers [Sat, 6 Sep 2014 20:30:34 +0000 (15:30 -0500)]
read_huffsym(): Use 'unsigned' for 'entry' and 'key_bits'

Slight performance improvement.

3 years agoxpress-decompress.c: Performance tweaks
Eric Biggers [Sat, 6 Sep 2014 18:05:43 +0000 (13:05 -0500)]
xpress-decompress.c: Performance tweaks

3 years agoMove XPRESS_TABLEBITS to xpress-decompress.c
Eric Biggers [Sat, 6 Sep 2014 17:40:58 +0000 (12:40 -0500)]
Move XPRESS_TABLEBITS to xpress-decompress.c

3 years agolz_copy(): Unroll first iteration
Eric Biggers [Sat, 6 Sep 2014 16:54:16 +0000 (11:54 -0500)]
lz_copy(): Unroll first iteration

Most matches are short, so 1 iteration is the most common case.
Use separate branch for this.

3 years agolzx-decompress.c: Don't allow using offsets of 0
Eric Biggers [Sat, 6 Sep 2014 06:08:03 +0000 (01:08 -0500)]
lzx-decompress.c: Don't allow using offsets of 0

This can happen if an uncompressed block is present, since then the match
offset LRU queue is filled directly from the input buffer.  Too-large
offsets were already checked later, but offsets of 0 would cause
uninitialized memory to remain in the output buffer.

3 years agoUpdate input_bitstream
Eric Biggers [Sat, 6 Sep 2014 06:07:46 +0000 (01:07 -0500)]
Update input_bitstream

- Very slightly more efficient
- Don't access any internal members from LZX decompressor

3 years agoconfigure.ac: Remove unnused variable SHA1_SOURCES
Eric Biggers [Sat, 6 Sep 2014 05:16:39 +0000 (00:16 -0500)]
configure.ac: Remove unnused variable SHA1_SOURCES

3 years agoupdate_image.c: Don't set RP_FIX until all commands have finished
Eric Biggers [Sat, 6 Sep 2014 05:08:47 +0000 (00:08 -0500)]
update_image.c: Don't set RP_FIX until all commands have finished

3 years agowin32_capture.c: Use volume ID as device number
Eric Biggers [Sat, 6 Sep 2014 04:56:20 +0000 (23:56 -0500)]
win32_capture.c: Use volume ID as device number

3 years agoupdate_image.c: Remove update1()
Eric Biggers [Sat, 6 Sep 2014 03:39:27 +0000 (22:39 -0500)]
update_image.c: Remove update1()

This makes the three wrapper functions more obvious at first glance.

3 years agoxml.c: Minor cleanup
Eric Biggers [Sat, 6 Sep 2014 03:33:08 +0000 (22:33 -0500)]
xml.c: Minor cleanup

3 years agoxml.c: Simplify node_get_string()
Eric Biggers [Sat, 6 Sep 2014 03:26:03 +0000 (22:26 -0500)]
xml.c: Simplify node_get_string()

3 years agowimlib.h: Add section about backwards compatibility
Eric Biggers [Sat, 6 Sep 2014 02:36:43 +0000 (21:36 -0500)]
wimlib.h: Add section about backwards compatibility

3 years agoAdd WIMLIB_ERR_FVE_LOCKED_VOLUME
Eric Biggers [Thu, 4 Sep 2014 04:43:53 +0000 (23:43 -0500)]
Add WIMLIB_ERR_FVE_LOCKED_VOLUME

3 years agoread_capture_config(): Don't warn about compression sections
Eric Biggers [Thu, 4 Sep 2014 04:37:04 +0000 (23:37 -0500)]
read_capture_config(): Don't warn about compression sections

3 years agoRemove WINDOWS_LDADD
Eric Biggers [Thu, 4 Sep 2014 04:20:53 +0000 (23:20 -0500)]
Remove WINDOWS_LDADD

Linking with shlwapi is no longer needed.

3 years agoREADME, configure.ac: Updates regarding building wimlib
Eric Biggers [Thu, 4 Sep 2014 03:52:23 +0000 (22:52 -0500)]
README, configure.ac:  Updates regarding building wimlib

The only real changes are:

* --without-fuse by default on non-Linux UNIX
* Explicit check for libattr when libfuse enabled

All other changes are documentation improvements.

3 years agoUpdate wimoptimize documentation
Eric Biggers [Tue, 2 Sep 2014 01:49:28 +0000 (20:49 -0500)]
Update wimoptimize documentation

3 years agoSupport for file exclusions via progress function
Eric Biggers [Sat, 30 Aug 2014 17:05:30 +0000 (12:05 -0500)]
Support for file exclusions via progress function

3 years agoUpdate make-releases
Eric Biggers [Sat, 30 Aug 2014 00:09:40 +0000 (19:09 -0500)]
Update make-releases

3 years agoUpdate NEWS
Eric Biggers [Sat, 30 Aug 2014 00:03:52 +0000 (19:03 -0500)]
Update NEWS

3 years agoFactor out lz_repsearch() and also use for LZMS
Eric Biggers [Fri, 29 Aug 2014 03:31:13 +0000 (22:31 -0500)]
Factor out lz_repsearch() and also use for LZMS

3 years agoUpdate NEWS
Eric Biggers [Fri, 29 Aug 2014 00:50:39 +0000 (19:50 -0500)]
Update NEWS

3 years agoMerge branch 'wimboot_fast'
Eric Biggers [Fri, 29 Aug 2014 00:45:34 +0000 (19:45 -0500)]
Merge branch 'wimboot_fast'

3 years agowin32_apply.c: set_short_name(): Zero buffer
Eric Biggers [Thu, 28 Aug 2014 07:06:39 +0000 (02:06 -0500)]
win32_apply.c: set_short_name(): Zero buffer

3 years agowin32_apply.c: set_short_name(): Zero buffer
Eric Biggers [Thu, 28 Aug 2014 07:06:39 +0000 (02:06 -0500)]
win32_apply.c: set_short_name(): Zero buffer

3 years agoMerge remote-tracking branch 'origin/master' into wimboot_fast
Eric Biggers [Thu, 28 Aug 2014 02:53:02 +0000 (21:53 -0500)]
Merge remote-tracking branch 'origin/master' into wimboot_fast

3 years agoSupport file counts for extract file structure and metadata progress
Eric Biggers [Thu, 28 Aug 2014 02:41:39 +0000 (21:41 -0500)]
Support file counts for extract file structure and metadata progress

3 years agoFix [PrepopulateList] handling
Eric Biggers [Thu, 28 Aug 2014 00:56:12 +0000 (19:56 -0500)]
Fix [PrepopulateList] handling

3 years agowimboot_set_pointer(): No unnecessary file open
Eric Biggers [Wed, 27 Aug 2014 04:09:18 +0000 (23:09 -0500)]
wimboot_set_pointer(): No unnecessary file open

3 years agoMake generic extraction code aware of external backing and optimize on Win32 side
Eric Biggers [Wed, 27 Aug 2014 03:48:00 +0000 (22:48 -0500)]
Make generic extraction code aware of external backing and optimize on Win32 side

3 years agowin32_apply.c: set_short_name(): Increase minimum buffer size
Eric Biggers [Wed, 27 Aug 2014 01:41:06 +0000 (20:41 -0500)]
win32_apply.c:  set_short_name(): Increase minimum buffer size

3 years agoUpdate NEWS
Eric Biggers [Sun, 24 Aug 2014 22:44:29 +0000 (17:44 -0500)]
Update NEWS

3 years agolzx-compress.c: Faster extension of repeat offset matches
Eric Biggers [Sat, 23 Aug 2014 17:53:49 +0000 (12:53 -0500)]
lzx-compress.c: Faster extension of repeat offset matches

3 years agoxpress-compress.c: Adjust condition for using binary tree matchfinder
Eric Biggers [Thu, 21 Aug 2014 04:59:12 +0000 (23:59 -0500)]
xpress-compress.c: Adjust condition for using binary tree matchfinder

3 years agowimlib_get_error_string(): Fix return value for some invalid numbers
Eric Biggers [Thu, 21 Aug 2014 04:41:27 +0000 (23:41 -0500)]
wimlib_get_error_string(): Fix return value for some invalid numbers

The function was returning NULL for unknown error codes in the range of the
array.  But it should return "Unknown error" for such codes.

3 years agowimlib.h: Various minor doc improvements
Eric Biggers [Thu, 21 Aug 2014 04:20:44 +0000 (23:20 -0500)]
wimlib.h:  Various minor doc improvements

3 years agowimlib_get_compressor_needed_memory(): return 0 on invalid max_block_size
Eric Biggers [Wed, 20 Aug 2014 02:35:51 +0000 (21:35 -0500)]
wimlib_get_compressor_needed_memory(): return 0 on invalid max_block_size

3 years agoMake create_decompressor() checks of max_block_size consistent
Eric Biggers [Wed, 20 Aug 2014 02:17:29 +0000 (21:17 -0500)]
Make create_decompressor() checks of max_block_size consistent

3 years agowimlib_create_{de,}compressor(): Check ctype first
Eric Biggers [Wed, 20 Aug 2014 02:04:39 +0000 (21:04 -0500)]
wimlib_create_{de,}compressor(): Check ctype first

3 years agowimlib_create_decompressor(): Fail if max_block_size == 0
Eric Biggers [Wed, 20 Aug 2014 02:03:58 +0000 (21:03 -0500)]
wimlib_create_decompressor(): Fail if max_block_size == 0

3 years agowimlib.h: Improve documentation for compression API
Eric Biggers [Wed, 20 Aug 2014 01:39:38 +0000 (20:39 -0500)]
wimlib.h: Improve documentation for compression API

3 years agoLZX: Allow max_block_size not a power of 2
Eric Biggers [Tue, 19 Aug 2014 03:48:53 +0000 (22:48 -0500)]
LZX: Allow max_block_size not a power of 2

This should be treated as an internal of LZX.

3 years agowimlib_decompress(): Check uncompressed_size
Eric Biggers [Tue, 19 Aug 2014 03:45:47 +0000 (22:45 -0500)]
wimlib_decompress(): Check uncompressed_size

3 years agolz_*.c: Use UINT32_MAX for default max_match_len
Eric Biggers [Tue, 19 Aug 2014 03:41:34 +0000 (22:41 -0500)]
lz_*.c: Use UINT32_MAX for default max_match_len

This avoids max_match_len < min_match_len on extremely small windows.

3 years agowimlib_compress(): Return 0 if uncompressed_size is invalid
Eric Biggers [Tue, 19 Aug 2014 03:38:48 +0000 (22:38 -0500)]
wimlib_compress(): Return 0 if uncompressed_size is invalid

3 years agowin32_apply.c: Use volume handle when enabling short names
Eric Biggers [Sun, 17 Aug 2014 21:58:18 +0000 (16:58 -0500)]
win32_apply.c: Use volume handle when enabling short names

Otherwise it doesn't work.

3 years agowin32_apply.c: Adjust short name behavior
Eric Biggers [Sun, 17 Aug 2014 16:18:47 +0000 (11:18 -0500)]
win32_apply.c: Adjust short name behavior

- Try to enable short names on the volume if it seems to be necessary to set
  short names.
- Without WIMLIB_EXTRACT_FLAG_STRICT_SHORT_NAMES, still warn about how many
  short names could not be set.

3 years agoxpress-decompress.c: Remove unnecessary bitstream_ensure_bits()
Eric Biggers [Sun, 17 Aug 2014 05:33:47 +0000 (00:33 -0500)]
xpress-decompress.c: Remove unnecessary bitstream_ensure_bits()

3 years agoLZX, XPRESS: Use optimized write_bits() functions
Eric Biggers [Sun, 17 Aug 2014 04:11:20 +0000 (23:11 -0500)]
LZX, XPRESS: Use optimized write_bits() functions

For LZX, no handling of literal bytes is needed.  Also, no padding at the end is
needed; omitting it improves the compression ratio slightly.

For XPRESS, no handling of bit counts > 16 is needed.

3 years agoRate limit VERIFY_STREAMS progress messages
Eric Biggers [Sat, 16 Aug 2014 17:37:58 +0000 (12:37 -0500)]
Rate limit VERIFY_STREAMS progress messages