* along with wimlib; if not, see http://www.gnu.org/licenses/.
*/
-#include "wimlib_internal.h"
-#include "dentry.h"
-#include "lookup_table.h"
-#include "xml.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "wimlib.h"
+#include "wimlib/dentry.h"
+#include "wimlib/error.h"
+#include "wimlib/lookup_table.h"
+#include "wimlib/metadata.h"
+#include "wimlib/swm.h"
+#include "wimlib/xml.h"
static int
inode_allocate_needed_ltes(struct wim_inode *inode,
}
}
-/*
- * Exports an image, or all the images, from a WIM file, into another WIM file.
- */
+/* API function documented in wimlib.h */
WIMLIBAPI int
wimlib_export_image(WIMStruct *src_wim,
int src_image,
struct list_head lte_list_head;
struct wim_inode *inode;
- if (dest_wim->hdr.total_parts != 1) {
- ERROR("Exporting an image to a split WIM is "
- "unsupported");
- return WIMLIB_ERR_SPLIT_UNSUPPORTED;
- }
+ ret = can_modify_wim(dest_wim);
+ if (ret)
+ return ret;
if (src_image == WIMLIB_ALL_IMAGES) {
if (src_wim->hdr.image_count > 1) {
* the flag is set on the source WIM. */
dest_wim->hdr.flags |= WIM_HDR_FLAG_RP_FIX;
}
+ DEBUG("Successfully exported image.");
ret = 0;
goto out;
out_xml_delete_image: