wimlib
6 years agolzms_decompress.c: Add more information about delta matches
Eric Biggers [Sat, 7 Feb 2015 03:59:11 +0000 (21:59 -0600)]
lzms_decompress.c: Add more information about delta matches

6 years agoSuffix array based matchfinder updates
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

6 years ago1.7.5-BETA3
Eric Biggers [Fri, 30 Jan 2015 03:59:35 +0000 (21:59 -0600)]
1.7.5-BETA3

6 years agoMove errno translation to win32_replacements.c
Eric Biggers [Fri, 30 Jan 2015 03:24:57 +0000 (21:24 -0600)]
Move errno translation to win32_replacements.c

6 years agoWindows: improved error messages
Eric Biggers [Fri, 30 Jan 2015 01:16:28 +0000 (19:16 -0600)]
Windows: improved error messages

6 years agowin32_apply.c: in NO_ATTRIBUTES mode, reset file attributes
Eric Biggers [Fri, 30 Jan 2015 01:28:31 +0000 (19:28 -0600)]
win32_apply.c: in NO_ATTRIBUTES mode, reset file attributes

6 years agowin32-test-imagex-capture_and_apply.bat: fixes
Eric Biggers [Fri, 30 Jan 2015 00:46:30 +0000 (18:46 -0600)]
win32-test-imagex-capture_and_apply.bat: fixes

6 years agowin32_apply.c: adjust file creation
Eric Biggers [Thu, 29 Jan 2015 05:37:28 +0000 (23:37 -0600)]
win32_apply.c: adjust file creation

6 years agowin32-tree-cmp: Ignore directory sizes
Eric Biggers [Thu, 29 Jan 2015 06:25:19 +0000 (00:25 -0600)]
win32-tree-cmp: Ignore directory sizes

6 years agowin32-test-imagex-capture_and_apply.bat: add tests for empty named stream
Eric Biggers [Thu, 29 Jan 2015 05:13:36 +0000 (23:13 -0600)]
win32-test-imagex-capture_and_apply.bat: add tests for empty named stream

6 years agowin32-test-imagex-capture_and_apply.bat: add some tests
Eric Biggers [Thu, 29 Jan 2015 04:26:11 +0000 (22:26 -0600)]
win32-test-imagex-capture_and_apply.bat: add some tests

6 years agowin32-tree-cmp updates
Eric Biggers [Thu, 29 Jan 2015 03:05:30 +0000 (21:05 -0600)]
win32-tree-cmp updates

6 years agontfs-3g_apply.c: Don't claim to support encrypted directories
Eric Biggers [Thu, 29 Jan 2015 02:36:36 +0000 (20:36 -0600)]
ntfs-3g_apply.c: Don't claim to support encrypted directories

6 years agoUpdate NEWS
Eric Biggers [Wed, 28 Jan 2015 05:28:48 +0000 (23:28 -0600)]
Update NEWS

6 years agowin32_apply.c: fix restore of encrypted files and directories
Eric Biggers [Wed, 28 Jan 2015 05:18:51 +0000 (23:18 -0600)]
win32_apply.c: fix restore of encrypted files and directories

6 years agowin32_apply.c: test for EFS data before reparse data
Eric Biggers [Wed, 28 Jan 2015 04:31:41 +0000 (22:31 -0600)]
win32_apply.c: test for EFS data before reparse data

6 years agoextract.c: dentry_is_supported(): check all relevant attributes
Eric Biggers [Wed, 28 Jan 2015 04:30:22 +0000 (22:30 -0600)]
extract.c: dentry_is_supported(): check all relevant attributes

6 years agowin32_capture.c: use NULL instead of INVALID_HANDLE_VALUE
Eric Biggers [Wed, 28 Jan 2015 04:07:52 +0000 (22:07 -0600)]
win32_capture.c: use NULL instead of INVALID_HANDLE_VALUE

Code was correct, but since this is an NT-level handle NULL makes more
sense.

6 years agowin32_capture.c: adjust loading stream info from encrypted files
Eric Biggers [Wed, 28 Jan 2015 04:05:56 +0000 (22:05 -0600)]
win32_capture.c: adjust loading stream info from encrypted files

