# include "config.h"
#endif
+#include <libxml/encoding.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/xmlwriter.h>
+#include <string.h>
+
+#include "wimlib/assert.h"
#include "wimlib/dentry.h"
#include "wimlib/encoding.h"
#include "wimlib/error.h"
#include "wimlib/xml.h"
#include "wimlib/write.h"
-#include <libxml/encoding.h>
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-#include <libxml/xmlwriter.h>
-#include <limits.h>
-#include <string.h>
-#include <unistd.h>
-
/* Structures used to form an in-memory representation of the XML data (other
* than the raw parse tree from libxml). */
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;
}
/*
* Calculate what to put in the <FILECOUNT>, <DIRCOUNT>, <TOTALBYTES>, and
- * <HARDLINKBYTES> elements of each <IMAGE>.
+ * <HARDLINKBYTES> elements of the specified WIM image.
*/
void
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. */
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;
{
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;
}
}
{
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);