wimlib
6 years agonew_wim_struct(): Use filedes_invalidate()
Eric Biggers [Tue, 14 Jan 2014 18:56:20 +0000 (12:56 -0600)]
new_wim_struct(): Use filedes_invalidate()

6 years agowin32_delete_file_wrapper(): Check for INVALID_FILE_ATTRIBUTES
Eric Biggers [Mon, 13 Jan 2014 20:35:12 +0000 (14:35 -0600)]
win32_delete_file_wrapper(): Check for INVALID_FILE_ATTRIBUTES

6 years agoUpdate NEWS
Eric Biggers [Mon, 13 Jan 2014 20:34:57 +0000 (14:34 -0600)]
Update NEWS

6 years agoSimplify two warning messages
Eric Biggers [Mon, 13 Jan 2014 20:15:57 +0000 (14:15 -0600)]
Simplify two warning messages

6 years agowin32_set_security_descriptor(): Do not request MAXIMUM_ALLOWED
Eric Biggers [Mon, 13 Jan 2014 19:41:43 +0000 (13:41 -0600)]
win32_set_security_descriptor(): Do not request MAXIMUM_ALLOWED

6 years agowin32_apply.c: Work around deleting READONLY files
Eric Biggers [Mon, 13 Jan 2014 19:01:51 +0000 (13:01 -0600)]
win32_apply.c:  Work around deleting READONLY files

6 years agowrite_stream_list(): Do not create threads to compress 1 chunk or less
Eric Biggers [Mon, 13 Jan 2014 06:30:50 +0000 (00:30 -0600)]
write_stream_list(): Do not create threads to compress 1 chunk or less

6 years agoread_wim_lookup_table(): Zero fields of resource spec until known
Eric Biggers [Mon, 13 Jan 2014 06:07:40 +0000 (00:07 -0600)]
read_wim_lookup_table():  Zero fields of resource spec until known

This code was removed by b6034a5dd44709341c46d553b1c0294ec91f13e4
but it was needed to ensure that 'back_to_back_pack' doesn't get set
at the wrong time.

6 years agoFix references to hardlink.c
Eric Biggers [Mon, 13 Jan 2014 05:26:02 +0000 (23:26 -0600)]
Fix references to hardlink.c

6 years agocapture.h: Remove duplicate definitions
Eric Biggers [Mon, 13 Jan 2014 05:24:57 +0000 (23:24 -0600)]
capture.h:  Remove duplicate definitions

6 years agoUpdate version to v1.6.1-BETA
Eric Biggers [Mon, 13 Jan 2014 05:16:42 +0000 (23:16 -0600)]
Update version to v1.6.1-BETA

6 years agoRefactor some of the dentry, inode, and lookup table code
Eric Biggers [Mon, 13 Jan 2014 04:50:01 +0000 (22:50 -0600)]
Refactor some of the dentry, inode, and lookup table code

- Remove hardlink.c.  Its code is now split between inode.c and
  inode_fixup.c.
- Factor inode-related code out of dentry.h and dentry.c and place in
  inode.h and inode.c.
- Move wimlib_reference_resource_files() and wimlib_reference_resources()
  implementations to reference.c.
- Move wimlib_iterate_dir_tree() implementation to iterate_dir.c.
- Move wimlib_reference_template_image() to template.c.
- Move wim_pathname_to_stream() to dentry.c as it deals primarily with
  path walking.
- Remove 'unhashed_streams' member from 'struct wim_lookup_table'.  It
  now is stored separately in 'struct add_image_params'.
- Rename some *resource functions to *stream.
- Rename set_dentry_name() => dentry_set_name().
- Move 'struct ntfs_location' definition to ntfs_3g.h.
- Move UNIX data definitions to new header unix_data.h.
- Move case sensitivity definitions to new header case.h.

6 years agowimlib-imagex: Add --solid as alias for --pack-streams
Eric Biggers [Sun, 12 Jan 2014 23:11:14 +0000 (17:11 -0600)]
wimlib-imagex: Add --solid as alias for --pack-streams