The previous code was not using ReadEncryptedFileRaw() on directories,
which is apparently needed.

6 years agoextract.c: check for empty extraction list
Eric Biggers [Wed, 28 Jan 2015 02:58:28 +0000 (20:58 -0600)]
extract.c: check for empty extraction list

6 years agowin32_capture.c: fix for opening encrypted files when key is unavailable
Eric Biggers [Wed, 28 Jan 2015 02:45:00 +0000 (20:45 -0600)]
win32_capture.c: fix for opening encrypted files when key is unavailable

6 years agoUpdate NEWS
Eric Biggers [Wed, 28 Jan 2015 01:14:36 +0000 (19:14 -0600)]
Update NEWS

6 years agowimlib_iterate_dir_tree(): iterate in default case order
Eric Biggers [Wed, 28 Jan 2015 01:09:36 +0000 (19:09 -0600)]
wimlib_iterate_dir_tree(): iterate in default case order

6 years agolz_lcpit: check against min_match_len ahead of time
Eric Biggers [Sun, 25 Jan 2015 20:53:06 +0000 (14:53 -0600)]
lz_lcpit: check against min_match_len ahead of time

6 years agolz_lcpit: pack SA and LCP into one array
Eric Biggers [Sun, 25 Jan 2015 19:36:00 +0000 (13:36 -0600)]
lz_lcpit: pack SA and LCP into one array

6 years agolz_lcpit: simplify and optimize build_LCPIT()
Eric Biggers [Sun, 25 Jan 2015 17:54:47 +0000 (11:54 -0600)]
lz_lcpit: simplify and optimize build_LCPIT()

6 years agoadd missing file: include/wimlib/alloca.h
Eric Biggers [Wed, 28 Jan 2015 00:03:09 +0000 (18:03 -0600)]
add missing file: include/wimlib/alloca.h

6 years agotools/make-windows-release: build with -DLIBXML_STATIC
Eric Biggers [Sun, 25 Jan 2015 16:47:05 +0000 (10:47 -0600)]
tools/make-windows-release: build with -DLIBXML_STATIC

This is needed to correctly link with xmlFree().

6 years agoheader cleanups
Eric Biggers [Sun, 25 Jan 2015 16:35:24 +0000 (10:35 -0600)]
header cleanups

6 years agoxml.c: Use xmlFree() for memory allocated by libxml2
Eric Biggers [Sun, 25 Jan 2015 01:47:28 +0000 (19:47 -0600)]
xml.c: Use xmlFree() for memory allocated by libxml2

6 years agoutil.c: Simplify wimlib_aligned_malloc()
Eric Biggers [Sun, 25 Jan 2015 01:36:13 +0000 (19:36 -0600)]
util.c: Simplify wimlib_aligned_malloc()

6 years agoupdate_image.c: handle_conflict(): fix freeing of unused branch
Eric Biggers [Sun, 25 Jan 2015 00:43:42 +0000 (18:43 -0600)]
update_image.c: handle_conflict(): fix freeing of unused branch

If the directory has alternate data streams, they should be freed here.

6 years agoClean up inode alias tracking
Eric Biggers [Sat, 24 Jan 2015 16:20:12 +0000 (10:20 -0600)]
Clean up inode alias tracking

New helper functions:

- d_associate()
- d_disassociate()

i_nlink, d_inode, and i_dentry are no longer changed outside of these
functions.  We maintain the invariants:

i_nlink == list_size(&i_dentry) == # of d_inode references

put_inode() is removed; free_inode() is now private to inode.c.

This fixes at least one bug: when freeing a dentry, it was not being
deleted from the inode's dentry list.

6 years agolzx_compress.c: adjust saving of length 2 matches
Eric Biggers [Tue, 20 Jan 2015 00:04:14 +0000 (18:04 -0600)]
lzx_compress.c: adjust saving of length 2 matches

6 years agolzx_compress.c: cleanups
Eric Biggers [Wed, 14 Jan 2015 03:55:46 +0000 (21:55 -0600)]
lzx_compress.c: cleanups

6 years agoLZ hashing cleanup
Eric Biggers [Wed, 14 Jan 2015 03:48:01 +0000 (21:48 -0600)]
LZ hashing cleanup

6 years agoEnsure validity of max_search_depth
Eric Biggers [Mon, 12 Jan 2015 02:06:41 +0000 (20:06 -0600)]
Ensure validity of max_search_depth

6 years agowimlib.h: Fix documentation for compression block sizes
Eric Biggers [Mon, 12 Jan 2015 01:03:10 +0000 (19:03 -0600)]
wimlib.h: Fix documentation for compression block sizes

6 years agolzx_compress.c: Clarify some array bounds
Eric Biggers [Sun, 11 Jan 2015 21:30:29 +0000 (15:30 -0600)]
lzx_compress.c:  Clarify some array bounds

6 years agov1.7.5-BETA
Eric Biggers [Sun, 11 Jan 2015 16:40:26 +0000 (10:40 -0600)]
v1.7.5-BETA

6 years agoMerge LZX compression updates
Eric Biggers [Sun, 11 Jan 2015 16:24:07 +0000 (10:24 -0600)]
Merge LZX compression updates

6 years agov1.7.4 v1.7.4
Eric Biggers [Sat, 3 Jan 2015 02:01:26 +0000 (20:01 -0600)]
v1.7.4

6 years agolzms_compress.c: honor LZMS_MAX_BUFFER_SIZE
Eric Biggers [Sat, 3 Jan 2015 01:43:00 +0000 (19:43 -0600)]
lzms_compress.c: honor LZMS_MAX_BUFFER_SIZE

6 years agoMisc. cleanups
Eric Biggers [Sat, 3 Jan 2015 00:25:50 +0000 (18:25 -0600)]
Misc. cleanups

6 years agoRestore -std=gnu99 instead of -std=c99
Eric Biggers [Tue, 30 Dec 2014 03:31:51 +0000 (21:31 -0600)]
Restore -std=gnu99 instead of -std=c99

6 years agoAdjust endianness detection
Eric Biggers [Tue, 30 Dec 2014 03:26:06 +0000 (21:26 -0600)]
Adjust endianness detection

__BYTE_ORDER__ isn't available in older gcc, unfortunately.

6 years agoREADME: update COMPRESSION RATIO section
Eric Biggers [Tue, 30 Dec 2014 02:40:53 +0000 (20:40 -0600)]
README: update COMPRESSION RATIO section

6 years agoUse --enable-ssse3-sha1 for x86_64 Windows builds
Eric Biggers [Tue, 30 Dec 2014 03:01:07 +0000 (21:01 -0600)]
Use --enable-ssse3-sha1 for x86_64 Windows builds

6 years agoCleanups from recent changes
Eric Biggers [Mon, 29 Dec 2014 02:03:09 +0000 (20:03 -0600)]
Cleanups from recent changes

6 years agoAdjust naming of (de)compression files
Eric Biggers [Fri, 26 Dec 2014 20:16:44 +0000 (14:16 -0600)]
Adjust naming of (de)compression files

6 years agoLZMS: decompression optimizations
Eric Biggers [Fri, 26 Dec 2014 16:56:16 +0000 (10:56 -0600)]
LZMS: decompression optimizations

6 years agoLZMS: optimize lzms_x86_filter()
Eric Biggers [Thu, 25 Dec 2014 02:33:49 +0000 (20:33 -0600)]
LZMS: optimize lzms_x86_filter()

6 years agoresource.c: Don't manually align buffer for uncompressed data
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.

6 years agoLZX pre/post-processing improvements
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

6 years agomake-windows-release: get version number from configure.ac, not README
Eric Biggers [Tue, 23 Dec 2014 19:07:32 +0000 (13:07 -0600)]
make-windows-release: get version number from configure.ac, not README

6 years agoFaster XPRESS compression
Eric Biggers [Tue, 23 Dec 2014 05:16:38 +0000 (23:16 -0600)]
Faster XPRESS compression

6 years agotools/windeps/Makefile: update sources list
Eric Biggers [Fri, 19 Dec 2014 23:44:02 +0000 (17:44 -0600)]
tools/windeps/Makefile: update sources list

6 years agomkwinpeimg.1: missed an autoconf substitution
Eric Biggers [Fri, 19 Dec 2014 05:01:16 +0000 (23:01 -0600)]
mkwinpeimg.1: missed an autoconf substitution

6 years agoWindows build updates
Eric Biggers [Fri, 19 Dec 2014 03:38:48 +0000 (21:38 -0600)]
Windows build updates

6 years agoAdd ax_pthread.m4
Eric Biggers [Tue, 16 Dec 2014 05:50:04 +0000 (23:50 -0600)]
Add ax_pthread.m4

6 years agoconfigure.ac cleanup
Eric Biggers [Tue, 16 Dec 2014 04:55:03 +0000 (22:55 -0600)]
configure.ac cleanup

6 years agoMakefile.am cleanup
Eric Biggers [Tue, 16 Dec 2014 02:55:53 +0000 (20:55 -0600)]
Makefile.am cleanup

6 years agoutf16le_dupz() input may be misaligned
Eric Biggers [Tue, 16 Dec 2014 02:33:59 +0000 (20:33 -0600)]
utf16le_dupz() input may be misaligned

6 years agoDon't run man pages through configure
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.

6 years agoRemove support for --with-imagex-progname configure option
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.

6 years agoRemove support for --enable-more-assertions configure option
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.

6 years agoENABLE_MORE_DEBUG no longer exists
Eric Biggers [Tue, 16 Dec 2014 00:10:39 +0000 (18:10 -0600)]
ENABLE_MORE_DEBUG no longer exists

6 years agoinode.h, inode.c cleanup
Eric Biggers [Sun, 14 Dec 2014 21:03:40 +0000 (15:03 -0600)]
inode.h, inode.c cleanup

6 years agoClean up util.h and util.c
Eric Biggers [Sun, 14 Dec 2014 19:51:40 +0000 (13:51 -0600)]
Clean up util.h and util.c

- Move logging/error code into new file error.c
- Remove ZERO_ARRAY()
- Move path separator macros into paths.h
- Comment improvements
- Remove support for undocumented WIMLIB_DEBUG environmental variable

6 years agoHeader fixes
Eric Biggers [Sun, 14 Dec 2014 19:43:09 +0000 (13:43 -0600)]
Header fixes

6 years agoreference.c: correct rollback in error paths
Eric Biggers [Sun, 14 Dec 2014 18:05:52 +0000 (12:05 -0600)]
reference.c: correct rollback in error paths

previous implementation had several problems:

- use of 'out_refcnt' was wrong (it wasn't guaranteed to be 0 beforehand)
- globs were rolled back individually, not together

This commit correctly implements full rollback for both
wimlib_reference_resources() and wimlib_reference_resource_files().

6 years agoupdate_image.c: Add file comment
Eric Biggers [Sun, 14 Dec 2014 05:55:29 +0000 (23:55 -0600)]
update_image.c: Add file comment

6 years agoGet rid of wimlib/version.h
Eric Biggers [Sun, 14 Dec 2014 04:38:18 +0000 (22:38 -0600)]
Get rid of wimlib/version.h

6 years agoCleanup timestamp conversion code
Eric Biggers [Sun, 14 Dec 2014 03:26:06 +0000 (21:26 -0600)]
Cleanup timestamp conversion code

6 years agotagged_items.c: length should be rounded up when adding item
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.

6 years agowim.h: reorganize WIMStruct fields and update comments
Eric Biggers [Sun, 14 Dec 2014 00:05:56 +0000 (18:05 -0600)]
wim.h: reorganize WIMStruct fields and update comments

6 years agonew internal image deletion helper
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.

6 years agoexport_image.c: adjust error message
Eric Biggers [Sat, 13 Dec 2014 19:21:48 +0000 (13:21 -0600)]
export_image.c: adjust error message

6 years agoWIMStruct: Rename 'deletion_occurred' to 'image_deletion_occurred'
Eric Biggers [Sat, 13 Dec 2014 19:20:19 +0000 (13:20 -0600)]
WIMStruct: Rename 'deletion_occurred' to 'image_deletion_occurred'

6 years agoinode_fixup.h: remove unnecessary #include
Eric Biggers [Sat, 13 Dec 2014 19:17:12 +0000 (13:17 -0600)]
inode_fixup.h: remove unnecessary #include

6 years agolz_extend: little endian CPU is necessary for byte count to work
Eric Biggers [Thu, 11 Dec 2014 01:45:07 +0000 (19:45 -0600)]
lz_extend: little endian CPU is necessary for byte count to work

6 years agoAnnotate yet another unaligned memory access
Eric Biggers [Thu, 11 Dec 2014 01:14:40 +0000 (19:14 -0600)]
Annotate yet another unaligned memory access

6 years agoUpdate version to v1.7.4-BETA
Eric Biggers [Wed, 10 Dec 2014 04:53:21 +0000 (22:53 -0600)]
Update version to v1.7.4-BETA

6 years agoportability and compression cleanups
Eric Biggers [Wed, 10 Dec 2014 01:40:17 +0000 (19:40 -0600)]
portability and compression cleanups

- Split compiler.h into compiler.h and compiler-gcc.h
- Compile with -std=c99. Some GCC extensions are still used but they are
  explicitly defined in compiler-gcc.h.
- Add get_unaligned_uXX_le() and put_unaligned_uXX_le() helpers
- Faster lz_copy() in some cases
- Faster lz_extend() in some cases
- New bitops.h header

7 years agocleanups
Eric Biggers [Sat, 6 Dec 2014 17:42:37 +0000 (11:42 -0600)]
cleanups

7 years agoWorkaround for FILE_SUPERSEDE being broken in Windows PE ramdisk
Eric Biggers [Wed, 26 Nov 2014 04:26:29 +0000 (22:26 -0600)]
Workaround for FILE_SUPERSEDE being broken in Windows PE ramdisk

7 years agoAdd some missing config.h includes
Eric Biggers [Sat, 22 Nov 2014 04:02:15 +0000 (22:02 -0600)]
Add some missing config.h includes

7 years agolzms-compress.c: Remove unused function
Eric Biggers [Sat, 22 Nov 2014 03:59:39 +0000 (21:59 -0600)]
lzms-compress.c: Remove unused function

7 years agomount_image.c: Replace use of zero-length array
Eric Biggers [Sat, 22 Nov 2014 03:42:35 +0000 (21:42 -0600)]
mount_image.c: Replace use of zero-length array

7 years agoRemove unused 'wim' argument to read_metadata_resource()
Eric Biggers [Sat, 22 Nov 2014 03:40:05 +0000 (21:40 -0600)]
Remove unused 'wim' argument to read_metadata_resource()

7 years agolist.h cleanup
Eric Biggers [Sat, 22 Nov 2014 03:17:02 +0000 (21:17 -0600)]
list.h cleanup

7 years agoUse quote includes for all internal headers
Eric Biggers [Sat, 22 Nov 2014 03:03:01 +0000 (21:03 -0600)]
Use quote includes for all internal headers

7 years agosha1.c: Annotate potential unaligned memory accesses in sha1_final()
Eric Biggers [Thu, 20 Nov 2014 03:43:21 +0000 (21:43 -0600)]
sha1.c: Annotate potential unaligned memory accesses in sha1_final()

7 years agolookup_table.c: Annotate potential unaligned memory access in lookup_stream()
Eric Biggers [Thu, 20 Nov 2014 03:41:37 +0000 (21:41 -0600)]
lookup_table.c: Annotate potential unaligned memory access in lookup_stream()

7 years agowimlib.h: Fix error in wimlib_get_version() documentation
Eric Biggers [Sat, 15 Nov 2014 16:13:00 +0000 (10:13 -0600)]
wimlib.h: Fix error in wimlib_get_version() documentation

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

7 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()

7 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

7 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.

7 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