/*
* Copyright (C) 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/.
*/
#ifdef HAVE_CONFIG_H
tchar *fs_source_path;
tchar *wim_target_path;
const tchar *config_file;
- struct add_image_params params;
+ struct capture_params params;
struct capture_config config;
capture_tree_t capture_tree = platform_default_capture_tree;
#ifdef WITH_NTFS_3G
#ifdef WITH_NTFS_3G
wim_get_current_image_metadata(wim)->ntfs_vol = ntfs_vol;
#endif
- if (add_flags & WIMLIB_ADD_FLAG_RPFIX)
- wim->hdr.flags |= WIM_HDR_FLAG_RP_FIX;
ret = 0;
goto out_destroy_config;
out_cleanup_after_capture:
DEBUG("Updating image %d with %zu commands", image, num_cmds);
- if (have_command_type(cmds, num_cmds, WIMLIB_UPDATE_OP_DELETE))
- ret = can_delete_from_wim(wim);
- else
- ret = can_modify_wim(wim);
-
- if (ret)
- goto out;
-
/* Load the metadata for the image to modify (if not loaded already) */
ret = select_wim_image(wim, image);
if (ret)
* directories, may have changed. Call xml_update_image_info() to
* recalculate these statistics. */
xml_update_image_info(wim, image);
+
+ for (size_t i = 0; i < num_cmds; i++)
+ if (cmds_copy[i].op == WIMLIB_UPDATE_OP_ADD &&
+ cmds_copy[i].add.add_flags & WIMLIB_ADD_FLAG_RPFIX)
+ wim->hdr.flags |= WIM_HDR_FLAG_RP_FIX;
out_free_cmds_copy:
free_update_commands(cmds_copy, num_cmds);
out:
return ret;
}
-static int
-update1(WIMStruct *wim, int image, const struct wimlib_update_command *cmd)
-{
- return wimlib_update_image(wim, image, cmd, 1, 0);
-}
-
WIMLIBAPI int
wimlib_delete_path(WIMStruct *wim, int image,
const tchar *path, int delete_flags)
cmd.delete_.wim_path = (tchar *)path;
cmd.delete_.delete_flags = delete_flags;
- return update1(wim, image, &cmd);
+ return wimlib_update_image(wim, image, &cmd, 1, 0);
}
WIMLIBAPI int
cmd.rename.wim_target_path = (tchar *)dest_path;
cmd.rename.rename_flags = 0;
- return update1(wim, image, &cmd);
+ return wimlib_update_image(wim, image, &cmd, 1, 0);
}
WIMLIBAPI int
cmd.add.add_flags = add_flags;
cmd.add.config_file = NULL;
- return update1(wim, image, &cmd);
+ return wimlib_update_image(wim, image, &cmd, 1, 0);
}