/* Path to extracted file, or "cookie" identifying the file (e.g. inode number).
* */
typedef union {
- const char *path;
+ const tchar *path;
u64 cookie;
} file_spec_t;
/* OPTIONAL: Set file attributes. Calling code calls this if non-NULL.
*/
int (*set_file_attributes)
- (const tchar *path, u32 attributes, struct apply_ctx *ctx);
+ (const tchar *path, u32 attributes, struct apply_ctx *ctx,
+ unsigned pass);
/* OPTIONAL: Set reparse data. In start_extract(), set
* ctx->supported_features.reparse_data if supported. */
* then be passed to callbacks taking a 'file_spec_t', rather than the
* path. */
unsigned uses_cookies : 1;
+
+ /* OPTIONAL: Set to 1 if set_file_attributes() needs to be called a
+ * second time towards the end of the extraction. */
+ unsigned requires_final_set_attributes_pass : 1;
};
struct wim_features {