Eric Biggers [Sat, 2 May 2015 21:54:38 +0000 (16:54 -0500)]
write: various cleanups
- When writing or overwriting WIM file, fill in a new variable
wim->out_hdr instead of overwriting wim->hdr which was subject to bugs
- When writing WIM file, create new header from scratch instead of
copying old one
- Remove redundant private flags
- Remove debug statements (they are rarely used, outdated, and now
missing from most parts of the library)
Eric Biggers [Thu, 2 Apr 2015 01:43:36 +0000 (20:43 -0500)]
Trim down 'flags' member of 'struct blob_descriptor'
Most "blob" flags were actually only meaningful for WIM resources.
Resource flags are actually saved in the 'flags' member of 'struct
wim_resource_descriptor', and we don't need to duplicate them in 'struct
blob_descriptor'.
Eric Biggers [Tue, 17 Mar 2015 03:17:15 +0000 (22:17 -0500)]
Stream and blob updates
- Rename "lookup table entry" to "blob descriptor"
- Rename "lookup table" to "blob table"
- Use single array for all an inode's streams
- Explicitly annotate each stream with its type
- Account for fact that EFSRPC raw data includes all data streams
- Other cleanups
Eric Biggers [Sun, 15 Mar 2015 01:22:22 +0000 (20:22 -0500)]
win32_apply.c: handle target directory more like other directories
If we don't send the target directory through the same code path as the
other directories, we can run into several inconsistencies such as empty
named data streams not being created and compression attributes not being
set or cleared.
We actually *can* send the target directory through create_directory() as
long as we don't ask for DELETE access (in case it's the current working
directory) or set its short name (since that doesn't make sense anyway).
Eric Biggers [Sun, 15 Mar 2015 01:11:13 +0000 (20:11 -0500)]
win32-test-imagex-capture_and_apply improvements
- Make test failure message always get printed if anything goes wrong
- Fix bad file comparison
- Apply the WIM image twice to test the existing files case
- Add test for a readonly directory with a named data stream
- Add test for root directory with empty named data stream
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