Alistair Leslie-Hughes : msxml3: Correct IXMLDOMProcessingInstruction_put_data function.
Alexandre Julliard
julliard at winehq.org
Fri Feb 29 06:16:59 CST 2008
Module: wine
Branch: master
Commit: c61937b6d4ef7f313052b1c519f292e80d53db01
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c61937b6d4ef7f313052b1c519f292e80d53db01
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Fri Feb 29 20:54:53 2008 +1100
msxml3: Correct IXMLDOMProcessingInstruction_put_data function.
---
dlls/msxml3/pi.c | 15 +++++++++++++++
dlls/msxml3/tests/domdoc.c | 14 +-------------
2 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c
index 90425fd..44e8a8b 100644
--- a/dlls/msxml3/pi.c
+++ b/dlls/msxml3/pi.c
@@ -506,9 +506,24 @@ static HRESULT WINAPI dom_pi_put_data(
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
HRESULT hr = E_FAIL;
VARIANT val;
+ BSTR sTarget;
+ static WCHAR szXML[] = {'x','m','l',0};
TRACE("%p %s\n", This, debugstr_w(data) );
+ /* Cannot set data to a PI node whos target is 'xml' */
+ hr = dom_pi_get_nodeName(iface, &sTarget);
+ if(hr == S_OK)
+ {
+ if(lstrcmpW( sTarget, szXML) == 0)
+ {
+ SysFreeString(sTarget);
+ return E_FAIL;
+ }
+
+ SysFreeString(sTarget);
+ }
+
V_VT(&val) = VT_BSTR;
V_BSTR(&val) = data;
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 2ced1cc..23fb1f3 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -682,19 +682,7 @@ static void test_domdoc( void )
/* test put_data */
r = IXMLDOMProcessingInstruction_put_data(nodePI, _bstr_("version=\"1.0\" encoding=\"UTF-8\""));
- ok(r == S_OK, "ret %08x\n", r );
- SysFreeString(str);
-
- r = IXMLDOMProcessingInstruction_get_data(nodePI, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("version=\"1.0\" encoding=\"UTF-8\"") ), "incorrect data string\n");
- SysFreeString(str);
-
- /* Confirm XML text is good */
- r = IXMLDOMProcessingInstruction_get_xml(nodePI, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("<?xml version=\"1.0\" encoding=\"UTF-8\"?>") ), "incorrect xml string\n");
- SysFreeString(str);
+ ok(r == E_FAIL, "ret %08x\n", r );
IXMLDOMProcessingInstruction_Release(nodePI);
}
More information about the wine-cvs
mailing list