X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fxml.c;h=6adba78cc8810b22d6fbcc8e3220c74bb92fe78a;hb=28d3d79a1894375e457237097bc80f0d92746018;hp=67e0a22277cae5a209ffcd1bb945bbe40fad0fd2;hpb=fad9af236d169e5d02577ebddc91239c0d6024b0;p=wimlib diff --git a/src/xml.c b/src/xml.c index 67e0a222..6adba78c 100644 --- a/src/xml.c +++ b/src/xml.c @@ -1542,13 +1542,16 @@ wimlib_set_image_name(WIMStruct *w, int image, const tchar *name) { tchar *p; int i; + int ret; DEBUG("Setting the name of image %d to %"TS, image, name); - if (!name || !*name) { - ERROR("Must specify a non-empty string for the image name"); - return WIMLIB_ERR_INVALID_PARAM; - } + ret = can_modify_wim(w); + if (ret) + return ret; + + if (name == NULL) + name = T(""); if (image < 1 || image > w->hdr.image_count) { ERROR("%d is not a valid image", image); @@ -1558,7 +1561,7 @@ wimlib_set_image_name(WIMStruct *w, int image, const tchar *name) for (i = 1; i <= w->hdr.image_count; i++) { if (i == image) continue; - if (tstrcmp(w->wim_info->images[i - 1].name, name) == 0) { + if (!tstrcmp(w->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; @@ -1580,6 +1583,11 @@ do_set_image_info_str(WIMStruct *w, int image, const tchar *tstr, { tchar *tstr_copy; tchar **dest_tstr_p; + int ret; + + ret = can_modify_wim(w); + if (ret) + return ret; if (image < 1 || image > w->hdr.image_count) { ERROR("%d is not a valid image", image);