From: Evan Tang etang@codeweavers.com
--- dlls/msxml3/element.c | 4 ++-- dlls/msxml3/msxml_private.h | 1 + dlls/msxml3/node.c | 2 +- dlls/msxml3/tests/domdoc.c | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c index 302849aced6..22bf669e1cd 100644 --- a/dlls/msxml3/element.c +++ b/dlls/msxml3/element.c @@ -856,12 +856,12 @@ static HRESULT WINAPI domelem_put_nodeTypedValue( hr = VariantChangeType(&content, &value, 0, VT_BSTR); if (hr == S_OK) { - hr = node_set_content(&This->node, V_BSTR(&content)); + hr = node_set_content_escaped(&This->node, V_BSTR(&content)); VariantClear(&content); } } else - hr = node_set_content(&This->node, V_BSTR(&value)); + hr = node_set_content_escaped(&This->node, V_BSTR(&value)); break; case DT_BIN_BASE64: if (V_VT(&value) == VT_BSTR) diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h index 8003c1a9650..019252b8cfa 100644 --- a/dlls/msxml3/msxml_private.h +++ b/dlls/msxml3/msxml_private.h @@ -217,6 +217,7 @@ extern HRESULT node_append_child(xmlnode*,IXMLDOMNode*,IXMLDOMNode**) DECLSPEC_H extern HRESULT node_get_nodeName(xmlnode*,BSTR*) DECLSPEC_HIDDEN; extern HRESULT node_get_content(xmlnode*,VARIANT*) DECLSPEC_HIDDEN; extern HRESULT node_set_content(xmlnode*,LPCWSTR) DECLSPEC_HIDDEN; +extern HRESULT node_set_content_escaped(xmlnode*,LPCWSTR) DECLSPEC_HIDDEN; extern HRESULT node_put_value(xmlnode*,VARIANT*) DECLSPEC_HIDDEN; extern HRESULT node_put_value_escaped(xmlnode*,VARIANT*) DECLSPEC_HIDDEN; extern HRESULT node_get_parent(xmlnode*,IXMLDOMNode**) DECLSPEC_HIDDEN; diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 339504477ac..6c63abba22e 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -238,7 +238,7 @@ HRESULT node_set_content(xmlnode *This, LPCWSTR value) return S_OK; }
-static HRESULT node_set_content_escaped(xmlnode *This, LPCWSTR value) +HRESULT node_set_content_escaped(xmlnode *This, LPCWSTR value) { xmlChar *str, *escaped;
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 7183dbdaa05..9f24b5678dd 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -9041,7 +9041,7 @@ static void test_put_nodeTypedValue(void) hr = IXMLDOMElement_get_nodeTypedValue(elem, &value); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(V_VT(&value) == VT_BSTR, "got %d, expected VT_BSTR\n", V_VT(&value)); - todo_wine ok(memcmp(V_BSTR(&value), special_characters, 2*SysStringLen(special_characters)) == 0, + ok(memcmp(V_BSTR(&value), special_characters, 2*SysStringLen(special_characters)) == 0, "got %s, expected %s\n", wine_dbgstr_w(V_BSTR(&value)), wine_dbgstr_w(special_characters)); VariantClear(&value);
@@ -9060,7 +9060,7 @@ static void test_put_nodeTypedValue(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
p = GlobalLock(global); - todo_wine ok(!memcmp(p, special_characters_escaped, sizeof(special_characters_escaped) - 1), "got %s\n", wine_dbgstr_a(p)); + ok(!memcmp(p, special_characters_escaped, sizeof(special_characters_escaped) - 1), "got %s\n", wine_dbgstr_a(p)); GlobalUnlock(global);
IStream_Release(stream);