]> wimlib.net Git - wimlib/blobdiff - include/wimlib/capture.h
Parse capture configuration file in library
[wimlib] / include / wimlib / capture.h
index 7ff82db233d4c2f4b0dba989c1a8955cbb71504f..995a60f3fb4906ac95339075f4c4bd713fe92c80 100644 (file)
@@ -5,12 +5,21 @@
 #include "wimlib/inode_table.h"
 #include "wimlib/list.h"
 #include "wimlib/security.h"
+#include "wimlib/textfile.h"
 #include "wimlib/util.h"
 
 struct wim_lookup_table;
 struct wim_dentry;
 struct wim_inode;
 
+struct capture_config {
+       struct string_set exclusion_pats;
+       struct string_set exclusion_exception_pats;
+       tchar *prefix;
+       size_t prefix_num_tchars;
+       tchar *buf;
+};
+
 /* Common parameters to implementations of building an in-memory dentry tree
  * from an on-disk directory structure. */
 struct add_image_params {
@@ -28,9 +37,8 @@ struct add_image_params {
         * image so far. */
        struct wim_sd_set sd_set;
 
-       /* Pointer to the capture configuration, which indicates whether any
-        * files should be excluded from capture or not. */
-       struct wimlib_capture_config *config;
+       /* Pointer to the capture configuration.  */
+       struct capture_config *config;
 
        /* Flags that affect the capture operation (WIMLIB_ADD_FLAG_*) */
        int add_flags;
@@ -56,20 +64,17 @@ extern void
 do_capture_progress(struct add_image_params *params, int status,
                    const struct wim_inode *inode);
 
-extern bool
-exclude_path(const tchar *path, size_t path_len,
-            const struct wimlib_capture_config *config,
-            bool exclude_prefix);
-
-extern struct wimlib_capture_config *
-copy_capture_config(const struct wimlib_capture_config *config);
-
 extern int
-copy_and_canonicalize_capture_config(const struct wimlib_capture_config *config,
-                                    struct wimlib_capture_config **config_copy_ret);
+do_read_capture_config_file(const tchar *config_file, tchar *buf, size_t buflen,
+                           struct capture_config *config);
 
 extern void
-free_capture_config(struct wimlib_capture_config *config);
+destroy_capture_config(struct capture_config *config);
+
+extern bool
+exclude_path(const tchar *path, size_t path_len,
+            const struct capture_config *config,
+            bool exclude_prefix);
 
 
 #ifdef WITH_NTFS_3G