[PATCH 3/5] xmllite/reader: Fix prefix returned after moving back to element

Nikolay Sivov nsivov at codeweavers.com
Mon Mar 6 21:50:57 CST 2017


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 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 84f38d5640..7aaaebf0aa 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 84316e4b29..8a736bff8e 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);
     }
 
-- 
2.11.0




More information about the wine-patches mailing list