6 years agoread_dentry_tree(): Fix typo in error message
Eric Biggers [Sun, 12 Jan 2014 22:55:30 +0000 (16:55 -0600)]
read_dentry_tree(): Fix typo in error message

6 years agoLZMS: Do not do x86 translations starting in last 16 bytes
Eric Biggers [Sun, 12 Jan 2014 22:49:09 +0000 (16:49 -0600)]
LZMS:  Do not do x86 translations starting in last 16 bytes

The value used before (last 11 bytes) was wrong; based on tests with the
MS implementation no translation can occur following an opcode starting
in the last 16 bytes of a data block.

Tested with two different length opcodes to make sure that it's the start
of the opcode that matters, not the start of the translated address.

6 years agoREADME: COMPRESSION RATIO: Fix capitalization
Eric Biggers [Sun, 12 Jan 2014 21:28:00 +0000 (15:28 -0600)]
README: COMPRESSION RATIO: Fix capitalization

6 years agoREADME: Update "COMPRESSION RATIO" section
Eric Biggers [Sun, 12 Jan 2014 18:38:30 +0000 (12:38 -0600)]
README: Update "COMPRESSION RATIO" section

6 years agowin32_wglob(): Improve setting of errno
Eric Biggers [Sun, 12 Jan 2014 06:47:28 +0000 (00:47 -0600)]
win32_wglob(): Improve setting of errno

6 years agowimfs_readlink(): Return -EINVAL if buf_len == 0, not -ENAMETOOLONG
Eric Biggers [Sun, 12 Jan 2014 06:37:08 +0000 (00:37 -0600)]
wimfs_readlink(): Return -EINVAL if buf_len == 0, not -ENAMETOOLONG

6 years agowim_inode_readlink(): Document
Eric Biggers [Sun, 12 Jan 2014 06:34:43 +0000 (00:34 -0600)]
wim_inode_readlink():  Document

6 years agoexecute_fusermount(): Check status of 'umount' properly
Eric Biggers [Sun, 12 Jan 2014 05:38:37 +0000 (23:38 -0600)]
execute_fusermount(): Check status of 'umount' properly

Code is only reached if fusermount command does not work.

6 years agounmount_timed_out_cb(): Do not check errno if kill() succeeds
Eric Biggers [Sun, 12 Jan 2014 05:25:31 +0000 (23:25 -0600)]
unmount_timed_out_cb():  Do not check errno if kill() succeeds

6 years agolz_sarray: Fix some comments
Eric Biggers [Fri, 10 Jan 2014 16:40:43 +0000 (10:40 -0600)]
lz_sarray:  Fix some comments

6 years agolz_sarray: Performance and memory usage optimizations
Eric Biggers [Fri, 10 Jan 2014 08:02:05 +0000 (02:02 -0600)]
lz_sarray:  Performance and memory usage optimizations

6 years agolz_sarray: Use 16-bit length
Eric Biggers [Thu, 9 Jan 2014 21:04:11 +0000 (15:04 -0600)]
lz_sarray:  Use 16-bit length

This saves 4 bytes of memory per position and only decreases the
compression ratio on very repetitive files (with matches of length >
65535), and even then only slightly.  Performance is not significantly
affected but may be slightly improved due to better use of cache.

6 years agowimlib_iterate_dir_tree(): Canonicalize WIM path
Eric Biggers [Wed, 8 Jan 2014 02:32:39 +0000 (20:32 -0600)]
wimlib_iterate_dir_tree(): Canonicalize WIM path

6 years agoCache compression format in 'struct wim_resource_spec'
Eric Biggers [Wed, 8 Jan 2014 01:10:22 +0000 (19:10 -0600)]
Cache compression format in 'struct wim_resource_spec'

6 years agoUpdate NEWS
Eric Biggers [Wed, 8 Jan 2014 00:23:17 +0000 (18:23 -0600)]
Update NEWS

6 years agowimlib_extract_paths(): Canonicalize WIM paths before using them
Eric Biggers [Wed, 8 Jan 2014 00:14:46 +0000 (18:14 -0600)]
wimlib_extract_paths():  Canonicalize WIM paths before using them

