X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fupdate_image.c;h=c088c831786f18e7920c2667cb66f55b067a5169;hb=e3dc3c76cf0896eb98f455f2538999d23f95b61a;hp=a2589f0cfe2325149f91a4f6ac9653f1b935991e;hpb=eeb96703721a2ba6c64ec63f2c330515e8992b4f;p=wimlib diff --git a/src/update_image.c b/src/update_image.c index a2589f0c..c088c831 100644 --- a/src/update_image.c +++ b/src/update_image.c @@ -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(¶ms, 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); @@ -1254,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; @@ -1369,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); @@ -1402,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: