wimlib
5 weeks agoimagex: warn that --update-of is unreliable on Windows master
Eric Biggers [Tue, 11 Sep 2018 03:11:31 +0000 (20:11 -0700)]
imagex: warn that --update-of is unreliable on Windows

5 weeks agowimappend: with --create, ignore --update-of nonexistent target file
Eric Biggers [Tue, 11 Sep 2018 02:58:10 +0000 (19:58 -0700)]
wimappend: with --create, ignore --update-of nonexistent target file

3 months agoRemove Arch Linux PKGBUILD
Eric Biggers [Sat, 21 Jul 2018 20:10:41 +0000 (13:10 -0700)]
Remove Arch Linux PKGBUILD

There's now an official Arch Linux package for wimlib.
So the PKGBUILD file in-tree is redundant.

3 months agowimappend: add --create option to create WIM file if needed
Eric Biggers [Sat, 21 Jul 2018 19:34:19 +0000 (12:34 -0700)]
wimappend: add --create option to create WIM file if needed

3 months agowimextract: allow specifying listfile on stdin
Eric Biggers [Sat, 21 Jul 2018 18:38:08 +0000 (11:38 -0700)]
wimextract: allow specifying listfile on stdin

3 months agoMake absolute ExclusionException patterns include ancestor directories
Eric Biggers [Sat, 21 Jul 2018 16:27:22 +0000 (09:27 -0700)]
Make absolute ExclusionException patterns include ancestor directories

3 months agoimagex: make sure we still use wgetopt_long_only() on Windows
Eric Biggers [Sat, 21 Jul 2018 16:27:22 +0000 (09:27 -0700)]
imagex: make sure we still use wgetopt_long_only() on Windows

3 months agoFix building on NetBSD
Eric Biggers [Fri, 20 Jul 2018 07:38:56 +0000 (00:38 -0700)]
Fix building on NetBSD

7 months agosplit.c: fix finding extension of first split WIM part
Eric Biggers [Wed, 28 Feb 2018 03:31:58 +0000 (19:31 -0800)]
split.c: fix finding extension of first split WIM part

Silly old bug: wimlib_split() considered the first dot in the SWM path
to begin the filename extension.  But of course, there can be other dots
in the path; we need to look for the last dot in the last component.

8 months agoUpdate NEWS
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
Update NEWS

8 months agowin32_capture: recognize STATUS_NOT_SUPPORTED (fixes for WinXP)
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
win32_capture: recognize STATUS_NOT_SUPPORTED (fixes for WinXP)

8 months agoUpdate winpthreads to 5.0.3 for Windows binaries
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
Update winpthreads to 5.0.3 for Windows binaries

8 months agoUpdate libxml to 2.9.7 for Windows binaries
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
Update libxml to 2.9.7 for Windows binaries

8 months agowimlib-imagex: add --include-integrity option
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
wimlib-imagex: add --include-integrity option

The --check option currently does two things: verify the integrity table
of the input WIM(s), and include an integrity table in the output
WIM(s).  Some users would like to do the latter only, especially if
there are large input WIM(s).

Add an option --include-integrity which does this.

8 months agowimlib-imagex: try harder to optimize out opening template WIM
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
wimlib-imagex: try harder to optimize out opening template WIM

As an optimization, 'wimcapture' and 'wimappend' don't separately open
the template WIM for --update-of if no filename is specified in that
option, which makes it default to either the single base WIM
(--delta-from), or the WIM being appended to.

Extend that optimization to cases where the filename is specified in
--update-of and it exactly matches the filename of the WIM being
appended to or any of the base WIMs.

8 months agoImprove explanation for pipable WIM pre-write checksumming
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
Improve explanation for pipable WIM pre-write checksumming

8 months agoMake stream_hash() return NULL for unhashed streams
Eric Biggers [Sun, 21 Jan 2018 21:47:10 +0000 (13:47 -0800)]
Make stream_hash() return NULL for unhashed streams

