]> wimlib.net Git - wimlib/blobdiff - src/update_image.c
wincfg: Add swapfile.sys
[wimlib] / src / update_image.c
index 37d6593c1cc0f0b9bed4d6bb2b312e10f033a1c7..c088c831786f18e7920c2667cb66f55b067a5169 100644 (file)
@@ -722,6 +722,7 @@ static const char wincfg[] =
 "/$ntfs.log\n"
 "/hiberfil.sys\n"
 "/pagefile.sys\n"
+"/swapfile.sys\n"
 "/System Volume Information\n"
 "/RECYCLER\n"
 "/Windows/CSC\n";
@@ -815,8 +816,8 @@ execute_add_command(struct update_command_journal *j,
 
        memset(&params, 0, sizeof(params));
 
+#ifdef WITH_NTFS_3G
        if (add_flags & WIMLIB_ADD_FLAG_NTFS) {
-       #ifdef WITH_NTFS_3G
                capture_tree = build_dentry_tree_ntfs;
                extra_arg = &ntfs_vol;
                if (wim_get_current_image_metadata(wim)->ntfs_vol != NULL) {
@@ -824,11 +825,8 @@ execute_add_command(struct update_command_journal *j,
                        ret = WIMLIB_ERR_INVALID_PARAM;
                        goto out;
                }
-       #else
-               ret = WIMLIB_ERR_INVALID_PARAM;
-               goto out;
-       #endif
        }
+#endif
 
        ret = get_capture_config(config_file, &config,
                                 add_flags, fs_source_path);
@@ -849,9 +847,6 @@ execute_add_command(struct update_command_journal *j,
        if (progress_func)
                progress_func(WIMLIB_PROGRESS_MSG_SCAN_BEGIN, &params.progress);
 
-       config.prefix = fs_source_path;
-       config.prefix_num_tchars = tstrlen(fs_source_path);
-
        if (WIMLIB_IS_WIM_ROOT_PATH(wim_target_path))
                params.add_flags |= WIMLIB_ADD_FLAG_ROOT;
        ret = (*capture_tree)(&branch, fs_source_path, &params);
@@ -1257,13 +1252,17 @@ check_add_command(struct wimlib_update_command *cmd,
 
        bool is_entire_image = WIMLIB_IS_WIM_ROOT_PATH(cmd->add.wim_target_path);
 
-#ifdef __WIN32__
-       /* Check for flags not supported on Windows */
+#ifndef WITH_NTFS_3G
        if (add_flags & WIMLIB_ADD_FLAG_NTFS) {
-               ERROR("wimlib was compiled without support for NTFS-3g, so");
-               ERROR("we cannot capture a WIM image directly from a NTFS volume");
+               ERROR("wimlib was compiled without support for NTFS-3g, so\n"
+                     "        we cannot capture a WIM image directly "
+                     "from an NTFS volume");
                return WIMLIB_ERR_UNSUPPORTED;
        }
+#endif
+
+#ifdef __WIN32__
+       /* Check for flags not supported on Windows */
        if (add_flags & WIMLIB_ADD_FLAG_UNIX_DATA) {
                ERROR("Capturing UNIX-specific data is not supported on Windows");
                return WIMLIB_ERR_UNSUPPORTED;
@@ -1372,9 +1371,7 @@ free_update_commands(struct wimlib_update_command *cmds, size_t num_cmds)
                for (size_t i = 0; i < num_cmds; i++) {
                        switch (cmds[i].op) {
                        case WIMLIB_UPDATE_OP_ADD:
-                               FREE(cmds[i].add.fs_source_path);
                                FREE(cmds[i].add.wim_target_path);
-                               FREE(cmds[i].add.config_file);
                                break;
                        case WIMLIB_UPDATE_OP_DELETE:
                                FREE(cmds[i].delete_.wim_path);
@@ -1405,18 +1402,12 @@ copy_update_commands(const struct wimlib_update_command *cmds,
                cmds_copy[i].op = cmds[i].op;
                switch (cmds[i].op) {
                case WIMLIB_UPDATE_OP_ADD:
-                       cmds_copy[i].add.fs_source_path =
-                               canonicalize_fs_path(cmds[i].add.fs_source_path);
+                       cmds_copy[i].add.fs_source_path = cmds[i].add.fs_source_path;
                        cmds_copy[i].add.wim_target_path =
                                canonicalize_wim_path(cmds[i].add.wim_target_path);
-                       if (!cmds_copy[i].add.fs_source_path ||
-                           !cmds_copy[i].add.wim_target_path)
+                       if (!cmds_copy[i].add.wim_target_path)
                                goto oom;
-                       if (cmds[i].add.config_file) {
-                               cmds_copy[i].add.config_file = TSTRDUP(cmds[i].add.config_file);
-                               if (!cmds_copy[i].add.config_file)
-                                       goto oom;
-                       }
+                       cmds_copy[i].add.config_file = cmds[i].add.config_file;
                        cmds_copy[i].add.add_flags = cmds[i].add.add_flags;
                        break;
                case WIMLIB_UPDATE_OP_DELETE: