[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-cvs
Subject:    Alistair Leslie-Hughes : msxml3:
From:       Alexandre Julliard <julliard () winehq ! org>
Date:       2008-02-29 12:16:59
Message-ID: E1JV4Ad-0002Uw-9a () wine ! codeweavers ! com
[Download RAW message or body]

Module: wine
Branch: master
Commit: c61937b6d4ef7f313052b1c519f292e80d53db01
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c61937b6d4ef7f313052b1c519f292e80d53db01


Author: Alistair Leslie-Hughes <leslie_alistair@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);
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic