From: Daniel Lehman dlehman25@gmail.com
--- dlls/msxml3/node.c | 5 ++++- dlls/msxml3/tests/domdoc.c | 2 +- dlls/msxml4/tests/domdoc.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 339504477ac..8f560d9a6ce 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -1606,7 +1606,10 @@ HRESULT node_get_base_name(xmlnode *This, BSTR *name) { if (!name) return E_INVALIDARG;
- *name = bstr_from_xmlChar(This->node->name); + if ((xmldoc_version(This->node->doc) != MSXML6) && xmlStrEqual(This->node->name, BAD_CAST "xmlns")) + *name = SysAllocString(L""); + else + *name = bstr_from_xmlChar(This->node->name); if (!*name) return E_OUTOFMEMORY;
TRACE("returning %s\n", debugstr_w(*name)); diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index d6f5e73c852..a95c4b3f700 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -13772,6 +13772,7 @@ static void test_namespaces_as_attributes(void) str = NULL; hr = IXMLDOMNode_get_nodeName(item, &str); ok(SUCCEEDED(hr), "Failed to get node name, hr %#lx.\n", hr); + todo_wine_if(test->todo) ok(!lstrcmpW(str, _bstr_(test->names[i])), "got %s\n", wine_dbgstr_w(str)); SysFreeString(str);
@@ -13791,7 +13792,6 @@ static void test_namespaces_as_attributes(void) str = NULL; hr = IXMLDOMNode_get_baseName(item, &str); ok(SUCCEEDED(hr), "Failed to get base name, hr %#lx.\n", hr); - todo_wine_if(test->todo) ok(!lstrcmpW(str, _bstr_(test->basenames[i])), "got %s\n", wine_dbgstr_w(str)); SysFreeString(str);
diff --git a/dlls/msxml4/tests/domdoc.c b/dlls/msxml4/tests/domdoc.c index 2f02c99c6aa..fc6b1834fbe 100644 --- a/dlls/msxml4/tests/domdoc.c +++ b/dlls/msxml4/tests/domdoc.c @@ -264,6 +264,7 @@ static void test_namespaces_as_attributes(void) str = NULL; hr = IXMLDOMNode_get_nodeName(item, &str); ok(SUCCEEDED(hr), "Failed to get node name, hr %#lx.\n", hr); + todo_wine_if(test->todo) ok(!lstrcmpW(str, _bstr_(test->names[i])), "got %s\n", wine_dbgstr_w(str)); SysFreeString(str);
@@ -286,7 +287,6 @@ static void test_namespaces_as_attributes(void) hr = IXMLDOMNode_get_baseName(item, &str); ok(SUCCEEDED(hr), "Failed to get base name, hr %#lx.\n", hr); /* MSXML4 can report different results with different service packs */ - todo_wine_if(test->todo) ok(!lstrcmpW(str, _bstr_(test->basenames[i])) || broken(!lstrcmpW(str, L"xmlns")), "got %s\n", wine_dbgstr_w(str)); SysFreeString(str);