6 years agoexpand_wildcard(): Only recognize WIM_PATH_SEPARATOR
Eric Biggers [Wed, 8 Jan 2014 00:10:10 +0000 (18:10 -0600)]
expand_wildcard(): Only recognize WIM_PATH_SEPARATOR

For consistency with get_dentry(), only treat WIM_PATH_SEPARATOR
characters as path separators.

6 years agodentry.c: Rewrite and document get_dentry()
Eric Biggers [Tue, 7 Jan 2014 23:59:43 +0000 (17:59 -0600)]
dentry.c:  Rewrite and document get_dentry()

Fully document the behavior of get_dentry(), and make paths with trailing
path separators only match directories.

6 years agowrite_stream_list(): Fix comments
Eric Biggers [Tue, 7 Jan 2014 21:11:38 +0000 (15:11 -0600)]
write_stream_list(): Fix comments

6 years agoHandle streams with uncompressed size 4 GiB consistently
Eric Biggers [Tue, 7 Jan 2014 20:33:56 +0000 (14:33 -0600)]
Handle streams with uncompressed size 4 GiB consistently

The read code went to 8-byte chunk entries for uncompressed size >
4294967296, whereas the write code went to 8-byte chunk entries for
uncompressed size >= 4294967296.  Change both to >= 4294967296.
Confirmed that WIMGAPI (Windows 7) seems to have this behavior.

6 years agoread_stream_list(): Spill huge data ranges array onto heap
Eric Biggers [Tue, 7 Jan 2014 19:20:38 +0000 (13:20 -0600)]
read_stream_list():  Spill huge data ranges array onto heap

There can be thousands of streams packed into a single resource, so it's
a good idea to check if the data_ranges array is really small enough to
be allocated on the stack or not, and if not, allocate it on the heap
instead.

For readability and to create a temporary frame for alloca(), place the
relevant code in a new function read_packed_streams().

6 years agov1.6.0 v1.6.0
Eric Biggers [Thu, 2 Jan 2014 21:07:57 +0000 (15:07 -0600)]
v1.6.0

6 years agoimagex-capture.1.in: Minor updates
Eric Biggers [Thu, 2 Jan 2014 21:03:29 +0000 (15:03 -0600)]
imagex-capture.1.in:  Minor updates

6 years agoFix typos
Eric Biggers [Thu, 2 Jan 2014 20:46:24 +0000 (14:46 -0600)]
Fix typos

6 years agoUpdate examples
Eric Biggers [Thu, 2 Jan 2014 20:20:07 +0000 (14:20 -0600)]
Update examples

6 years agoUpdate NEWS
Eric Biggers [Thu, 2 Jan 2014 18:12:28 +0000 (12:12 -0600)]
Update NEWS

6 years agowimlib.h: Group wimlib_extract_path{s,list}()
Eric Biggers [Thu, 2 Jan 2014 17:54:12 +0000 (11:54 -0600)]
wimlib.h: Group wimlib_extract_path{s,list}()

6 years agowimlib.h: Fix docs for version and compression types
Eric Biggers [Thu, 2 Jan 2014 17:50:44 +0000 (11:50 -0600)]
wimlib.h: Fix docs for version and compression types

6 years agowimlib.h: Doxygen fixes
Eric Biggers [Thu, 2 Jan 2014 17:33:25 +0000 (11:33 -0600)]
wimlib.h: Doxygen fixes

6 years agomatch_pattern(): No DEBUG if pattern does not match
Eric Biggers [Thu, 2 Jan 2014 17:16:54 +0000 (11:16 -0600)]
match_pattern(): No DEBUG if pattern does not match

6 years agolzx-compress.c: Remove unneeded headers
Eric Biggers [Thu, 2 Jan 2014 17:08:39 +0000 (11:08 -0600)]
lzx-compress.c: Remove unneeded headers

6 years agoxpress-compress.c: Remove unneeded includes
Eric Biggers [Thu, 2 Jan 2014 17:01:24 +0000 (11:01 -0600)]
xpress-compress.c: Remove unneeded includes

