This fixes eFilmLt.exe when running with builtin msxml6.
From: Bernhard Übelacker bernhardu@mailbox.org
This fixes eFilmLt.exe when running with builtin msxml6.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55804 --- dlls/msxml3/tests/domdoc.c | 22 +++++++++++++++++++--- libs/xml2/encoding.c | 1 + 2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index d9dfa1d1be6..184841de63c 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -802,6 +802,13 @@ static const char win1252decl[] = DECL_WIN_1252 ;
+#define DECL_ISO8859_1 \ +"<?xml version=\"1.0\" encoding=\"ISO8859-1\"?>" + +static const char iso8859_1_xml[] = +DECL_ISO8859_1 +"<open></open>"; + static const char nocontent[] = "no xml content here";
static const char szExampleXML[] = @@ -1609,6 +1616,14 @@ if (0) ok( b == VARIANT_FALSE, "succeeded in loading XML string\n"); SysFreeString( str );
+ /* try a BSTR containing a ISO8859-1 document */ + b = VARIANT_TRUE; + str = SysAllocStringByteLen( iso8859_1_xml, strlen(iso8859_1_xml) ); + hr = IXMLDOMDocument_loadXML( doc, str, &b ); + ok(hr == S_FALSE, "loadXML succeeded\n"); + ok( b == VARIANT_FALSE, "succeeded in loading XML string\n"); + SysFreeString( str ); + /* try to load something valid */ b = VARIANT_FALSE; str = SysAllocString( szComplete1 ); @@ -10838,9 +10853,10 @@ static void test_load(void) VARIANT_BOOL expected_ret; } encoding_tests[] = { - { gbkxml, S_OK, VARIANT_TRUE }, - { win1252xml, S_OK, VARIANT_TRUE }, - { win936xml, S_FALSE, VARIANT_FALSE }, + { gbkxml, S_OK, VARIANT_TRUE }, + { win1252xml, S_OK, VARIANT_TRUE }, + { win936xml, S_FALSE, VARIANT_FALSE }, + { iso8859_1_xml, S_OK, VARIANT_TRUE }, };
diff --git a/libs/xml2/encoding.c b/libs/xml2/encoding.c index 19ced4e4c6f..ea4d0f721fd 100644 --- a/libs/xml2/encoding.c +++ b/libs/xml2/encoding.c @@ -1209,6 +1209,7 @@ xmlParseCharEncoding(const char* name)
if (!strcmp(upper, "ISO-8859-1")) return(XML_CHAR_ENCODING_8859_1); + if (!strcmp(upper, "ISO8859-1")) return(XML_CHAR_ENCODING_8859_1); if (!strcmp(upper, "ISO-LATIN-1")) return(XML_CHAR_ENCODING_8859_1); if (!strcmp(upper, "ISO LATIN 1")) return(XML_CHAR_ENCODING_8859_1);