X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;ds=inline;f=include%2Fwimlib%2Fcapture.h;h=b2938d510b6a59d622d8f6f8f0f7dba6cc44c3ef;hb=c3e9bd8344d97960e8e6cf29cc1ff633e925f986;hp=f7ae1ada5272969605a16e407e08ac3c687aadae;hpb=88bfb44de205f72acaefac0d509e1e4e604496f1;p=wimlib diff --git a/include/wimlib/capture.h b/include/wimlib/capture.h index f7ae1ada..b2938d51 100644 --- a/include/wimlib/capture.h +++ b/include/wimlib/capture.h @@ -4,6 +4,7 @@ #include "wimlib.h" #include "wimlib/inode_table.h" #include "wimlib/list.h" +#include "wimlib/progress.h" #include "wimlib/security.h" #include "wimlib/textfile.h" #include "wimlib/util.h" @@ -45,23 +46,26 @@ struct add_image_params { * libntfs-3g capture. */ void *extra_arg; - /* If non-NULL, the user-supplied progress function. */ - wimlib_progress_func_t progress_func; + wimlib_progress_func_t progfunc; + void *progctx; /* Progress data. */ union wimlib_progress_info progress; + /* The capture implementation must set this to the number of characters + * that try_exclude() will strip from the path before testing exclusion + * patterns from the capture configuration file. */ + size_t capture_root_nchars; + /* Can be used by the capture implementation. */ u64 capture_root_ino; u64 capture_root_dev; - size_t capture_root_nchars; }; - /* capture_common.c */ -extern void +extern int do_capture_progress(struct add_image_params *params, int status, const struct wim_inode *inode); @@ -79,9 +83,9 @@ extern bool match_pattern_list(const tchar *path, size_t path_nchars, const struct string_set *list); -extern bool -should_exclude_path(const tchar *path, size_t path_nchars, - const struct capture_config *config); +extern int +try_exclude(const tchar *full_path, size_t full_path_nchars, + const struct add_image_params *params); typedef int (*capture_tree_t)(struct wim_dentry **, const tchar *, struct add_image_params *); @@ -112,4 +116,11 @@ unix_build_dentry_tree(struct wim_dentry **root_ret, #define WIMLIB_ADD_FLAG_ROOT 0x80000000 +static inline int +report_capture_error(struct add_image_params *params, int error_code, + const tchar *path) +{ + return report_error(params->progfunc, params->progctx, error_code, path); +} + #endif /* _WIMLIB_CAPTURE_H */