X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fxml.c;h=22966e0e466d7b7f5560ce7a32abba30f1c05294;hb=c3648a1bf94a11ee6eff22cb728f0efe3f4500e9;hp=383e20342dfddadabae9196380d9e866057e0dba;hpb=3071e89c11d1be71cf45b694432e5908e0c4ded9;p=wimlib diff --git a/src/xml.c b/src/xml.c index 383e2034..22966e0e 100644 --- a/src/xml.c +++ b/src/xml.c @@ -25,6 +25,13 @@ # include "config.h" #endif +#include +#include +#include +#include +#include + +#include "wimlib/assert.h" #include "wimlib/dentry.h" #include "wimlib/encoding.h" #include "wimlib/error.h" @@ -36,14 +43,6 @@ #include "wimlib/xml.h" #include "wimlib/write.h" -#include -#include -#include -#include -#include -#include -#include - /* Structures used to form an in-memory representation of the XML data (other * than the raw parse tree from libxml). */ @@ -490,7 +489,7 @@ xml_read_image_info(xmlNode *image_node, struct image_info *image_info) index_prop = xmlGetProp(image_node, "INDEX"); if (index_prop) { image_info->index = atoi(index_prop); - FREE(index_prop); + xmlFree(index_prop); } else { image_info->index = 1; } @@ -1241,7 +1240,7 @@ calculate_dentry_statistics(struct wim_dentry *dentry, void *arg) /* * Calculate what to put in the , , , and - * elements of each . + * elements of the specified WIM image. */ void xml_update_image_info(WIMStruct *wim, int image) @@ -1261,7 +1260,7 @@ xml_update_image_info(WIMStruct *wim, int image) for_dentry_in_tree(wim->image_metadata[image - 1]->root_dentry, calculate_dentry_statistics, image_info); - image_info->last_modification_time = get_wim_timestamp(); + image_info->last_modification_time = now_as_wim_timestamp(); } /* Adds an image to the XML information. */ @@ -1292,7 +1291,7 @@ xml_add_image(WIMStruct *wim, const tchar *name) wim->wim_info = wim_info; image_info->index = wim_info->num_images; - image_info->creation_time = get_wim_timestamp(); + image_info->creation_time = now_as_wim_timestamp(); xml_update_image_info(wim, image_info->index); return 0; @@ -1667,29 +1666,19 @@ wimlib_set_image_name(WIMStruct *wim, int image, const tchar *name) { tchar *p; int i; - int ret; - - DEBUG("Setting the name of image %d to %"TS, image, name); - - ret = can_modify_wim(wim); - if (ret) - return ret; if (name == NULL) name = T(""); - if (image < 1 || image > wim->hdr.image_count) { - ERROR("%d is not a valid image", image); + if (image < 1 || image > wim->hdr.image_count) return WIMLIB_ERR_INVALID_IMAGE; - } - for (i = 1; i <= wim->hdr.image_count; i++) { - if (i == image) - continue; - if (!tstrcmp(wim->wim_info->images[i - 1].name, name)) { - ERROR("The name \"%"TS"\" is already in use in the WIM!", - name); - return WIMLIB_ERR_IMAGE_NAME_COLLISION; + if (*name) { + for (i = 1; i <= wim->hdr.image_count; i++) { + if (i == image) + continue; + if (!tstrcmp(wim->wim_info->images[i - 1].name, name)) + return WIMLIB_ERR_IMAGE_NAME_COLLISION; } } @@ -1708,11 +1697,6 @@ do_set_image_info_str(WIMStruct *wim, int image, const tchar *tstr, { tchar *tstr_copy; tchar **dest_tstr_p; - int ret; - - ret = can_modify_wim(wim); - if (ret) - return ret; if (image < 1 || image > wim->hdr.image_count) { ERROR("%d is not a valid image", image);