]> wimlib.net Git - wimlib/blobdiff - src/wimlib.h
Print each file or directory excluded
[wimlib] / src / wimlib.h
index 403d38770c61e51ae0b34ca00c054e924f1b65f3..dfa685f0938fa19242c67f4938c73430b28e7392 100644 (file)
@@ -31,7 +31,7 @@
  *
  * \section intro Introduction
  *
- * This is the documentation for the library interface of wimlib 1.3.1.  If you
+ * This is the documentation for the library interface of wimlib 1.3.2.  If you
  * have installed wimlib and want to know how to use the @b wimlib-imagex
  * program, please see the man pages instead.  Also: the actual project page
  * where you can download the source code for the library is at <a
  *
  * \section encodings Locales and character encodings
  *
- * wimlib 1.3.0 has improved handling of different character encodings compared
- * to previous versions.  Functions are explictly noted as taking
- * ::wimlib_mbchar strings, which are encoded in the locale-dependent multibyte
- * encoding (e.g.  ASCII, ISO-8859-1, or UTF-8), or ::wimlib_utf8char strings,
- * which are encoded in UTF-8.  Generally, filenames and paths are in the
- * locale-dependent multibyte encoding, while other types of data must be
- * provided in UTF-8.  Please see the  man page for @b wimlib-imagex for more
- * information.  However, I strongly recommend that you use UTF-8 for your
- * locale's encoding so that ::wimlib_mbchar strings will be encoded the same
- * way as ::wimlib_utf8char strings.
+ * To support Windows as well as UNIX, wimlib's API typically takes and returns
+ * strings of ::wimlib_tchar, which are in a platform-dependent encoding.
+ *
+ * On Windows, each ::wimlib_tchar is 2 bytes and is the same as a "wchar_t",
+ * and the encoding is UTF-16LE.
+ *
+ * On UNIX, each ::wimlib_tchar is 1 byte and is simply a "char", and the
+* encoding is the locale-dependent multibyte encoding.  I recommend you set your
+* locale to a UTF-8 capable locale to avoid any issues.  Also, by default,
+       * wimlib on UNIX will assume the locale is UTF-8 capable unless you call
+* wimlib_global_init() after having set your desired locale.
  *
  * \section Limitations
  *
  *   without mounting it, other than by adding, removing, or extracting an
  *   entire image.  The FUSE mount feature should be used for this purpose.
  * - Currently, Microsoft's @a image.exe can create slightly smaller WIM files
- *   than wimlib when using maximum (LZX) compression because it knows how to
- *   split up LZX compressed blocks, which is not yet implemented in wimlib.
+ *   than wimlib (~2% or 3% smaller) when using maximum (LZX) compression.
  * - wimlib is experimental and likely contains bugs; use Microsoft's @a
  *   imagex.exe if you want to make sure your WIM files are made "correctly".
  * - The old WIM format from Vista pre-releases is not supported.
 #define WIMLIB_MINOR_VERSION 3
 
 /** Patch version of the library (for example, the 5 in 1.2.5). */
-#define WIMLIB_PATCH_VERSION 1
+#define WIMLIB_PATCH_VERSION 2
 
 /**
  * Opaque structure that represents a WIM file.  This is an in-memory structure
@@ -273,6 +273,7 @@ typedef struct WIMStruct WIMStruct;
 #ifdef __WIN32__
 typedef wchar_t wimlib_tchar;
 #else
+/** See \ref encodings */
 typedef char wimlib_tchar;
 #endif
 
@@ -637,6 +638,19 @@ struct wimlib_capture_source {
  * mode, or in Win32 native builds. */
 #define WIMLIB_ADD_IMAGE_FLAG_NO_ACLS                  0x00000020
 
+/** Fail immediately if the full security descriptor of any file or directory
+ * cannot be accessed.  Only has an effect in Win32 native builds.  The default
+ * behavior without this flag is to first try omitting the SACL from the
+ * security descriptor, then to try omitting the security descriptor entirely.
+ * */
+#define WIMLIB_ADD_IMAGE_FLAG_STRICT_ACLS              0x00000040
+
+/** Call the progress function with the message
+ * ::WIMLIB_PROGRESS_MSG_SCAN_DENTRY when a directory or file is excluded from
+ * capture.  This is a subset of the messages provided by
+ * ::WIMLIB_ADD_IMAGE_FLAG_VERBOSE. */
+#define WIMLIB_ADD_IMAGE_FLAG_EXCLUDE_VERBOSE          0x00000080
+
 /******************************
  * WIMLIB_EXPORT_FLAG_* *
  ******************************/
@@ -675,7 +689,14 @@ struct wimlib_capture_source {
 
 /** Do not extract security descriptors.  Only has an effect in NTFS apply mode,
  * or in Win32 native builds. */
-#define WIMLIB_EXTRACT_FLAG_NOACLS                     0x00000040
+#define WIMLIB_EXTRACT_FLAG_NO_ACLS                    0x00000040
+
+/** Fail immediately if the full security descriptor of any file or directory
+ * cannot be set exactly as specified in the WIM file.  The default behavior
+ * without this flag is to fall back to setting the security descriptor with the
+ * SACL omitted, then only the default inherited security descriptor, if we do
+ * not have permission to set the desired one. */
+#define WIMLIB_EXTRACT_FLAG_STRICT_ACLS                        0x00000080
 
 /******************************
  * WIMLIB_MOUNT_FLAG_*        *