wimlib
5 years agoWin32: compile
Eric Biggers [Sat, 14 Dec 2013 18:34:08 +0000 (12:34 -0600)]
Win32: compile

5 years agoextract_streams_from_pipe(): Fix
Eric Biggers [Sat, 14 Dec 2013 17:20:50 +0000 (11:20 -0600)]
extract_streams_from_pipe(): Fix

5 years agoupdate; add lzms_decompress() stub
Eric Biggers [Sat, 14 Dec 2013 17:18:32 +0000 (11:18 -0600)]
update; add lzms_decompress() stub

5 years agoRead concat runs
Eric Biggers [Sat, 14 Dec 2013 07:41:05 +0000 (01:41 -0600)]
Read concat runs

5 years agoSplit wim_resource_spec from wim_lookup_table_entry
Eric Biggers [Sat, 14 Dec 2013 05:06:07 +0000 (23:06 -0600)]
Split wim_resource_spec from wim_lookup_table_entry

5 years agolzx_prepare_block_fast(): Increase max_offset
Eric Biggers [Fri, 13 Dec 2013 20:02:37 +0000 (14:02 -0600)]
lzx_prepare_block_fast(): Increase max_offset

5 years agoLZX decompress: Fix comment & docs
Eric Biggers [Fri, 13 Dec 2013 19:46:17 +0000 (13:46 -0600)]
LZX decompress: Fix comment & docs

5 years agoUse STACK_MAX
Eric Biggers [Fri, 13 Dec 2013 19:27:41 +0000 (13:27 -0600)]
Use STACK_MAX

5 years agowim.c: Cleanup
Eric Biggers [Fri, 13 Dec 2013 18:45:59 +0000 (12:45 -0600)]
wim.c: Cleanup

5 years agoverify_swm_set(): Check chunk size
Eric Biggers [Fri, 13 Dec 2013 18:43:37 +0000 (12:43 -0600)]
verify_swm_set(): Check chunk size

5 years agowrite_stream_list(): Cleanup
Eric Biggers [Fri, 13 Dec 2013 18:18:24 +0000 (12:18 -0600)]
write_stream_list(): Cleanup

5 years agoFix reading > 16 bits from bitstream
Eric Biggers [Fri, 13 Dec 2013 17:15:19 +0000 (11:15 -0600)]
Fix reading > 16 bits from bitstream

5 years agobitstream_put_bits(): Mask high-order bits
Eric Biggers [Fri, 13 Dec 2013 16:29:35 +0000 (10:29 -0600)]
bitstream_put_bits(): Mask high-order bits

5 years agocmp_nodes_by_freq(): Correctly handle large frequencies
Eric Biggers [Fri, 13 Dec 2013 16:20:43 +0000 (10:20 -0600)]
cmp_nodes_by_freq(): Correctly handle large frequencies

5 years agowim_recalculate_refcnts(): Check for error
Eric Biggers [Fri, 13 Dec 2013 16:11:28 +0000 (10:11 -0600)]
wim_recalculate_refcnts(): Check for error

5 years agofile_io.c: Cleanup
Eric Biggers [Fri, 13 Dec 2013 16:07:43 +0000 (10:07 -0600)]
file_io.c: Cleanup

5 years agoresource.c: Fix check for invalid chunk size
Eric Biggers [Fri, 13 Dec 2013 15:59:43 +0000 (09:59 -0600)]
resource.c:  Fix check for invalid chunk size

5 years agoresource.c: Fix reading pipable resources
Eric Biggers [Fri, 13 Dec 2013 09:27:48 +0000 (03:27 -0600)]
resource.c:  Fix reading pipable resources

5 years agopaths.c: Cleanup
Eric Biggers [Fri, 13 Dec 2013 09:20:20 +0000 (03:20 -0600)]
paths.c:  Cleanup

5 years agoresource.c: Cleanup and refactor
Eric Biggers [Fri, 13 Dec 2013 08:15:27 +0000 (02:15 -0600)]
resource.c:  Cleanup and refactor

5 years agoFix error/warning conditional
Eric Biggers [Thu, 12 Dec 2013 19:59:06 +0000 (13:59 -0600)]
Fix error/warning conditional

5 years agoVariable LZX window sizes
Eric Biggers [Thu, 12 Dec 2013 19:56:37 +0000 (13:56 -0600)]
Variable LZX window sizes

5 years agoVariable chunk size support (currently XPRESS only)
Eric Biggers [Mon, 9 Dec 2013 06:26:22 +0000 (00:26 -0600)]
Variable chunk size support (currently XPRESS only)

5 years agoClean up other compression/decompression code
Eric Biggers [Mon, 9 Dec 2013 03:06:57 +0000 (21:06 -0600)]
Clean up other compression/decompression code

5 years agowimcapture: Document --compress-slow v1.5.3
Eric Biggers [Sun, 8 Dec 2013 09:24:22 +0000 (03:24 -0600)]
wimcapture: Document --compress-slow

5 years agowimoptimize: make --recompress-slow imply --compress=maximum
Eric Biggers [Sun, 8 Dec 2013 09:17:10 +0000 (03:17 -0600)]
wimoptimize: make --recompress-slow imply --compress=maximum

5 years agoMakefile.am: Fix EXTRA_DIST
Eric Biggers [Sun, 8 Dec 2013 09:11:07 +0000 (03:11 -0600)]
Makefile.am:  Fix EXTRA_DIST

5 years agoAllow changing WIM compression type
Eric Biggers [Sun, 8 Dec 2013 09:10:25 +0000 (03:10 -0600)]
Allow changing WIM compression type

5 years agowimoptimize: Add --recompress-slow, imply --recompress
Eric Biggers [Sun, 8 Dec 2013 08:26:55 +0000 (02:26 -0600)]
wimoptimize:  Add --recompress-slow, imply --recompress

5 years agoFix wimoptimize help
Eric Biggers [Sun, 8 Dec 2013 08:19:51 +0000 (02:19 -0600)]
Fix wimoptimize help

5 years agolzx-compress.c: Cleanup
Eric Biggers [Sun, 8 Dec 2013 08:14:55 +0000 (02:14 -0600)]
lzx-compress.c:  Cleanup

5 years agoAdd --compress-slow back to wimoptimize help
Eric Biggers [Sun, 8 Dec 2013 07:05:23 +0000 (01:05 -0600)]
Add --compress-slow back to wimoptimize help

5 years agoRemove unused files from programs/
Eric Biggers [Sun, 8 Dec 2013 06:52:32 +0000 (00:52 -0600)]
Remove unused files from programs/

wimapply.c was redundant with examples/applywim.c and was prone to be
confused with the 'wimapply' alias for 'wimlib-imagex apply'.

install.cmd was just an example script for a specific usage that wasn't
explained anywhere.

5 years agoRemove unused LZX compression code
Eric Biggers [Sun, 8 Dec 2013 06:48:33 +0000 (00:48 -0600)]
Remove unused LZX compression code

5 years agoUpdate clang-scan-build.sh
Eric Biggers [Sun, 8 Dec 2013 06:43:10 +0000 (00:43 -0600)]
Update clang-scan-build.sh

5 years agoUpdate version (v1.5.3)
Eric Biggers [Sun, 8 Dec 2013 06:36:47 +0000 (00:36 -0600)]
Update version (v1.5.3)

5 years agoMerge LZX compressor updates
Eric Biggers [Sun, 8 Dec 2013 06:07:37 +0000 (00:07 -0600)]
Merge LZX compressor updates

- Use a suffix array-based match-finder (construction code borrowed from
  libdivsufsort).  Ideal for this case because compression in WIM chunks
  does not use a sliding window.
- Disable block splitting by default (no efficient and effective
  algorithm is available yet)

5 years agoAdd wimlib_get_xml_data() API
Eric Biggers [Sat, 7 Dec 2013 01:04:19 +0000 (19:04 -0600)]
Add wimlib_get_xml_data() API

5 years agoxml.c: Fix writing <WINDOWS> element
Eric Biggers [Sat, 7 Dec 2013 00:40:57 +0000 (18:40 -0600)]
xml.c:  Fix writing <WINDOWS> element

A positive return value of xmlTextWriterEndElement would be incorrectly
passed up the call chain, causing an unexpected error when writing the
XML data.

5 years agowimlib_mount_image(): Correctly handle unnamed stream in ADS entries
Eric Biggers [Mon, 18 Nov 2013 03:35:13 +0000 (21:35 -0600)]
wimlib_mount_image():  Correctly handle unnamed stream in ADS entries

5 years agoFix wimlib_lzx_compress()
Eric Biggers [Mon, 18 Nov 2013 01:48:39 +0000 (19:48 -0600)]
Fix wimlib_lzx_compress()

5 years agostruct wimlib_lzx_params: Don't use anonymous union v1.5.2
Eric Biggers [Mon, 18 Nov 2013 00:13:34 +0000 (18:13 -0600)]
struct wimlib_lzx_params: Don't use anonymous union

5 years agoUpdate version info and NEWS in preparation for v1.5.2
Eric Biggers [Sun, 17 Nov 2013 23:18:30 +0000 (17:18 -0600)]
Update version info and NEWS in preparation for v1.5.2

5 years agoComment fixes / cleanups
Eric Biggers [Sun, 17 Nov 2013 23:09:02 +0000 (17:09 -0600)]
Comment fixes / cleanups

5 years agoMerge experimental LZX compressor
Eric Biggers [Sun, 17 Nov 2013 22:12:49 +0000 (16:12 -0600)]
Merge experimental LZX compressor

5 years agoImprove rename behavior on Windows
Eric Biggers [Thu, 14 Nov 2013 01:41:11 +0000 (19:41 -0600)]
Improve rename behavior on Windows

Attempt to handle the case where another process has the destination file
open by renaming and deleting the destination file.

5 years agoimagex.c: Fix string literal used in oom path only
Eric Biggers [Thu, 14 Nov 2013 00:09:27 +0000 (18:09 -0600)]
imagex.c:  Fix string literal used in oom path only

5 years agoAdd notes about possible new WIM format and LZMS compression
Eric Biggers [Wed, 13 Nov 2013 08:05:59 +0000 (02:05 -0600)]
Add notes about possible new WIM format and LZMS compression

5 years agoUpdate NEWS
Eric Biggers [Wed, 13 Nov 2013 02:59:30 +0000 (20:59 -0600)]
Update NEWS

5 years agoAdd ADS entry workaround
Eric Biggers [Wed, 13 Nov 2013 02:48:43 +0000 (20:48 -0600)]
Add ADS entry workaround

Some versions of Microsoft's WIM software (the boot driver(s) in WinPE
3.0, for example) contain a bug where they assume the first alternate
data stream (ADS) entry of a dentry with a nonzero ADS count specifies
the unnamed stream, even if it has a name and the unnamed stream is
already specified in the hash field of the dentry itself.

wimlib now works around this behavior by carefully emulating the behavior
of (most versions of) ImageX/WIMGAPI, which move the unnamed stream
reference into the alternate stream entries whenever there are named data
streams, even though there is already a field in the dentry itself for
the unnamed stream reference, which then goes to waste.

5 years agowrite.c: Fix two minor bugs in error paths
Eric Biggers [Sun, 3 Nov 2013 05:01:23 +0000 (00:01 -0500)]
write.c:  Fix two minor bugs in error paths

- Ensure that overwrite_wim_inplace() restores the original header if it
  is unable to complete successfully.
- If overwrite_wim_inplace() fails after having set
  WIM_HDR_FLAG_WRITE_IN_PROGRESS in the physical file's header, attempt
  to clear it.

5 years agontfs_3g_apply.c: Remove unused variable
Eric Biggers [Fri, 1 Nov 2013 05:28:09 +0000 (00:28 -0500)]
ntfs_3g_apply.c:  Remove unused variable

5 years ago{lzx,xpress}_decode_match(): Fix undefined pointer evalution
Eric Biggers [Fri, 1 Nov 2013 05:19:32 +0000 (00:19 -0500)]
{lzx,xpress}_decode_match():  Fix undefined pointer evalution

According to C99 6.5.6.8, calculating a pointer that points before the
allocated object has undefined behavior.  However, this was done by
lzx_decode_match() and xpress_decode_match() if they received a match
pointing before the end of the window (invalid match offset).  This
commit fixes this check to be fully defined.

This change likely has no visible effect in actual builds, e.g. with gcc.

5 years agonew_wim_struct(): Don't dereference NULL in out-of-memory case
Eric Biggers [Fri, 1 Nov 2013 04:51:47 +0000 (23:51 -0500)]
new_wim_struct():  Don't dereference NULL in out-of-memory case

5 years agolzx-decompress.c: Fix alignment bug
Eric Biggers [Sat, 12 Oct 2013 00:11:41 +0000 (19:11 -0500)]
lzx-decompress.c:  Fix alignment bug

The pretree decode table was not declared to be 16 byte aligned, as
expected by make_huffman_decode_table().

This bug had no effect if the compiler aligned this table on a 16 byte
boundary anyway, but if not it caused a segmentation fault on x86 platforms
where the SSE2 instructions were available, since in that case stores
requiring 16 byte alignment are used to fill in table entries.

5 years agoarchlinux/PKGBUILD: Fix pkgdesc
Eric Biggers [Fri, 11 Oct 2013 19:46:01 +0000 (14:46 -0500)]
archlinux/PKGBUILD:  Fix pkgdesc

5 years agomkwinpeimg: Quote $0 v1.5.1
Eric Biggers [Fri, 11 Oct 2013 16:06:49 +0000 (11:06 -0500)]
mkwinpeimg:  Quote $0

5 years agowimcapture: Allow specifying `--delta-from' multiple times
Eric Biggers [Fri, 11 Oct 2013 15:38:45 +0000 (10:38 -0500)]
wimcapture:  Allow specifying `--delta-from' multiple times

5 years agoimagex.c: Rename `struct refglob_set' => `struct string_set'
Eric Biggers [Fri, 11 Oct 2013 14:49:20 +0000 (09:49 -0500)]
imagex.c:  Rename `struct refglob_set' => `struct string_set'

5 years agoUpdate version number to 1.5.1
Eric Biggers [Fri, 11 Oct 2013 14:38:50 +0000 (09:38 -0500)]
Update version number to 1.5.1

5 years agoUpdate NEWS
Eric Biggers [Mon, 7 Oct 2013 07:00:54 +0000 (02:00 -0500)]
Update NEWS

5 years agoImplement workaround for NTFS-3g bug when handling empty DACLs
Eric Biggers [Mon, 7 Oct 2013 06:55:07 +0000 (01:55 -0500)]
Implement workaround for NTFS-3g bug when handling empty DACLs

5 years agoNEWS: Clarify bugfix
Eric Biggers [Fri, 20 Sep 2013 17:16:46 +0000 (12:16 -0500)]
NEWS:  Clarify bugfix

5 years agodo_extract_warnings(): Adjust wording of warning
Eric Biggers [Tue, 17 Sep 2013 00:54:14 +0000 (19:54 -0500)]
do_extract_warnings():  Adjust wording of warning

5 years agoimagex-capture.1.in: Fix brackets in --update-of docs
Eric Biggers [Mon, 16 Sep 2013 04:08:06 +0000 (23:08 -0500)]
imagex-capture.1.in:  Fix brackets in --update-of docs

5 years agoimagex_capture_or_append(): Correctly use template_wim
Eric Biggers [Mon, 16 Sep 2013 04:06:10 +0000 (23:06 -0500)]
imagex_capture_or_append():  Correctly use template_wim

5 years agoxml.c: Define more architecture constants
Eric Biggers [Sun, 15 Sep 2013 20:50:28 +0000 (15:50 -0500)]
xml.c:  Define more architecture constants

5 years agobegin_read(): Fix comment
Eric Biggers [Sun, 15 Sep 2013 19:38:18 +0000 (14:38 -0500)]
begin_read():  Fix comment

5 years agoread_wim_lookup_table(): Ignore metadata entries with refcnt == 0
Eric Biggers [Fri, 13 Sep 2013 15:07:44 +0000 (10:07 -0500)]
read_wim_lookup_table():  Ignore metadata entries with refcnt == 0

If the WIM lookup table lists metadata resources with no references, ignore
them.  This unexpected case appears in WIMs appearing in WAIK v2.1.

5 years agodentry_extract_skeleton(): Fix bug with DOS name reordering
Eric Biggers [Mon, 2 Sep 2013 14:03:55 +0000 (09:03 -0500)]
dentry_extract_skeleton():  Fix bug with DOS name reordering

When choosing a different dentry for an inode being extracted, the code didn't
check if it was actually in the tree being extracted.

This bug could cause an infinite loop in extraction backends that required DOS
name reordering and also allowed extracting only a subset of an image---
currently, just the Windows backend.

5 years agowin32_get_security_descriptor(): Use errno
Eric Biggers [Mon, 2 Sep 2013 14:03:50 +0000 (09:03 -0500)]
win32_get_security_descriptor():  Use errno