Otherwise it will return a bogus value from the union with ->back_inode
and ->back_stream_id.  Most callers ensured this cannot happen, but a
couple did not.  It should be explicitly prevented or handled.

8 months agoCapture and apply extended attributes on Windows
Eric Biggers [Sun, 21 Jan 2018 21:47:09 +0000 (13:47 -0800)]
Capture and apply extended attributes on Windows

DISM recently started supporting capturing and applying xattrs on
Windows (though, it is broken when applying multiple xattrs per file).
Make wimlib support the same, using the same on-disk format.  Unlike
DISM it is on by default, not controlled by an option, since there
doesn't seem to be a good reason to make it an option.

Also deprecate the tagged item wimlib was using to store xattrs on Linux
and switch over to the format used by WIMGAPI to store xattrs on
Windows, so that new WIM images use the same xattr format on both
platforms.  One caveat is that on Linux XATTR_SIZE_MAX is 65536 whereas
in the new WIM tagged item format we can only store up to 65535 bytes.
That is unlikely to matter though.

As future work, the NTFS-3G capture and apply backends should be updated
to support xattrs too.

8 months agoAllow retrieving PACKAGE_VERSION from the library
Eric Biggers [Sun, 21 Jan 2018 21:47:09 +0000 (13:47 -0800)]
Allow retrieving PACKAGE_VERSION from the library

Otherwise the output of 'wimlib-imagex --version' for beta versions
would be confusing.

13 months agowimlib-imagex: print version of library being used
Eric Biggers [Wed, 20 Sep 2017 02:53:19 +0000 (19:53 -0700)]
wimlib-imagex: print version of library being used

14 months agov1.12.0 v1.12.0
Eric Biggers [Sat, 29 Jul 2017 20:46:20 +0000 (13:46 -0700)]
v1.12.0

14 months agowin32_apply: bail if paths are too long for a UNICODE_STRING
Eric Biggers [Sat, 29 Jul 2017 20:39:28 +0000 (13:39 -0700)]
win32_apply: bail if paths are too long for a UNICODE_STRING

14 months agowin32_common: fix windows_msg() with long messages
Eric Biggers [Sat, 29 Jul 2017 20:20:16 +0000 (13:20 -0700)]
win32_common: fix windows_msg() with long messages

15 months ago1.12.0-BETA2
Eric Biggers [Sun, 16 Jul 2017 07:16:59 +0000 (00:16 -0700)]
1.12.0-BETA2

15 months agowimlib-imagex: add --quiet option
Eric Biggers [Sun, 16 Jul 2017 06:57:10 +0000 (23:57 -0700)]
wimlib-imagex: add --quiet option

15 months agolzx_decompress: redeclare input_bitstream above main loop
Eric Biggers [Sun, 16 Jul 2017 06:26:33 +0000 (23:26 -0700)]
lzx_decompress: redeclare input_bitstream above main loop

15 months agounaligned: use may_alias attribute
Eric Biggers [Sun, 16 Jul 2017 06:26:33 +0000 (23:26 -0700)]
unaligned: use may_alias attribute

gcc7 miscompiles the "undo" mode of translate_if_needed() in
lzms_common.c because the get_unaligned_le16() was incorrectly being
moved before the put_unaligned_le32().  Fix it by marking the special
"unaligned" structs with the may_alias attribute.

15 months agoUse dynamically-sized path buffer when scanning files
Eric Biggers [Sun, 16 Jul 2017 06:26:33 +0000 (23:26 -0700)]
Use dynamically-sized path buffer when scanning files

This is needed to guarantee that no buffer overflow can occur when
scanning a deep directory structure.  The new way also avoids using
PATH_MAX, which fixes a build error on systems that don't define it.

15 months agomkwinpeimg: syslinux modules may be in /usr/lib/syslinux/modules/bios
Eric Biggers [Mon, 3 Jul 2017 21:07:09 +0000 (14:07 -0700)]
mkwinpeimg: syslinux modules may be in /usr/lib/syslinux/modules/bios

16 months agoupdate_image.c: Ignore Windows 10 Recycle Bin directories.
Mike Swanson [Sun, 4 Jun 2017 22:35:34 +0000 (15:35 -0700)]
update_image.c: Ignore Windows 10 Recycle Bin directories.

On Windows 10 (possibly earlier versions?), the \$RECYCLE.BIN or
\$Recycle.Bin directories are created in the root of a volume.
Both case variants here so capture of an NTFS volume from Linux
should work, but wouldn't make a difference when capturing on
Windows.

18 months ago1.12.0-BETA1
Eric Biggers [Wed, 19 Apr 2017 06:58:03 +0000 (23:58 -0700)]
1.12.0-BETA1

18 months agotests: test capturing+applying file with negative UNIX timestamp
Eric Biggers [Wed, 19 Apr 2017 06:58:03 +0000 (23:58 -0700)]
tests: test capturing+applying file with negative UNIX timestamp

... and start comparing mtime in tree-cmp, and fix cases where return
codes in scripts were being ignored by use of '&&'.

18 months agowlfuzz: compare timestamps
Eric Biggers [Wed, 19 Apr 2017 06:58:03 +0000 (23:58 -0700)]
wlfuzz: compare timestamps

18 months agoImproved year 2038 safety
Eric Biggers [Wed, 19 Apr 2017 06:58:03 +0000 (23:58 -0700)]
Improved year 2038 safety

Make wimlib on 32-bit Windows year 2038 safe by doing the following:

- Build both the library and program with 64-bit time_t, being careful
  to avoid changing the timespec struct exposed in the API.
- Update wimlib's API to include an extended seconds field in
  wimlib_dir_entry for each timestamp, and set it when tv_sec is 32-bit.
- When needing the current time, call GetSystemTimeAsFileTime() instead
  of MinGW's gettimeofday().

This also has the advantage that due to switching to the 64-bit time_t
functions, 32-bit wimlib-imagex.exe now prints timestamps prior to year
1970 correctly.

Unfortunately, despite the API improvement, we cannot at this time make
wimlib fully Y2038-safe on 32-bit UNIX, due to lack of OS support.

18 months agotimestamp.c: correctly convert negative UNIX timestamps
Eric Biggers [Wed, 19 Apr 2017 06:58:03 +0000 (23:58 -0700)]
timestamp.c: correctly convert negative UNIX timestamps

18 months agontfs-3g_apply.c: note bugs fixed in NTFS-3G version 2017.3.23
Eric Biggers [Sat, 8 Apr 2017 17:48:04 +0000 (10:48 -0700)]
ntfs-3g_apply.c: note bugs fixed in NTFS-3G version 2017.3.23

19 months agoavl_tree.h: avoid bad function pointer cast
Eric Biggers [Sun, 29 Jan 2017 05:18:21 +0000 (21:18 -0800)]
avl_tree.h: avoid bad function pointer cast

Casting the type of the 'cmp' function, while under normal circumstances
compiled correctly, was not technically correct and was not compatible
with some control flow integrity (CFI) implementations.

20 months agoAdd tools/clang-build-with-cfi
Eric Biggers [Sat, 28 Jan 2017 23:14:23 +0000 (15:14 -0800)]
Add tools/clang-build-with-cfi

21 months agov1.11.0 v1.11.0
Eric Biggers [Wed, 18 Jan 2017 05:24:53 +0000 (21:24 -0800)]
v1.11.0

21 months agoexamples/compressfile.c: add back colon that got deleted
Eric Biggers [Wed, 18 Jan 2017 04:32:54 +0000 (20:32 -0800)]
examples/compressfile.c: add back colon that got deleted

21 months agotagged_items.c: statically verify size of tagged item header
Eric Biggers [Wed, 18 Jan 2017 04:32:54 +0000 (20:32 -0800)]
tagged_items.c: statically verify size of tagged item header

