[PATCH] Don't force parser encoding when loading from file

Nikolay Sivov nsivov at codeweavers.com
Sun Jun 20 04:47:39 CDT 2010


---
 dlls/msxml3/domdoc.c |   10 +++++-----
 dlls/msxml3/node.c   |    1 +
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 34be70c..4808e4e 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -141,14 +141,14 @@ static xmldoc_priv * create_priv(void)
     return priv;
 }
 
-static xmlDocPtr doparse( char *ptr, int len )
+static xmlDocPtr doparse( char *ptr, int len, const char *encoding )
 {
 #ifdef HAVE_XMLREADMEMORY
     /*
      * use xmlReadMemory if possible so we can suppress
      * writing errors to stderr
      */
-    return xmlReadMemory( ptr, len, NULL, "UTF-8",
+    return xmlReadMemory( ptr, len, NULL, encoding,
                           XML_PARSE_NOERROR | XML_PARSE_NOWARNING | XML_PARSE_NOBLANKS );
 #else
     return xmlParseMemory( ptr, len );
@@ -1447,7 +1447,7 @@ static HRESULT domdoc_onDataAvailable(void *obj, char *ptr, DWORD len)
     domdoc *This = obj;
     xmlDocPtr xmldoc;
 
-    xmldoc = doparse( ptr, len );
+    xmldoc = doparse( ptr, len, NULL );
     if(xmldoc) {
         xmldoc->_private = create_priv();
         return attach_xmldoc(&This->node, xmldoc);
@@ -1683,9 +1683,9 @@ static HRESULT WINAPI domdoc_loadXML(
     {
         *isSuccessful = VARIANT_FALSE;
 
-        if ( bstrXML  && bstr_to_utf8( bstrXML, &str, &len ) )
+        if ( bstrXML && bstr_to_utf8( bstrXML, &str, &len ) )
         {
-            xmldoc = doparse( str, len );
+            xmldoc = doparse( str, len, "UTF-8" );
             heap_free( str );
             if ( !xmldoc )
                 This->error = E_FAIL;
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index e263a2a..31c6e46 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -437,6 +437,7 @@ static HRESULT WINAPI xmlnode_get_firstChild(
     IXMLDOMNode** firstChild)
 {
     xmlnode *This = impl_from_IXMLDOMNode( iface );
+    TRACE("(%p)->(%p)\n", This, firstChild);
     return get_node( This, "firstChild", This->node->children, firstChild );
 }
 
-- 
1.5.6.5


--------------020004010305070707010302--



More information about the wine-patches mailing list