5 years agoUpdate release scripts v1.5.0
Eric Biggers [Sun, 1 Sep 2013 21:32:12 +0000 (16:32 -0500)]
Update release scripts

5 years agowimlib.h: Group declarations into modules
Eric Biggers [Sun, 1 Sep 2013 20:56:57 +0000 (15:56 -0500)]
wimlib.h:  Group declarations into modules

5 years agowimlib_iterate_dir_tree(): Define behavior when resources missing
Eric Biggers [Sun, 1 Sep 2013 16:12:59 +0000 (11:12 -0500)]
wimlib_iterate_dir_tree():  Define behavior when resources missing

5 years agoReplace WIMLIB_OPEN_FLAG_SPLIT_OK with WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT
Eric Biggers [Sun, 1 Sep 2013 06:23:44 +0000 (01:23 -0500)]
Replace WIMLIB_OPEN_FLAG_SPLIT_OK with WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT

Having to specify a special flag to open split WIM parts is no longer very
useful, since error codes will be automatically be issued when needed metadata
or file resources are not found, and this flag wouldn't affect delta WIMs which
resemble split WIMs anyway, and clients could just check themselves whether a
WIM is split.  Therefore, make the default be like WIMLIB_OPEN_FLAG_SPLIT_OK,
but for completeness offer a flag WIMLIB_OPEN_FLAG_ERROR_IF_SPLIT to get
behavior like the old default.

Also updated the documentation in wimlib.h.

5 years agowimlib.h: Move `enum wimlib_update_op' to global scope
Eric Biggers [Sun, 1 Sep 2013 03:00:44 +0000 (22:00 -0500)]
wimlib.h:  Move `enum wimlib_update_op' to global scope

5 years agofinish_write(): Add a few more comments
Eric Biggers [Sun, 1 Sep 2013 01:57:23 +0000 (20:57 -0500)]
finish_write():  Add a few more comments

5 years agowrite_integrity_table(): Fix documented return values
Eric Biggers [Sun, 1 Sep 2013 01:47:03 +0000 (20:47 -0500)]
write_integrity_table():  Fix documented return values

5 years agofinish_write(): Fix comment
Eric Biggers [Sun, 1 Sep 2013 01:41:28 +0000 (20:41 -0500)]
finish_write():  Fix comment

5 years agowrite_pipable_wim(): Fix/improve comment
Eric Biggers [Sun, 1 Sep 2013 01:35:56 +0000 (20:35 -0500)]
write_pipable_wim():  Fix/improve comment

5 years agoWIMStruct: Remove unused flag
Eric Biggers [Sun, 1 Sep 2013 01:15:45 +0000 (20:15 -0500)]
WIMStruct:  Remove unused flag

5 years agoimagex-capture.1.in: Clarify --update-of slightly
Eric Biggers [Sun, 1 Sep 2013 01:03:16 +0000 (20:03 -0500)]
imagex-capture.1.in:  Clarify --update-of slightly

5 years agotranslate_text_to_tstr(): Correctly compare byte values
Eric Biggers [Sun, 1 Sep 2013 00:57:01 +0000 (19:57 -0500)]
translate_text_to_tstr():  Correctly compare byte values

5 years agowrite_integrity_table(): Fix use of uninitialized variable
Eric Biggers [Sun, 1 Sep 2013 00:50:12 +0000 (19:50 -0500)]
write_integrity_table():  Fix use of uninitialized variable

(Only happened in cases where existing integrity table was invalid or
could not be read.)

5 years agowin32_recurse_directory(): Handle not implemented/supported
Eric Biggers [Sun, 1 Sep 2013 00:10:36 +0000 (19:10 -0500)]
win32_recurse_directory():  Handle not implemented/supported

Similar to previous commit, but handle errors from NtQueryDirectoryFile().

5 years agowin32_capture_streams(): Handle not implemented/supported
Eric Biggers [Sun, 1 Sep 2013 00:02:33 +0000 (19:02 -0500)]
win32_capture_streams():  Handle not implemented/supported

If NtQueryInformationFile() returns STATUS_NOT_IMPLEMENTED,
STATUS_NOT_SUPPORTED, or STATUS_INVALID_INFO_CLASS when
FileStreamInformation is requested, fall back to FindFirstStream() and
FindNextStream() instead (which themselves have a fallback behavior).

