]> wimlib.net Git - wimlib/blobdiff - src/unix_capture.c
Workaround for WOF incompatibility
[wimlib] / src / unix_capture.c
index 15e1d153923a0bedfee0603ee412b89552f2d44a..884c9fd4394972c4475842f1d5482d9a662b2ec9 100644 (file)
@@ -5,20 +5,18 @@
 /*
  * Copyright (C) 2012, 2013, 2014 Eric Biggers
  *
- * This file is part of wimlib, a library for working with WIM files.
+ * This file is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option) any
+ * later version.
  *
- * wimlib is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 3 of the License, or (at your option)
- * any later version.
- *
- * wimlib is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * This file is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  * details.
  *
- * You should have received a copy of the GNU General Public License
- * along with wimlib; if not, see http://www.gnu.org/licenses/.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this file; if not, see http://www.gnu.org/licenses/.
  */
 
 #ifndef __WIN32__
@@ -123,6 +121,7 @@ unix_scan_regular_file(const char *path, u64 size, struct wim_inode *inode,
                return WIMLIB_ERR_NOMEM;
        }
        lte->file_on_disk = file_on_disk;
+       lte->file_inode = inode;
        lte->resource_location = RESOURCE_IN_FILE_ON_DISK;
        lte->size = size;
        add_unhashed_stream(lte, inode, 0, unhashed_streams);
@@ -335,10 +334,11 @@ unix_build_dentry_tree_recursive(struct wim_dentry **tree_ret,
        struct stat stbuf;
        int stat_flags;
 
-       if (should_exclude_path(full_path + params->capture_root_nchars,
-                               full_path_len - params->capture_root_nchars,
-                               params->config))
+       ret = try_exclude(full_path, full_path_len, params);
+       if (ret < 0) /* Excluded? */
                goto out_progress;
+       if (ret > 0) /* Error? */
+               goto out;
 
        if (params->add_flags & (WIMLIB_ADD_FLAG_DEREFERENCE |
                                 WIMLIB_ADD_FLAG_ROOT))