[2/2] xmllite: Reader should set starting string offsets when encoding is being parsed.

Dmitry Timoshkov dmitry at baikal.ru
Wed Feb 12 01:58:06 CST 2014


It's still not clear to me why reader_set_strvalue() differentiates
StringValue_Value type and sets v->str to NULL while v->start may
point to wrong offset for instance for values initialized by
reader_init_cstrvalue(), and MoveToNextAttribute would not be able
to figure that out.
---
 dlls/xmllite/reader.c       | 3 +++
 dlls/xmllite/tests/reader.c | 4 ----
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c
index a0e95b4..6d20324 100644
--- a/dlls/xmllite/reader.c
+++ b/dlls/xmllite/reader.c
@@ -1071,6 +1071,8 @@ static HRESULT reader_parse_encname(xmlreader *reader, strval *val)
     if ((*start < 'A' || *start > 'Z') && (*start < 'a' || *start > 'z'))
         return WC_E_ENCNAME;
 
+    val->start = reader_get_cur(reader);
+
     ptr = start;
     while (is_wchar_encname(*++ptr))
         ;
@@ -1100,6 +1102,7 @@ static HRESULT reader_parse_encdecl(xmlreader *reader)
 
     if (reader_cmp(reader, encodingW)) return S_FALSE;
     name.str = reader_get_ptr(reader);
+    name.start = reader_get_cur(reader);
     name.len = 8;
     /* skip 'encoding' */
     reader_skipn(reader, 8);
diff --git a/dlls/xmllite/tests/reader.c b/dlls/xmllite/tests/reader.c
index ad9b3a2..312516b 100644
--- a/dlls/xmllite/tests/reader.c
+++ b/dlls/xmllite/tests/reader.c
@@ -752,10 +752,6 @@ static void test_read_xmldeclaration(void)
         hr = IXmlReader_GetValue(reader, &val, &len);
         ok(hr == S_OK, "got %08x\n", hr);
         ok(len == lstrlenW(name_val[i].val), "expected %u, got %u\n", lstrlenW(name_val[i].val), len);
-        if (i == 1)
-todo_wine
-        ok(!lstrcmpW(name_val[i].val, val), "expected %s, got %s\n", wine_dbgstr_w(name_val[i].val), wine_dbgstr_w(val));
-        else
         ok(!lstrcmpW(name_val[i].val, val), "expected %s, got %s\n", wine_dbgstr_w(name_val[i].val), wine_dbgstr_w(val));
 
         hr = IXmlReader_MoveToNextAttribute(reader);
-- 
1.8.5.4




More information about the wine-patches mailing list