]> wimlib.net Git - wimlib/blobdiff - include/wimlib.h
Don't exclude out-of-tree absolute symlinks in reparse point fix mode
[wimlib] / include / wimlib.h
index ff45e32bc7cc9faead3633fde8e9d035cf65a321..5e49f92eaec78c12c8bbcf970ae7bde807d072ff 100644 (file)
@@ -716,14 +716,6 @@ union wimlib_progress_info {
                         * unsupported (e.g. an encrypted or device file).  */
                        WIMLIB_SCAN_DENTRY_UNSUPPORTED,
 
-                       /** The file is an absolute symbolic link or junction
-                        * point and it is being excluded from capture because
-                        * it points outside of the capture directory and
-                        * reparse-point fixups are enabled.  (Reparse point
-                        * fixups can be disabled by using the flag
-                        * ::WIMLIB_ADD_FLAG_NORPFIX.)  */
-                       WIMLIB_SCAN_DENTRY_EXCLUDED_SYMLINK,
-
                        /** The file is an absolute symbolic link or junction
                         * that points into the capture directory, and
                         * reparse-point fixups are enabled, so its target is
@@ -731,6 +723,12 @@ union wimlib_progress_info {
                         * disabled with the flag ::WIMLIB_ADD_FLAG_NORPFIX.)
                         */
                        WIMLIB_SCAN_DENTRY_FIXED_SYMLINK,
+
+                       /** Reparse-point fixups are enabled, but the file is an
+                        * absolute symbolic link or junction that does
+                        * <b>not</b> point into the capture directory, so its
+                        * target is <b>not</b> being adjusted.  */
+                       WIMLIB_SCAN_DENTRY_NOT_FIXED_SYMLINK,
                } status;
 
                union {
@@ -740,9 +738,9 @@ union wimlib_progress_info {
                        const wimlib_tchar *wim_target_path;
 
                        /** For ::WIMLIB_PROGRESS_MSG_SCAN_DENTRY and a status
-                        * of @p WIMLIB_SCAN_DENTRY_EXCLUDED_SYMLINK or @p
-                        * WIMLIB_SCAN_DENTRY_FIXED_SYMLINK, this is the target
-                        * of the absolute symbolic link or junction.  */
+                        * of @p WIMLIB_SCAN_DENTRY_FIXED_SYMLINK or @p
+                        * WIMLIB_SCAN_DENTRY_NOT_FIXED_SYMLINK, this is the
+                        * target of the absolute symbolic link or junction.  */
                        const wimlib_tchar *symlink_target;
                };
 
@@ -1378,8 +1376,7 @@ typedef int (*wimlib_iterate_lookup_table_callback_t)(const struct wimlib_resour
 /** Reparse-point fixups:  Modify absolute symbolic links (or junction points,
  * in the case of Windows) that point inside the directory being captured to
  * instead be absolute relative to the directory being captured, rather than the
- * current root; also exclude absolute symbolic links that point outside the
- * directory tree being captured.
+ * current root.
  *
  * Without this flag, the default is to do this if WIM_HDR_FLAG_RP_FIX is set in
  * the WIM header or if this is the first image being added.
@@ -1874,7 +1871,7 @@ typedef int (*wimlib_iterate_lookup_table_callback_t)(const struct wimlib_resour
  * all streams recompressed in solid mode.
  *
  * Currently, new solid blocks will, by default, be written using LZMS
- * compression with 32 MiB (33554432 byte) chunks.  Use
+ * compression with 64 MiB (67108864 byte) chunks.  Use
  * wimlib_set_output_pack_compression_type() and/or
  * wimlib_set_output_pack_chunk_size() to change this.  This is independent of
  * the WIM's main compression type and chunk size; you can have a WIM that
@@ -2035,11 +2032,7 @@ enum wimlib_error_code {
        WIMLIB_ERR_SUCCESS                            = 0,
        WIMLIB_ERR_ALREADY_LOCKED                     = 1,
        WIMLIB_ERR_DECOMPRESSION                      = 2,
-       WIMLIB_ERR_DELETE_STAGING_DIR                 = 3,
-       WIMLIB_ERR_FILESYSTEM_DAEMON_CRASHED          = 4,
-       WIMLIB_ERR_FORK                               = 5,
        WIMLIB_ERR_FUSE                               = 6,
-       WIMLIB_ERR_FUSERMOUNT                         = 7,
        WIMLIB_ERR_GLOB_HAD_NO_MATCHES                = 8,
        WIMLIB_ERR_ICONV_NOT_AVAILABLE                = 9,
        WIMLIB_ERR_IMAGE_COUNT                        = 10,
@@ -2061,7 +2054,6 @@ enum wimlib_error_code {
        WIMLIB_ERR_INVALID_PIPABLE_WIM                = 26,
        WIMLIB_ERR_INVALID_REPARSE_DATA               = 27,
        WIMLIB_ERR_INVALID_RESOURCE_HASH              = 28,
-       WIMLIB_ERR_INVALID_UNMOUNT_MESSAGE            = 29,
        WIMLIB_ERR_INVALID_UTF16_STRING               = 30,
        WIMLIB_ERR_INVALID_UTF8_STRING                = 31,
        WIMLIB_ERR_IS_DIRECTORY                       = 32,
@@ -2085,7 +2077,6 @@ enum wimlib_error_code {
        WIMLIB_ERR_READ                               = 50,
        WIMLIB_ERR_READLINK                           = 51,
        WIMLIB_ERR_RENAME                             = 52,
-       WIMLIB_ERR_REOPEN                             = 53,
        WIMLIB_ERR_REPARSE_POINT_FIXUP_FAILED         = 54,
        WIMLIB_ERR_RESOURCE_NOT_FOUND                 = 55,
        WIMLIB_ERR_RESOURCE_ORDER                     = 56,
@@ -2096,13 +2087,11 @@ enum wimlib_error_code {
        WIMLIB_ERR_SET_TIMESTAMPS                     = 61,
        WIMLIB_ERR_SPLIT_INVALID                      = 62,
        WIMLIB_ERR_STAT                               = 63,
-       WIMLIB_ERR_TIMEOUT                            = 64,
        WIMLIB_ERR_UNEXPECTED_END_OF_FILE             = 65,
        WIMLIB_ERR_UNICODE_STRING_NOT_REPRESENTABLE   = 66,
        WIMLIB_ERR_UNKNOWN_VERSION                    = 67,
        WIMLIB_ERR_UNSUPPORTED                        = 68,
        WIMLIB_ERR_UNSUPPORTED_FILE                   = 69,
-       WIMLIB_ERR_VOLUME_LACKS_FEATURES              = 70,
        WIMLIB_ERR_WIM_IS_READONLY                    = 71,
        WIMLIB_ERR_WRITE                              = 72,
        WIMLIB_ERR_XML                                = 73,
@@ -4197,11 +4186,11 @@ struct wimlib_lzx_compressor_params {
        struct wimlib_compressor_params_header hdr;
 
        /** Relatively fast LZX compression algorithm with a decent compression
-        * ratio; the suggested default.  */
+        * ratio.  */
 #define WIMLIB_LZX_ALGORITHM_FAST 0
 
        /** Slower LZX compression algorithm that provides a better compression
-        * ratio.  */
+        * ratio.  This is the default.  */
 #define WIMLIB_LZX_ALGORITHM_SLOW 1
 
        /** Algorithm to use to perform the compression: either
@@ -4220,10 +4209,10 @@ struct wimlib_lzx_compressor_params {
                        uint32_t fast_reserved1[10];
                } fast;
 
-               /** Parameters for the slow algorithm.  */
+               /** Parameters for the "slow" algorithm.  */
                struct wimlib_lzx_slow_params {
                        /** If set to 1, the compressor can output length 2
-                        * matches.  If set 0, the compressor only outputs
+                        * matches.  If set 0, the compressor can only output
                         * matches of length 3 or greater.  Suggested value: 1
                         */
                        uint32_t use_len2_matches : 1;
@@ -4251,11 +4240,10 @@ struct wimlib_lzx_compressor_params {
                         * position.  Suggested value: 50.  */
                        uint32_t max_search_depth;
 
-                       /** Maximum number of potentially good matches to
-                        * consider for each position.  Suggested value: 3.  */
-                       uint32_t max_matches_per_pos;
+                       /* Note: max_matches_per_pos has been removed and no
+                        * longer has any effect.  */
 
-                       uint32_t slow_reserved2[2];
+                       uint32_t slow_reserved2[3];
 
                        /** Assumed cost of a main symbol with zero frequency.
                         * Must be at least 1 and no more than 16.  Suggested
@@ -4302,9 +4290,10 @@ struct wimlib_lzms_compressor_params {
         * value: 50.  */
        uint32_t max_search_depth;
 
-       /** Maximum number of potentially good matches to consider at each
-        * position.  Suggested value: 3.  */
-       uint32_t max_matches_per_pos;
+       /* Note: max_matches_per_pos has been removed and no longer has any
+        * effect.  */
+
+       uint32_t reserved1;
 
        /** Length of the array for the near-optimal LZ parsing algorithm.  This
         * must be at least 1.  Suggested value: 1024.  */