6 years agolz_sarray_update_salink(): Only take rank and link array as input
Eric Biggers [Thu, 2 Jan 2014 16:49:56 +0000 (10:49 -0600)]
lz_sarray_update_salink(): Only take rank and link array as input

6 years agocompute_inverse_suffix_array(): Use r for rank, not i
Eric Biggers [Thu, 2 Jan 2014 16:34:00 +0000 (10:34 -0600)]
compute_inverse_suffix_array(): Use r for rank, not i

6 years agoRemove unused LZ_DEBUG() macro
Eric Biggers [Thu, 2 Jan 2014 16:32:21 +0000 (10:32 -0600)]
Remove unused LZ_DEBUG() macro

6 years agolz_optimal.h: Minor comment fixes
Eric Biggers [Thu, 2 Jan 2014 16:24:03 +0000 (10:24 -0600)]
lz_optimal.h: Minor comment fixes

6 years agolz_optimal.h: Fix typedefs
Eric Biggers [Thu, 2 Jan 2014 16:15:54 +0000 (10:15 -0600)]
lz_optimal.h:  Fix typedefs

6 years agolz_optimal.h: Move struct lz_match_chooser towards top
Eric Biggers [Thu, 2 Jan 2014 16:13:16 +0000 (10:13 -0600)]
lz_optimal.h:  Move struct lz_match_chooser towards top

6 years agoimagex: set_compress_slow(): Remove unused variable
Eric Biggers [Thu, 2 Jan 2014 16:00:06 +0000 (10:00 -0600)]
imagex: set_compress_slow(): Remove unused variable

6 years agolzms-compress.c: Fix initialization of lzms_default
Eric Biggers [Thu, 2 Jan 2014 15:59:20 +0000 (09:59 -0600)]
lzms-compress.c: Fix initialization of lzms_default

6 years agolzms-compress.c: Remove unused constant
Eric Biggers [Thu, 2 Jan 2014 15:57:07 +0000 (09:57 -0600)]
lzms-compress.c: Remove unused constant

6 years agolzms-compress.c: Remove unused code for lzms_fast_encode()
Eric Biggers [Thu, 2 Jan 2014 15:55:50 +0000 (09:55 -0600)]
lzms-compress.c:  Remove unused code for lzms_fast_encode()

6 years agolzms-decompress.c: Fix indentation
Eric Biggers [Thu, 2 Jan 2014 07:08:10 +0000 (01:08 -0600)]
lzms-decompress.c:  Fix indentation

6 years agoUpdate references to LZMS compressor
Eric Biggers [Thu, 2 Jan 2014 06:51:32 +0000 (00:51 -0600)]
Update references to LZMS compressor

6 years agolzms_init_compressor(): Do not zero end of window
Eric Biggers [Thu, 2 Jan 2014 06:43:18 +0000 (00:43 -0600)]
lzms_init_compressor(): Do not zero end of window

6 years agoAdd wimlib_get_compressor_needed_memory()
Eric Biggers [Thu, 2 Jan 2014 06:28:48 +0000 (00:28 -0600)]
Add wimlib_get_compressor_needed_memory()

6 years agocompress_parallel.c: Use 1 buffer per thread if chunks are big
Eric Biggers [Thu, 2 Jan 2014 05:11:59 +0000 (23:11 -0600)]
compress_parallel.c:  Use 1 buffer per thread if chunks are big

6 years agoLZMS: Accelerate slot-finding
Eric Biggers [Thu, 2 Jan 2014 04:54:03 +0000 (22:54 -0600)]
LZMS:  Accelerate slot-finding

6 years agoUpdate LZMS compressor
Eric Biggers [Thu, 2 Jan 2014 01:54:32 +0000 (19:54 -0600)]
Update LZMS compressor

6 years agoFix error string for WIMLIB_ERR_INVALID_COMPRESSION_TYPE
Eric Biggers [Wed, 1 Jan 2014 22:21:29 +0000 (16:21 -0600)]
Fix error string for WIMLIB_ERR_INVALID_COMPRESSION_TYPE

6 years agoReplace num_fast_bytes => nice_match_length
Eric Biggers [Wed, 1 Jan 2014 21:43:19 +0000 (15:43 -0600)]
Replace num_fast_bytes => nice_match_length

