]> wimlib.net Git - wimlib/blobdiff - src/export_image.c
WIMBoot: Update docs
[wimlib] / src / export_image.c
index 81c66594227c77c4f0cb2a64eeb6153b9c9354fe..bfeef97ad6b41afc83970afd6315f072e991c4d3 100644 (file)
@@ -28,6 +28,7 @@
 #include "wimlib.h"
 #include "wimlib/dentry.h"
 #include "wimlib/error.h"
 #include "wimlib.h"
 #include "wimlib/dentry.h"
 #include "wimlib/error.h"
+#include "wimlib/inode.h"
 #include "wimlib/lookup_table.h"
 #include "wimlib/metadata.h"
 #include "wimlib/xml.h"
 #include "wimlib/lookup_table.h"
 #include "wimlib/metadata.h"
 #include "wimlib/xml.h"
@@ -42,7 +43,7 @@ inode_export_streams(struct wim_inode *inode,
        const u8 *hash;
        struct wim_lookup_table_entry *src_lte, *dest_lte;
 
        const u8 *hash;
        struct wim_lookup_table_entry *src_lte, *dest_lte;
 
-       inode_unresolve_ltes(inode);
+       inode_unresolve_streams(inode);
        for (i = 0; i <= inode->i_num_ads; i++) {
 
                /* Retrieve SHA1 message digest of stream to export.  */
        for (i = 0; i <= inode->i_num_ads; i++) {
 
                /* Retrieve SHA1 message digest of stream to export.  */
@@ -52,14 +53,14 @@ inode_export_streams(struct wim_inode *inode,
 
                /* Search for the stream (via SHA1 message digest) in the
                 * destination WIM.  */
 
                /* Search for the stream (via SHA1 message digest) in the
                 * destination WIM.  */
-               dest_lte = __lookup_resource(dest_lookup_table, hash);
+               dest_lte = lookup_stream(dest_lookup_table, hash);
                if (!dest_lte) {
                        /* Stream not yet present in destination WIM.  Search
                         * for it in the source WIM, then export it into the
                         * destination WIM.  */
                if (!dest_lte) {
                        /* Stream not yet present in destination WIM.  Search
                         * for it in the source WIM, then export it into the
                         * destination WIM.  */
-                       src_lte = __lookup_resource(src_lookup_table, hash);
+                       src_lte = lookup_stream(src_lookup_table, hash);
                        if (!src_lte)
                        if (!src_lte)
-                               return resource_not_found_error(inode, hash);
+                               return stream_not_found_error(inode, hash);
 
                        dest_lte = clone_lookup_table_entry(src_lte);
                        if (!dest_lte)
 
                        dest_lte = clone_lookup_table_entry(src_lte);
                        if (!dest_lte)
@@ -112,10 +113,15 @@ wimlib_export_image(WIMStruct *src_wim,
        u32 orig_dest_image_count;
 
        /* Check for sane parameters.  */
        u32 orig_dest_image_count;
 
        /* Check for sane parameters.  */
+       if (export_flags & ~(WIMLIB_EXPORT_FLAG_BOOT |
+                            WIMLIB_EXPORT_FLAG_NO_NAMES |
+                            WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS))
+               return WIMLIB_ERR_INVALID_PARAM;
+
        if (src_wim == NULL || dest_wim == NULL)
                return WIMLIB_ERR_INVALID_PARAM;
 
        if (src_wim == NULL || dest_wim == NULL)
                return WIMLIB_ERR_INVALID_PARAM;
 
-       if (!wim_has_metadata(src_wim) || !wim_has_metadata(dest_wim))
+       if (!wim_has_metadata(dest_wim))
                return WIMLIB_ERR_METADATA_NOT_FOUND;
 
        /* Destination WIM must be writable.  */
                return WIMLIB_ERR_METADATA_NOT_FOUND;
 
        /* Destination WIM must be writable.  */
@@ -173,7 +179,7 @@ wimlib_export_image(WIMStruct *src_wim,
                /* Determine destination image name and description.  */
 
                if (export_flags & WIMLIB_EXPORT_FLAG_NO_NAMES) {
                /* Determine destination image name and description.  */
 
                if (export_flags & WIMLIB_EXPORT_FLAG_NO_NAMES) {
-                       next_dest_name = NULL;
+                       next_dest_name = T("");
                } else if (dest_name) {
                        next_dest_name = dest_name;
                } else {
                } else if (dest_name) {
                        next_dest_name = dest_name;
                } else {
@@ -184,8 +190,8 @@ wimlib_export_image(WIMStruct *src_wim,
                DEBUG("Using name \"%"TS"\"", next_dest_name);
 
                if (export_flags & WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS) {
                DEBUG("Using name \"%"TS"\"", next_dest_name);
 
                if (export_flags & WIMLIB_EXPORT_FLAG_NO_DESCRIPTIONS) {
-                       next_dest_description = NULL;
-               } if (dest_description) {
+                       next_dest_description = T("");
+               } else if (dest_description) {
                        next_dest_description = dest_description;
                } else {
                        next_dest_description = wimlib_get_image_description(
                        next_dest_description = dest_description;
                } else {
                        next_dest_description = wimlib_get_image_description(