]> wimlib.net Git - wimlib/blobdiff - include/wimlib/capture.h
Report directory tree scan errors
[wimlib] / include / wimlib / capture.h
index 58e0eac3a80439675cabad9d5cd209c903c9bada..b2938d510b6a59d622d8f6f8f0f7dba6cc44c3ef 100644 (file)
@@ -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"
@@ -52,10 +53,14 @@ struct add_image_params {
        /* 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 */
@@ -78,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 *);
@@ -111,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 */