Nikolay Sivov : xmllite/reader: Fix prefix returned after moving back to element.
Alexandre Julliard
julliard at winehq.org
Tue Mar 7 15:43:59 CST 2017
Module: wine
Branch: master
Commit: 3fe5f25b17525f7bb43c37b1746260f3d80f62ef
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fe5f25b17525f7bb43c37b1746260f3d80f62ef
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Tue Mar 7 06:50:57 2017 +0300
xmllite/reader: Fix prefix returned after moving back to element.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/xmllite/reader.c | 2 ++
dlls/xmllite/tests/reader.c | 11 +++++++++++
2 files changed, 13 insertions(+)
diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c
index 84f38d5..7aaaebf 100644
--- a/dlls/xmllite/reader.c
+++ b/dlls/xmllite/reader.c
@@ -2890,12 +2890,14 @@ static HRESULT WINAPI xmlreader_MoveToElement(IXmlReader* iface)
/* FIXME: support other node types with 'attributes' like DTD */
if (This->is_empty_element) {
+ reader_set_strvalue(This, StringValue_Prefix, &This->empty_element.prefix);
reader_set_strvalue(This, StringValue_LocalName, &This->empty_element.localname);
reader_set_strvalue(This, StringValue_QualifiedName, &This->empty_element.qname);
}
else {
struct element *element = LIST_ENTRY(list_head(&This->elements), struct element, entry);
if (element) {
+ reader_set_strvalue(This, StringValue_Prefix, &element->prefix);
reader_set_strvalue(This, StringValue_LocalName, &element->localname);
reader_set_strvalue(This, StringValue_QualifiedName, &element->qname);
}
diff --git a/dlls/xmllite/tests/reader.c b/dlls/xmllite/tests/reader.c
index 84316e4..8a736bf 100644
--- a/dlls/xmllite/tests/reader.c
+++ b/dlls/xmllite/tests/reader.c
@@ -2034,6 +2034,17 @@ static void test_prefix(void)
wine_dbgstr_w(expected));
free_str(expected);
+ /* back to the element, check prefix */
+ hr = IXmlReader_MoveToElement(reader);
+ ok(hr == S_OK, "MoveToElement() failed, %#x.\n", hr);
+
+ expected = a2w(prefix_tests[i].prefix1);
+ hr = IXmlReader_GetPrefix(reader, &prefix, NULL);
+ ok(hr == S_OK, "GetPrefix() failed, %#x.\n", hr);
+ ok(!lstrcmpW(prefix, expected), "Unexpected prefix %s, expected %s.\n", wine_dbgstr_w(prefix),
+ wine_dbgstr_w(expected));
+ free_str(expected);
+
IStream_Release(stream);
}
More information about the wine-cvs
mailing list