]> wimlib.net Git - wimlib/blobdiff - src/add_image.c
add_image => add
[wimlib] / src / add_image.c
index 74d93f9f208d87c6c31e05df4d1bd028375d6867..263c2e757330ecb5931a19a98763a1d21cf5d79b 100644 (file)
@@ -121,12 +121,12 @@ out:
 static struct wimlib_update_command *
 capture_sources_to_add_cmds(const struct wimlib_capture_source *sources,
                            size_t num_sources,
-                           int add_image_flags,
+                           int add_flags,
                            const struct wimlib_capture_config *config)
 {
        struct wimlib_update_command *add_cmds;
 
-       DEBUG("Translating %zu capture sources to wimlib_update_command's",
+       DEBUG("Translating %zu capture sources to `struct wimlib_update_command's",
              num_sources);
        add_cmds = CALLOC(num_sources, sizeof(add_cmds[0]));
        if (add_cmds) {
@@ -137,7 +137,7 @@ capture_sources_to_add_cmds(const struct wimlib_capture_source *sources,
                              sources[i].fs_source_path,
                              sources[i].wim_target_path);
                        add_cmds[i].op = WIMLIB_UPDATE_OP_ADD;
-                       add_cmds[i].add.add_flags = add_image_flags;
+                       add_cmds[i].add.add_flags = add_flags;
                        add_cmds[i].add.config = (struct wimlib_capture_config*)config;
                        add_cmds[i].add.fs_source_path = sources[i].fs_source_path;
                        add_cmds[i].add.wim_target_path = sources[i].wim_target_path;
@@ -146,41 +146,50 @@ capture_sources_to_add_cmds(const struct wimlib_capture_source *sources,
        return add_cmds;
 }
 
+/* Adds an image to the WIMStruct from multiple on-disk directory trees, or a
+ * NTFS volume. */
 WIMLIBAPI int
 wimlib_add_image_multisource(WIMStruct *wim,
                             const struct wimlib_capture_source *sources,
                             size_t num_sources,
                             const tchar *name,
                             const struct wimlib_capture_config *config,
-                            int add_image_flags,
+                            int add_flags,
                             wimlib_progress_func_t progress_func)
 {
        int ret;
        struct wimlib_update_command *add_cmds;
 
-       DEBUG("Adding image \"%"TS"\" from %zu sources (add_image_flags=%x)",
-             name, num_sources, add_image_flags);
+       DEBUG("Adding image \"%"TS"\" from %zu sources (add_flags=%#x)",
+             name, num_sources, add_flags);
 
+       /* Add the new image (initially empty) */
        ret = wimlib_add_empty_image(wim, name, NULL);
        if (ret)
                goto out;
 
+       /* Translate the "capture sources" into generic update commands. */
        add_cmds = capture_sources_to_add_cmds(sources, num_sources,
-                                              add_image_flags, config);
+                                              add_flags, config);
        if (!add_cmds) {
                ret = WIMLIB_ERR_NOMEM;
                goto out_delete_image;
        }
+
+       /* Delegate the work to wimlib_update_image(). */
        ret = wimlib_update_image(wim, wim->hdr.image_count, add_cmds, 
                                  num_sources, 0, progress_func);
        FREE(add_cmds);
        if (ret)
                goto out_delete_image;
-       if (add_image_flags & WIMLIB_ADD_IMAGE_FLAG_BOOT)
+
+       /* Success; set boot index if requested. */
+       if (add_flags & WIMLIB_ADD_FLAG_BOOT)
                wim->hdr.boot_idx = wim->hdr.image_count;
        ret = 0;
        goto out;
 out_delete_image:
+       /* Roll back the image we added */
        put_image_metadata(wim->image_metadata[wim->hdr.image_count - 1],
                           wim->lookup_table);
        xml_delete_image(&wim->wim_info, wim->hdr.image_count);
@@ -189,20 +198,23 @@ out:
        return ret;
 }
 
+/* Adds an image to the WIMStruct from an on-disk directory tree or NTFS volume. */
 WIMLIBAPI int
 wimlib_add_image(WIMStruct *wim,
                 const tchar *source,
                 const tchar *name,
                 const struct wimlib_capture_config *config,
-                int add_image_flags,
+                int add_flags,
                 wimlib_progress_func_t progress_func)
 {
+       /* Delegate the work to the more general wimlib_add_image_multisource().
+        * */
        const struct wimlib_capture_source capture_src = {
                .fs_source_path = (tchar*)source,
-               .wim_target_path = NULL,
+               .wim_target_path = T(""),
                .reserved = 0,
        };
        return wimlib_add_image_multisource(wim, &capture_src, 1, name,
-                                           config, add_image_flags,
+                                           config, add_flags,
                                            progress_func);
 }