X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fwimlib.h;h=89d645692623c2a31a422922fffde330c513f269;hp=f5aa9daa5ff4d063ffec66b0d9d6ec33cb0c0103;hb=50ae56edcc3938f5183ddfc8910de2df5774eaf6;hpb=2b4002220a86b32fbae34c1bc59c5804289103c5 diff --git a/src/wimlib.h b/src/wimlib.h index f5aa9daa..89d64569 100644 --- a/src/wimlib.h +++ b/src/wimlib.h @@ -694,6 +694,22 @@ struct wimlib_capture_config { * ::WIMLIB_ADD_IMAGE_FLAG_VERBOSE. */ #define WIMLIB_ADD_IMAGE_FLAG_EXCLUDE_VERBOSE 0x00000080 +/** 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. + * + * 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. + * WIM_HDR_FLAG_RP_FIX is set if the first image in a WIM is captured with + * reparse point fixups enabled and currently cannot be unset. */ +#define WIMLIB_ADD_IMAGE_FLAG_RPFIX 0x00000100 + +/* Don't do reparse point fixups. The default behavior is described in the + * documentation for ::WIMLIB_ADD_IMAGE_FLAG_RPFIX. */ +#define WIMLIB_ADD_IMAGE_FLAG_NORPFIX 0x00000200 + /****************************** * WIMLIB_EXPORT_FLAG_* * ******************************/ @@ -741,6 +757,16 @@ struct wimlib_capture_config { * not have permission to set the desired one. */ #define WIMLIB_EXTRACT_FLAG_STRICT_ACLS 0x00000080 +/* Extract equivalent to ::WIMLIB_ADD_IMAGE_FLAG_RPFIX; force reparse-point + * fixups on, so absolute symbolic links or junction points will be fixed to be + * absolute relative to the actual extraction root. Done by default if + * WIM_HDR_FLAG_RP_FIX is set in the WIM header. */ +#define WIMLIB_EXTRACT_FLAG_RPFIX 0x00000100 + +/** Force reparse-point fixups on extraction off, regardless of the state of the + * WIM_HDR_FLAG_RP_FIX flag in the WIM header. */ +#define WIMLIB_EXTRACT_FLAG_NORPFIX 0x00000200 + /****************************** * WIMLIB_MOUNT_FLAG_* * ******************************/ @@ -916,6 +942,7 @@ enum wimlib_error_code { WIMLIB_ERR_ICONV_NOT_AVAILABLE, WIMLIB_ERR_IMAGE_COUNT, WIMLIB_ERR_IMAGE_NAME_COLLISION, + WIMLIB_ERR_INSUFFICIENT_PRIVILEGES_TO_EXTRACT, WIMLIB_ERR_INTEGRITY, WIMLIB_ERR_INVALID_CAPTURE_CONFIG, WIMLIB_ERR_INVALID_CHUNK_SIZE, @@ -929,6 +956,7 @@ enum wimlib_error_code { WIMLIB_ERR_INVALID_OVERLAY, WIMLIB_ERR_INVALID_PARAM, WIMLIB_ERR_INVALID_PART_NUMBER, + WIMLIB_ERR_INVALID_REPARSE_DATA, WIMLIB_ERR_INVALID_RESOURCE_HASH, WIMLIB_ERR_INVALID_RESOURCE_SIZE, WIMLIB_ERR_INVALID_SECURITY_DATA, @@ -950,6 +978,7 @@ enum wimlib_error_code { WIMLIB_ERR_READLINK, WIMLIB_ERR_RENAME, WIMLIB_ERR_REOPEN, + WIMLIB_ERR_REPARSE_POINT_FIXUP_FAILED, WIMLIB_ERR_RESOURCE_ORDER, WIMLIB_ERR_SPECIAL_FILE, WIMLIB_ERR_SPLIT_INVALID,