5 years agowin32_capture_streams(): Fix uninitialized return value in non-default case
Eric Biggers [Sat, 31 Aug 2013 23:46:05 +0000 (18:46 -0500)]
win32_capture_streams():  Fix uninitialized return value in non-default case

5 years agoWin32: Define _CRT_NON_CONFORMING_SWPRINTFS
Eric Biggers [Sat, 31 Aug 2013 23:29:41 +0000 (18:29 -0500)]
Win32:  Define _CRT_NON_CONFORMING_SWPRINTFS

To get the "old" swprintf() declaration with all versions of MinGW, at
least until the code is fixed to use the standard form, define
_CRT_NON_CONFORMING_SWPRINTFS.

5 years agowimlib-imagex: Tweak invalid image error message
Eric Biggers [Tue, 27 Aug 2013 17:57:06 +0000 (12:57 -0500)]
wimlib-imagex:  Tweak invalid image error message

5 years agowimlib.h: C++ compatibility
Eric Biggers [Tue, 27 Aug 2013 17:34:01 +0000 (12:34 -0500)]
wimlib.h:  C++ compatibility

5 years agoWindows: Use .cmd extension for wimlib-imagex shortcuts
Eric Biggers [Tue, 27 Aug 2013 17:24:21 +0000 (12:24 -0500)]
Windows:  Use .cmd extension for wimlib-imagex shortcuts

5 years agoMinor fixes
Eric Biggers [Thu, 22 Aug 2013 01:20:05 +0000 (20:20 -0500)]
Minor fixes

5 years agoFix programs not compiled by default
Eric Biggers [Wed, 21 Aug 2013 04:35:25 +0000 (23:35 -0500)]
Fix programs not compiled by default

5 years agoWindows: Load ntdll functions dynamically
Eric Biggers [Wed, 21 Aug 2013 03:16:33 +0000 (22:16 -0500)]
Windows: Load ntdll functions dynamically

5 years agoUpdate docs; strip Windows binaries & place directly in ZIP
Eric Biggers [Wed, 21 Aug 2013 02:22:51 +0000 (21:22 -0500)]
Update docs; strip Windows binaries & place directly in ZIP

5 years agowimlib_reference_resource_files(): Fix return value docs
Eric Biggers [Tue, 20 Aug 2013 23:27:00 +0000 (18:27 -0500)]
wimlib_reference_resource_files():  Fix return value docs

5 years agodoc/imagex-capture.1.in: update --delta-from docs
Eric Biggers [Tue, 20 Aug 2013 23:23:40 +0000 (18:23 -0500)]
doc/imagex-capture.1.in:  update --delta-from docs

5 years agowimlib-imagex: Simplify options for delta WIMs & template images
Eric Biggers [Tue, 20 Aug 2013 23:04:22 +0000 (18:04 -0500)]
wimlib-imagex:  Simplify options for delta WIMs & template images

5 years ago"delta" WIM support
Eric Biggers [Tue, 20 Aug 2013 21:26:16 +0000 (16:26 -0500)]
"delta" WIM support

5 years agoGeneralized support for referencing resources in external WIMs
Eric Biggers [Tue, 20 Aug 2013 00:17:36 +0000 (19:17 -0500)]
Generalized support for referencing resources in external WIMs

In preparation for supporting "delta" WIMs, this commit generalizes the library
interface for handling split WIMs.

Instead of cluttering up various functions with additional split WIM parameters,
there is now a function wimlib_reference_resource_files() available that can
load additional resources (e.g. from a split WIM part) into a WIMStruct that has
metadata available (e.g. the first part of a split WIM, or a standalone WIM).

wimlib_reference_resource_files() can handle file globbing by itself, so it
actually makes it easier for library users to process split WIMs.

Lower-level APIs wimlib_reference_resources() and wimlib_unreference_resources()
are also provided, but not yet used directly by `wimlib-imagex'.

Some instances of WIMLIB_ERR_SPLIT_UNSUPPORTED error returns were changed to
the new error code WIMLIB_ERR_METADATA_NOT_FOUND.

This commit also re-writes wimlib_export_image() to correctly roll back changes
on multi-image exports and better handle resources in the source WIM being
missing, as well as add a flag to make all destination image(s) unnamed.