]> wimlib.net Git - wimlib/blobdiff - src/capture_common.c
bt_matchfinder: make callers do max_len check
[wimlib] / src / capture_common.c
index ee051aea8c52c87a3333644482de3163b24b22a0..0a2f26cd816aeca992d8404984b68d4083dbfbc6 100644 (file)
@@ -135,7 +135,7 @@ mangle_pat(tchar *pat, const tchar *path, unsigned long line_no)
         * Note: we expect that this function produces patterns that can be used
         * for both filesystem paths and WIM paths, so the desired path
         * separators must be the same.  */
-       BUILD_BUG_ON(OS_PREFERRED_PATH_SEPARATOR != WIM_PATH_SEPARATOR);
+       STATIC_ASSERT(OS_PREFERRED_PATH_SEPARATOR == WIM_PATH_SEPARATOR);
        do_canonicalize_path(pat, pat);
 
        /* Relative patterns can only match file names, so they must be
@@ -340,3 +340,18 @@ should_ignore_filename(const tchar *name, const int name_nchars)
 
        return false;
 }
+
+/* Attach a newly scanned directory tree to its parent directory, with duplicate
+ * handling.  */
+void
+attach_scanned_tree(struct wim_dentry *parent, struct wim_dentry *child,
+                   struct blob_table *blob_table)
+{
+       struct wim_dentry *duplicate;
+
+       if (child && (duplicate = dentry_add_child(parent, child))) {
+               WARNING("Duplicate file path: \"%"TS"\".  Only capturing "
+                       "the first version.", dentry_full_path(duplicate));
+               free_dentry_tree(child, blob_table);
+       }
+}