There is no binary tree match-finder anymore, so 'nice_match_length'
makes more sense.

6 years agolz_sarray.{c,h}: Cleanup, better comments
Eric Biggers [Wed, 1 Jan 2014 21:39:22 +0000 (15:39 -0600)]
lz_sarray.{c,h}:  Cleanup, better comments

6 years agoUse BSD-style license on selected files
Eric Biggers [Wed, 1 Jan 2014 17:48:29 +0000 (11:48 -0600)]
Use BSD-style license on selected files

6 years agolz_optimal.h: Cleanup, better comments
Eric Biggers [Wed, 1 Jan 2014 17:34:14 +0000 (11:34 -0600)]
lz_optimal.h: Cleanup, better comments

6 years agoUpdate LZMS match-choosing
Eric Biggers [Mon, 30 Dec 2013 06:52:50 +0000 (00:52 -0600)]
Update LZMS match-choosing

6 years agoFactor out LZ match-choosing code
Eric Biggers [Mon, 30 Dec 2013 04:50:45 +0000 (22:50 -0600)]
Factor out LZ match-choosing code

6 years agoUpdate LZMS LRU queue handling
Eric Biggers [Mon, 30 Dec 2013 02:59:08 +0000 (20:59 -0600)]
Update LZMS LRU queue handling

6 years agoFix test for length 2 matches
Eric Biggers [Mon, 30 Dec 2013 02:02:50 +0000 (20:02 -0600)]
Fix test for length 2 matches

6 years agoSeparate suffix array match-finder from LZX compressor
Eric Biggers [Mon, 30 Dec 2013 01:37:39 +0000 (19:37 -0600)]
Separate suffix array match-finder from LZX compressor

6 years agoimagex-update.1.in: Add note about setting ignore case
Eric Biggers [Tue, 31 Dec 2013 19:48:57 +0000 (13:48 -0600)]
imagex-update.1.in:  Add note about setting ignore case

6 years agomkwinpeimg.1: Add suggestion to use wimlib-imagex
Eric Biggers [Tue, 31 Dec 2013 19:43:28 +0000 (13:43 -0600)]
mkwinpeimg.1:  Add suggestion to use wimlib-imagex

6 years agomkwinpeimg: Make compatible with Syslinux version 6
Eric Biggers [Tue, 31 Dec 2013 19:36:39 +0000 (13:36 -0600)]
mkwinpeimg: Make compatible with Syslinux version 6

6 years agoimagex_progress_func(): Fix variable
Eric Biggers [Tue, 31 Dec 2013 00:13:36 +0000 (18:13 -0600)]
imagex_progress_func(): Fix variable

6 years agoFix completed_streams of write streams progress and update docs
Eric Biggers [Mon, 30 Dec 2013 22:58:32 +0000 (16:58 -0600)]
Fix completed_streams of write streams progress and update docs

6 years agoread_utf8_file_contents(): Move check for BOM here
Eric Biggers [Mon, 30 Dec 2013 14:45:06 +0000 (08:45 -0600)]
read_utf8_file_contents(): Move check for BOM here

6 years agoparse_path_list_file(): Ignore UTF-8 BOM
Eric Biggers [Mon, 30 Dec 2013 08:50:20 +0000 (02:50 -0600)]
parse_path_list_file(): Ignore UTF-8 BOM

6 years agowimlib_vmsg(): Use correct error string buffer length
Eric Biggers [Mon, 30 Dec 2013 08:39:40 +0000 (02:39 -0600)]
wimlib_vmsg():  Use correct error string buffer length

6 years agowin32_set_security_descriptor(): Check handle before closing
Eric Biggers [Mon, 30 Dec 2013 07:36:48 +0000 (01:36 -0600)]
win32_set_security_descriptor(): Check handle before closing

6 years agowildcard.c: Don't use broken PathMatchSpec()
Eric Biggers [Mon, 30 Dec 2013 07:21:24 +0000 (01:21 -0600)]
wildcard.c:  Don't use broken PathMatchSpec()

