Module: wine Branch: refs/heads/master Commit: e7187ff31f047f4d64d81edd5f8be84e2c7ab6e5 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e7187ff31f047f4d64d81edd...
Author: Huw Davies huw@codeweavers.com Date: Mon Jan 16 20:43:02 2006 +0100
msxml: Fix for get_nodeValue on attributes.
---
dlls/msxml3/node.c | 6 +++++- dlls/msxml3/tests/domdoc.c | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 44d4b8f..4001ad4 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -225,10 +225,14 @@ static HRESULT WINAPI xmlnode_get_nodeVa switch ( This->node->type ) { case XML_ATTRIBUTE_NODE: + { + xmlChar *content = xmlNodeGetContent(This->node); V_VT(value) = VT_BSTR; - V_BSTR(value) = bstr_from_xmlChar( This->node->name ); + V_BSTR(value) = bstr_from_xmlChar( content ); + xmlFree(content); r = S_OK; break; + } case XML_TEXT_NODE: V_VT(value) = VT_BSTR; V_BSTR(value) = bstr_from_xmlChar( This->node->content ); diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 6bf26cb..5d745ce 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -404,6 +404,12 @@ void test_domnode( void ) ok( r == S_OK, "get_baseName returned wrong code\n"); ok( lstrcmpW(str,szdl) == 0, "basename was wrong\n");
+ r = IXMLDOMNode_get_nodeValue( node, &var ); + ok( r == S_OK, "returns %08lx\n", r ); + ok( V_VT(&var) == VT_BSTR, "vt %x\n", V_VT(&var)); + ok( !lstrcmpW(V_BSTR(&var), szstr1), "nodeValue incorrect\n"); + VariantClear(&var); + r = IXMLDOMNode_get_childNodes( node, NULL ); ok( r == E_INVALIDARG, "get_childNodes returned wrong code\n");