From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/node.c | 5 +++-- dlls/msxml3/tests/domdoc.c | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 03dc4a21614..d75590a31bc 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -3459,8 +3459,9 @@ HRESULT node_set_attribute_value(struct domnode *node, const WCHAR *name, const return hr; } - /* Check for conflict with element namespace */ - match = is_same_namespace_prefix(node, attr_name.local) && !is_same_uri(node, attr_value); + /* Check for conflict with element namespace. It's possible to have no uri set on element, + while still having qualified name. */ + match = node->uri && is_same_namespace_prefix(node, attr_name.local) && !is_same_uri(node, attr_value); parsed_name_cleanup(&attr_name); if (match) diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 5737e20b5a0..f9dfef94b81 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -16720,7 +16720,6 @@ static void test_setAttribute(void) SysFreeString(str); hr = IXMLDOMElement_setAttribute(element, _bstr_("xmlns:prefix"), _variantbstr_("uri")); - todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); hr = IXMLDOMElement_get_namespaceURI(element, &str); @@ -16728,7 +16727,6 @@ static void test_setAttribute(void) hr = IXMLDOMElement_get_xml(element, &str); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - todo_wine ok(!wcscmp(str, L"<prefix:name xmlns:prefix=\"uri\"/>"), "Unexpected xml %s.\n", debugstr_w(str)); SysFreeString(str); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10608