21 months agoxattr.h: statically verify size of xattr header
Eric Biggers [Wed, 18 Jan 2017 04:32:54 +0000 (20:32 -0800)]
xattr.h: statically verify size of xattr header

21 months agolzx_compress: optimize storing information in lzx_sequence
Eric Biggers [Sun, 15 Jan 2017 21:34:36 +0000 (13:34 -0800)]
lzx_compress: optimize storing information in lzx_sequence

Pack the literal run length and match length ourselves instead of using
bitfields, and store the actual match length instead of the adjusted
match length.  Also make matchlen=0 represent end-of-block, and store
the full main symbol, not just the match header.

21 months agoDon't generate GUID in wimlib_create_new_wim()
Eric Biggers [Sun, 15 Jan 2017 01:00:13 +0000 (17:00 -0800)]
Don't generate GUID in wimlib_create_new_wim()

It's not necessary to generate a GUID in wimlib_create_new_wim() because
one is generated later by wimlib_write(), and nothing seems to assume
that a WIMStruct not yet backed by a file has a valid GUID.  This saves
a call to get_random_bytes().  Also remove some unnecessary
initializations to 0.

21 months agolzx_compress: fix corruption with long literal run
Eric Biggers [Sat, 14 Jan 2017 08:56:39 +0000 (00:56 -0800)]
lzx_compress: fix corruption with long literal run

The last round of updates to the LZX compressor made it start being able
to use larger blocks, up to ~100KB.  Unfortunately it was overlooked
that this allows literal runs > 65535 bytes while in one place the
length of a literal run was still being stored in a u16.  Therefore, on
incompressible input data this could be wrapped around, causing
incorrect compression.  Fix this by enlarging the variable.

21 months agowimappend: support --delta-from option
Eric Biggers [Fri, 13 Jan 2017 04:04:18 +0000 (20:04 -0800)]
wimappend: support --delta-from option

--delta-from was previously only supported by wimcapture.  But it is
trivial to make wimappend support it too, and it could be useful.

21 months agohc_matchfinder: use well-defined initialization of best_matchptr
Eric Biggers [Sun, 8 Jan 2017 06:34:32 +0000 (22:34 -0800)]
hc_matchfinder: use well-defined initialization of best_matchptr

The initial value of best_matchptr is not truly used, but since we do
always compute 'in_next - best_matchptr', assign an initial value which
avoids undefined behavior.

21 months agounix_apply.c: use #ifdef HAVE_XATTR_SUPPORT, not #if HAVE_XATTR_SUPPORT
Eric Biggers [Sun, 8 Jan 2017 00:05:21 +0000 (16:05 -0800)]
unix_apply.c: use #ifdef HAVE_XATTR_SUPPORT, not #if HAVE_XATTR_SUPPORT

21 months agoextract.c: recommend --unix-data mode when appropriate
Eric Biggers [Sat, 7 Jan 2017 23:08:09 +0000 (15:08 -0800)]
extract.c: recommend --unix-data mode when appropriate

21 months agotagged_items: rename inode_set_tagged_data() to inode_set_tagged_item()
Eric Biggers [Sat, 7 Jan 2017 22:35:07 +0000 (14:35 -0800)]
tagged_items: rename inode_set_tagged_data() to inode_set_tagged_item()

(for consistency with inode_get_tagged_item())

21 months agowimdir: make documention correctly reflect that IMAGE is optional
Eric Biggers [Sat, 7 Jan 2017 22:35:06 +0000 (14:35 -0800)]
wimdir: make documention correctly reflect that IMAGE is optional

21 months agowimmount.1: mention long forms
Eric Biggers [Sat, 7 Jan 2017 22:35:06 +0000 (14:35 -0800)]
wimmount.1: mention long forms

