* documentation for ::WIMLIB_ADD_FLAG_RPFIX. */
#define WIMLIB_ADD_FLAG_NORPFIX 0x00000200
+/** Do not exclude unsupported files or directories from capture; e.g. encrypted
+ * directories in NTFS-3g capture mode, or device files and FIFOs on UNIX-like
+ * systems. Instead, fail with ::WIMLIB_ERR_UNSUPPORTED_FILE when such a file
+ * is encountered. */
+#define WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE 0x00000400
+
+
#define WIMLIB_ADD_IMAGE_FLAG_NTFS WIMLIB_ADD_FLAG_NTFS
#define WIMLIB_ADD_IMAGE_FLAG_DEREFERENCE WIMLIB_ADD_FLAG_DEREFERENCE
#define WIMLIB_ADD_IMAGE_FLAG_VERBOSE WIMLIB_ADD_FLAG_VERBOSE
#define WIMLIB_ADD_IMAGE_FLAG_EXCLUDE_VERBOSE WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE
#define WIMLIB_ADD_IMAGE_FLAG_RPFIX WIMLIB_ADD_FLAG_RPFIX
#define WIMLIB_ADD_IMAGE_FLAG_NORPFIX WIMLIB_ADD_FLAG_NORPFIX
+#define WIMLIB_ADD_IMAGE_FLAG_NO_UNSUPPORTED_EXCLUDE \
+ WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE
/******************************
* WIMLIB_DELETE_FLAG_*
WIMLIB_ERR_UNICODE_STRING_NOT_REPRESENTABLE,
WIMLIB_ERR_UNKNOWN_VERSION,
WIMLIB_ERR_UNSUPPORTED,
+ WIMLIB_ERR_UNSUPPORTED_FILE,
WIMLIB_ERR_VOLUME_LACKS_FEATURES,
WIMLIB_ERR_WIM_IS_READONLY,
WIMLIB_ERR_WRITE,
if ((attributes & (FILE_ATTRIBUTE_DIRECTORY |
FILE_ATTRIBUTE_ENCRYPTED)) == FILE_ATTRIBUTE_ENCRYPTED)
{
+ if (params->add_flags & WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE)
+ {
+ ERROR("Can't archive unsupported encrypted file \"%s\"", path);
+ return WIMLIB_ERR_UNSUPPORTED_FILE;
+ }
if ((params->add_flags & WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE)
&& params->progress_func)
{
}
if (!S_ISREG(stbuf.st_mode) && !S_ISDIR(stbuf.st_mode)
&& !S_ISLNK(stbuf.st_mode)) {
+ if (params->add_flags & WIMLIB_ADD_FLAG_NO_UNSUPPORTED_EXCLUDE)
+ {
+ ERROR("Can't archive unsupported file \"%s\"", path);
+ return WIMLIB_ERR_UNSUPPORTED_FILE;
+ }
if ((params->add_flags & WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE)
&& params->progress_func)
{
= T("The WIM file is marked with an unknown version number"),
[WIMLIB_ERR_UNSUPPORTED]
= T("The requested operation is unsupported"),
+ [WIMLIB_ERR_UNSUPPORTED_FILE]
+ = T("A file in the directory tree to archive was not of a supported type"),
[WIMLIB_ERR_VOLUME_LACKS_FEATURES]
= T("The volume did not support a feature necessary to complete the operation"),
[WIMLIB_ERR_WIM_IS_READONLY]