6 years agoread_path_list_file(): Handle missing terminal newline
Eric Biggers [Sun, 29 Dec 2013 21:49:34 +0000 (15:49 -0600)]
read_path_list_file(): Handle missing terminal newline

6 years agoextract.c: Fix short name reordering
Eric Biggers [Sun, 29 Dec 2013 21:41:23 +0000 (15:41 -0600)]
extract.c:  Fix short name reordering

6 years agoread_wim_lookup_table(): Correctly get uncompressed size of packs
Eric Biggers [Sun, 29 Dec 2013 20:58:48 +0000 (14:58 -0600)]
read_wim_lookup_table():  Correctly get uncompressed size of packs

6 years agoMisc fixes
Eric Biggers [Sun, 29 Dec 2013 20:21:10 +0000 (14:21 -0600)]
Misc fixes

6 years agoxml.c: Add support for PKEYCONFIGVERSION
Eric Biggers [Sun, 29 Dec 2013 18:12:04 +0000 (12:12 -0600)]
xml.c:  Add support for PKEYCONFIGVERSION

6 years agoReturn new error code when trying to open encrypted WIM
Eric Biggers [Sun, 29 Dec 2013 17:39:54 +0000 (11:39 -0600)]
Return new error code when trying to open encrypted WIM

6 years agoread_wim_lookup_table(): Fix error paths
Eric Biggers [Sun, 29 Dec 2013 03:56:17 +0000 (21:56 -0600)]
read_wim_lookup_table(): Fix error paths

6 years agowrite_stream_process_chunk(): Remove dead assignment
Eric Biggers [Sun, 29 Dec 2013 02:48:31 +0000 (20:48 -0600)]
write_stream_process_chunk(): Remove dead assignment

6 years agoextract_trees(): Fix extraction of multiple paths to stdout
Eric Biggers [Sun, 29 Dec 2013 02:44:21 +0000 (20:44 -0600)]
extract_trees():  Fix extraction of multiple paths to stdout

6 years agowimlib_extract_flags(): Free memory used in linked extraction mode
Eric Biggers [Sun, 29 Dec 2013 02:40:59 +0000 (20:40 -0600)]
wimlib_extract_flags(): Free memory used in linked extraction mode

6 years agowimlib_extract_paths(): Validate extract flags
Eric Biggers [Sun, 29 Dec 2013 02:40:22 +0000 (20:40 -0600)]
wimlib_extract_paths():  Validate extract flags

6 years agoextract_trees(): Send correct end progress msg
Eric Biggers [Sun, 29 Dec 2013 02:39:11 +0000 (20:39 -0600)]
extract_trees(): Send correct end progress msg

6 years agoUpdate docs for struct wimlib_progress_info_extract
Eric Biggers [Sun, 29 Dec 2013 02:38:53 +0000 (20:38 -0600)]
Update docs for struct wimlib_progress_info_extract

6 years agontfs-3g_capture.c: Fix erroneous replacement
Eric Biggers [Sun, 29 Dec 2013 01:38:06 +0000 (19:38 -0600)]
ntfs-3g_capture.c:  Fix erroneous replacement

6 years agoExpose symlink exclusions through WIMLIB_PROGRESS_MSG_SCAN_DENTRY messages
Eric Biggers [Sun, 29 Dec 2013 01:09:32 +0000 (19:09 -0600)]
Expose symlink exclusions through WIMLIB_PROGRESS_MSG_SCAN_DENTRY messages

6 years agoAdd extract_full_stream_to_fd()
Eric Biggers [Sun, 29 Dec 2013 00:04:28 +0000 (18:04 -0600)]
Add extract_full_stream_to_fd()

6 years agowrite_stream_list(): Do not allocate chunk buffer if NONE compression
Eric Biggers [Sat, 28 Dec 2013 23:59:26 +0000 (17:59 -0600)]
write_stream_list(): Do not allocate chunk buffer if NONE compression

6 years agowrite_stream_uncompressed(): Do not issue unnecessary hard error
Eric Biggers [Sat, 28 Dec 2013 23:50:27 +0000 (17:50 -0600)]
write_stream_uncompressed(): Do not issue unnecessary hard error