21 months agowimlib-imagex: fix recommendation to read PDF documentation
Eric Biggers [Sat, 7 Jan 2017 22:35:06 +0000 (14:35 -0800)]
wimlib-imagex: fix recommendation to read PDF documentation

Recommend wimFOO.pdf instead of wimlib-imagex-FOO.pdf.  (Also `man
wimFOO` instead of `man wimlib-imagex-FOO'.)

21 months agov1.11.0-BETA5
Eric Biggers [Mon, 2 Jan 2017 00:19:25 +0000 (18:19 -0600)]
v1.11.0-BETA5

21 months agowlfuzz: sometimes generate security.capability xattrs
Eric Biggers [Sun, 1 Jan 2017 23:44:19 +0000 (17:44 -0600)]
wlfuzz: sometimes generate security.capability xattrs

21 months agounix_apply.c: fix applying security xattrs
Eric Biggers [Sun, 1 Jan 2017 23:44:19 +0000 (17:44 -0600)]
unix_apply.c: fix applying security xattrs

21 months agoDocumentation updates, mainly to the man pages
Eric Biggers [Sun, 1 Jan 2017 23:44:18 +0000 (17:44 -0600)]
Documentation updates, mainly to the man pages

- Use short command names like wimFOO instead of wimlib-imagex FOO
- Lots of other small improvements

21 months agov1.11.0-BETA4
Eric Biggers [Wed, 28 Dec 2016 04:36:28 +0000 (22:36 -0600)]
v1.11.0-BETA4

21 months agowlfuzz: generate and compare extended attributes
Eric Biggers [Tue, 27 Dec 2016 23:24:56 +0000 (17:24 -0600)]
wlfuzz: generate and compare extended attributes

21 months agowlfuzz: generate and compare standard UNIX file permissions and special files
Eric Biggers [Tue, 27 Dec 2016 23:24:56 +0000 (17:24 -0600)]
wlfuzz: generate and compare standard UNIX file permissions and special files

21 months agowlfuzz: generate and compare symlinks
Eric Biggers [Tue, 27 Dec 2016 23:24:56 +0000 (17:24 -0600)]
wlfuzz: generate and compare symlinks

21 months agowlfuzz: generate and compare object IDs
Eric Biggers [Tue, 27 Dec 2016 23:24:56 +0000 (17:24 -0600)]
wlfuzz: generate and compare object IDs

21 months agowlfuzz: don't generate hard linked reparse points
Eric Biggers [Tue, 27 Dec 2016 23:24:56 +0000 (17:24 -0600)]
wlfuzz: don't generate hard linked reparse points

21 months agowlfuzz: don't generate . and .. filenames
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
wlfuzz: don't generate . and .. filenames

21 months agowlfuzz: compare generated image after just writing it out
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
wlfuzz: compare generated image after just writing it out

21 months agoDocument xattr support
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
Document xattr support

21 months agounix_apply.c: support applying extended attributes
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
unix_apply.c: support applying extended attributes

21 months agounix_capture.c: support capturing extended attributes
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
unix_capture.c: support capturing extended attributes

21 months agoAdd new error codes for xattr extraction errors
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
Add new error codes for xattr extraction errors

21 months agoAdd basic infrastructure for storing xattr items
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
Add basic infrastructure for storing xattr items

Define a new tagged metadata item to hold a list of names and values of
Linux-style extended attributes, and prepare for supporting
capture/apply of extended attributes.

I considered making the xattrs a stream instead, referenced from the
tagged item which would just hold a hash.  This would have allowed
xattrs to be deduplicated between files.  However, I ultimately decided
against this because WIMGAPI and older versions of wimlib would discard
the streams on optimize/export, and extraction would be much more
complicated because xattr streams could come up for extraction before
other streams --- which would be especially problematic for symlinks.

21 months agotagged_items updates
Eric Biggers [Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)]
tagged_items updates

- Expose tagged_item functions in new header tagged_items.h
- Make object_id functions inline functions in object_id.h
- Make inode_get_tagged_item() return stored length, not aligned length
- Add a new function inode_set_tagged_data() which removes existing
  items before setting the new one, and use it for inode_set_object_id()
- Make inode_add_tagged_item() append item rather than prepend
- Keep items 8-byte aligned in memory

21 months ago.gitignore: ignore files generated by running tests
Eric Biggers [Tue, 27 Dec 2016 03:18:39 +0000 (21:18 -0600)]
.gitignore: ignore files generated by running tests

21 months agoImprove random number generation
Eric Biggers [Tue, 27 Dec 2016 02:27:29 +0000 (20:27 -0600)]
Improve random number generation

wimlib used rand() to generate random numbers, e.g. for GUIDs.  This was
neither cryptographically secure nor thread-safe.  Use getrandom(),
/dev/urandom, or RtlGenRandom() instead.

21 months agoConstify some data
Eric Biggers [Sun, 18 Dec 2016 09:19:26 +0000 (01:19 -0800)]
Constify some data

22 months agojoin.c: clean up verify_swm_set()
Eric Biggers [Sat, 17 Dec 2016 03:47:44 +0000 (19:47 -0800)]
join.c: clean up verify_swm_set()

UBSAN complained when the parts_to_swms array had 0 length.  Clean this
up by sorting the parts first, making the verification simpler.  Also
don't bother checking compression_type and chunk_size anymore; checking
guid should be sufficient, and it doesn't really matter if the
compression formats are different since now everything will be written
out correctly anyway.

22 months agoutil.c: check for calloc multiplication overflow
Eric Biggers [Sat, 17 Dec 2016 03:47:44 +0000 (19:47 -0800)]
util.c: check for calloc multiplication overflow

22 months agolcpit_matchfinder.c: update link to libdivsufsort
Eric Biggers [Sat, 17 Dec 2016 03:47:44 +0000 (19:47 -0800)]
lcpit_matchfinder.c: update link to libdivsufsort

22 months agowlfuzz: don't generate reserved short names with extension
Eric Biggers [Thu, 15 Dec 2016 04:49:55 +0000 (20:49 -0800)]
wlfuzz: don't generate reserved short names with extension

22 months agowlfuzz: updates for sparse files
Eric Biggers [Thu, 15 Dec 2016 04:49:55 +0000 (20:49 -0800)]
wlfuzz: updates for sparse files

22 months agowin32-test-imagex-capture_and_apply: sparse file tests
Eric Biggers [Thu, 15 Dec 2016 04:49:55 +0000 (20:49 -0800)]
win32-test-imagex-capture_and_apply: sparse file tests

22 months agoExtract sparse files as sparse
Eric Biggers [Thu, 15 Dec 2016 04:49:55 +0000 (20:49 -0800)]
Extract sparse files as sparse

When extracting a stream belonging to an inode with
FILE_ATTRIBUTE_SPARSE_FILE set, before writing any data, mark the
extracted stream as sparse if needed and skip preallocating space.
Then, skip writing zero regions.  This makes it so that sparse files are
still sparse after extraction.

22 months agounix_apply.c: preallocate space for regular files
Eric Biggers [Thu, 15 Dec 2016 04:49:55 +0000 (20:49 -0800)]
unix_apply.c: preallocate space for regular files

22 months agounix_capture.c: mark regular files as sparse when appropriate
Eric Biggers [Thu, 15 Dec 2016 04:49:55 +0000 (20:49 -0800)]
unix_capture.c: mark regular files as sparse when appropriate

22 months agoresource: pass blob and offset to consume_chunk
Eric Biggers [Thu, 15 Dec 2016 04:49:55 +0000 (20:49 -0800)]
resource: pass blob and offset to consume_chunk

This makes it so that users don't need to keep track of the current blob
and offset themselves.

22 months agoImproved handling of Data Deduplication reparse points
Eric Biggers [Sat, 3 Dec 2016 06:48:23 +0000 (22:48 -0800)]
Improved handling of Data Deduplication reparse points

22 months agov1.11.0-BETA1
Eric Biggers [Mon, 28 Nov 2016 03:38:50 +0000 (19:38 -0800)]
v1.11.0-BETA1

22 months agoexamples: C++ and Windows compatibility
Eric Biggers [Mon, 28 Nov 2016 03:19:41 +0000 (19:19 -0800)]
examples: C++ and Windows compatibility

22 months agoInclude import library and header in Windows releases
Eric Biggers [Sun, 27 Nov 2016 23:37:21 +0000 (15:37 -0800)]
Include import library and header in Windows releases

22 months agowimlib.h: define bool for old MSVC versions
Eric Biggers [Sun, 27 Nov 2016 23:24:38 +0000 (15:24 -0800)]
wimlib.h: define bool for old MSVC versions

It's also unnecessary to define bool in C++ mode.

22 months agowimlib.h: include <stdint.h> instead of <inttypes.h>
Eric Biggers [Sun, 27 Nov 2016 23:24:37 +0000 (15:24 -0800)]
wimlib.h: include <stdint.h> instead of <inttypes.h>

We only need stdint.h, and old (VS pre-2013) MSVC versions don't have
inttypes.h.

22 months agowimlib.h: test _WIN32 instead of __WIN32__
Eric Biggers [Sun, 27 Nov 2016 23:24:37 +0000 (15:24 -0800)]
wimlib.h: test _WIN32 instead of __WIN32__

MSVC defines _WIN32 but not __WIN32__.  MinGW defines both.

22 months agowimlib.h: define timespec for MSVC compatibility
Eric Biggers [Sun, 27 Nov 2016 23:24:36 +0000 (15:24 -0800)]
wimlib.h: define timespec for MSVC compatibility

22 months agowlfuzz: note Windows restrictions on short names
Eric Biggers [Sun, 27 Nov 2016 23:24:36 +0000 (15:24 -0800)]
wlfuzz: note Windows restrictions on short names

22 months agowlfuzz: allow short name associated with long name ending with dot or space
Eric Biggers [Sun, 27 Nov 2016 23:24:35 +0000 (15:24 -0800)]
wlfuzz: allow short name associated with long name ending with dot or space

22 months agontfs-3g_apply.c: add message about another known libntfs-3g bug
Eric Biggers [Sun, 27 Nov 2016 23:24:34 +0000 (15:24 -0800)]
ntfs-3g_apply.c: add message about another known libntfs-3g bug

23 months agoREADME.WINDOWS: document building with release script
Eric Biggers [Thu, 17 Nov 2016 07:03:04 +0000 (23:03 -0800)]
README.WINDOWS: document building with release script

23 months agointegrity.c: add casts when converting endianness in-place
Eric Biggers [Thu, 17 Nov 2016 05:32:13 +0000 (21:32 -0800)]
integrity.c: add casts when converting endianness in-place

This fixes some 'sparse' warnings.  No change in behavior.

23 months agoregistry.c: be explicit with le16 => bool conversion
Eric Biggers [Thu, 17 Nov 2016 05:32:12 +0000 (21:32 -0800)]
registry.c: be explicit with le16 => bool conversion

This fixes some 'sparse' warnings.  No change in behavior.

23 months agocompiler.h: define STATIC_ASSERT() to no-op when checking with sparse
Eric Biggers [Thu, 17 Nov 2016 05:32:11 +0000 (21:32 -0800)]
compiler.h: define STATIC_ASSERT() to no-op when checking with sparse

The expression used in STATIC_ASSERT() was not compatible with 'sparse'.

23 months agoextract.c: don't use ifdef within macro argument
Eric Biggers [Thu, 17 Nov 2016 05:32:10 +0000 (21:32 -0800)]
extract.c: don't use ifdef within macro argument

This was nonstandard and 'sparse' complained about it.