Daniel Lehman : msxml3: Handle single quotes in xml declaration.
Alexandre Julliard
julliard at winehq.org
Fri Oct 22 14:46:12 CDT 2021
Module: wine
Branch: master
Commit: 48f038fb9eb916e4ac2dd13c2d05cde1860a3215
URL: https://source.winehq.org/git/wine.git/?a=commit;h=48f038fb9eb916e4ac2dd13c2d05cde1860a3215
Author: Daniel Lehman <dlehman25 at gmail.com>
Date: Fri Oct 22 16:41:27 2021 +0300
msxml3: Handle single quotes in xml declaration.
Signed-off-by: Daniel Lehman <dlehman25 at gmail.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msxml3/pi.c | 7 ++++---
dlls/msxml3/tests/domdoc.c | 6 +-----
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c
index fb4ca798c68..80e6ad70755 100644
--- a/dlls/msxml3/pi.c
+++ b/dlls/msxml3/pi.c
@@ -284,7 +284,7 @@ static HRESULT WINAPI dom_pi_get_nextSibling(
static HRESULT xml_get_value(xmlChar **p, xmlChar **value)
{
- xmlChar *v;
+ xmlChar *v, q;
int len;
while (isspace(**p)) *p += 1;
@@ -292,11 +292,12 @@ static HRESULT xml_get_value(xmlChar **p, xmlChar **value)
*p += 1;
while (isspace(**p)) *p += 1;
- if (**p != '"') return XML_E_MISSINGQUOTE;
+ if (**p != '"' && **p != '\'') return XML_E_MISSINGQUOTE;
+ q = **p;
*p += 1;
v = *p;
- while (**p && **p != '"') *p += 1;
+ while (**p && **p != q) *p += 1;
if (!**p) return XML_E_EXPECTINGCLOSEQUOTE;
len = *p - v;
if (!len) return XML_E_MISSINGNAME;
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 81ee8dcb52d..e1f71bf5445 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -8608,19 +8608,15 @@ todo_wine
ok(hr == XML_E_BADCHARINSTRING, "got 0x%08x\n", hr);
pi = NULL;
hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding='UTF-8'"), &pi);
-todo_wine
ok(hr == S_OK, "got 0x%08x\n", hr);
-if (pi)
-{
hr = IXMLDOMProcessingInstruction_QueryInterface(pi, &IID_IXMLDOMNode, (void **)&node);
node_map = NULL;
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = IXMLDOMNode_get_attributes(node, &node_map);
ok(hr == S_OK, "got 0x%08x\n", hr);
- if (node_map) IXMLDOMNamedNodeMap_Release(node_map);
+ IXMLDOMNamedNodeMap_Release(node_map);
IXMLDOMNode_Release(node);
IXMLDOMProcessingInstruction_Release(pi);
-}
/* test for BSTR handling, pass broken BSTR */
memcpy(&buff[2], L"test", 5 * sizeof(WCHAR));
More information about the wine-cvs
mailing list