Eric Biggers [Wed, 18 Feb 2015 02:38:23 +0000 (20:38 -0600)]
win32_capture.c: Use CREATE_FOR_DIR flag for encrypted directories
Oddly enough, this is required when reading the EFS data for an encrypted
directory with named data streams, even though MS's documentation
suggests that CREATE_FOR_DIR only has an effect for import.
Eric Biggers [Fri, 13 Feb 2015 07:13:15 +0000 (01:13 -0600)]
LCP-interval tree matchfinder improvements
- Adjust the algorithm to remove the need to have an "unvisited" flag in
normal mode.
- Prefetch upcoming SA_and_LCP entries during LCP construction.
- Get rid of lcpit_matchfinder_templates.h, since the "huge mode"
algorithm isn't quite the same as the regular algorithm anymore.
- Improve documentation.
Eric Biggers [Fri, 13 Feb 2015 01:01:06 +0000 (19:01 -0600)]
Rewrite of LZMS compressor
- Delta match support
- Multi-step item consideration in selected cases
- Various refactoring; updates to comments and names; some changes to
decompressor as well
- Remove pthreads dependency
Eric Biggers [Sat, 31 Jan 2015 23:51:23 +0000 (17:51 -0600)]
Suffix array based matchfinder updates
- Move LCP-interval tree matchfinder to lcpit_matchfinder.c
- Support buffer sizes > 2^25 in LCP-interval tree matchfinder
- Reduce code duplication in LCP-interval tree routines
- Remove linked suffix array matchfinder
- Remove lz_mf matchfinder API
- Update LZMS compressor to use new LCP-interval tree matchfinder routines
Eric Biggers [Thu, 25 Dec 2014 02:06:42 +0000 (20:06 -0600)]
resource.c: Don't manually align buffer for uncompressed data
The main reason this was being done was to speed up LZX postprocessing,
but that now can use the vectorized version (with a tiny bit of overhead)
even if the start of the buffer is not 16-byte aligned.
Eric Biggers [Thu, 25 Dec 2014 01:58:04 +0000 (19:58 -0600)]
LZX pre/post-processing improvements
- much faster inner loop for non-vectorized version
- use either SSE2 or AVX-2 for vectorized version
- faster inner loop for vectorized version
- support vectorized version on buffers that are not properly aligned
Eric Biggers [Tue, 16 Dec 2014 01:45:49 +0000 (19:45 -0600)]
Don't run man pages through configure
The only remaining reason is to update the version number, but there is
already a sed command being run to update all the dates. So we might as
well simplify by just having the unmodified man pages.
Eric Biggers [Tue, 16 Dec 2014 01:25:36 +0000 (19:25 -0600)]
Remove support for --with-imagex-progname configure option
The program is always called "wimlib-imagex" now. I expect no one is
using the configuration option, and nothing stops the user from renaming
the binary anyway.
Eric Biggers [Tue, 16 Dec 2014 00:20:29 +0000 (18:20 -0600)]
Remove support for --enable-more-assertions configure option
The only uses of wimlib_assert2() were in compression code (where
problems are relatively easy to detect), and this option was disabled by
default anyway. Simplify by just having one kind of assertion.
Eric Biggers [Sun, 14 Dec 2014 01:40:02 +0000 (19:40 -0600)]
tagged_items.c: length should be rounded up when adding item
Also 0-fill the new item, including the padding.
These changes have no effect on the only caller of
inode_add_tagged_item() but should be made for correctness in case this
function gets more callers in the future.
Eric Biggers [Sat, 13 Dec 2014 19:38:31 +0000 (13:38 -0600)]
new internal image deletion helper
Define a new helper function delete_wim_image() and use in
wimlib_delete_image() and in the error path of
wimlib_add_image_multisource().
This fixes a bug: current_image wasn't being reset to WIMLIB_NO_IMAGE in
the error path of wimlib_add_image_multisource(). Bad things would
happen if the library user then continued to use the same WIMStruct.