[PATCH] xmllite/reader: Fix writing back resolved character reference value
Nikolay Sivov
nsivov at codeweavers.com
Thu Mar 2 15:11:28 CST 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
For https://bugs.winehq.org/show_bug.cgi?id=40910
dlls/xmllite/reader.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c
index 9bb0d56d34..a880bee256 100644
--- a/dlls/xmllite/reader.c
+++ b/dlls/xmllite/reader.c
@@ -2054,8 +2054,12 @@ static HRESULT reader_parse_reference(xmlreader *reader)
/* normalize */
if (is_wchar_space(ch)) ch = ' ';
- len = buffer->written - ((char*)ptr - buffer->data) - sizeof(WCHAR);
- memmove(start+1, ptr+1, len);
+ ptr = reader_get_ptr(reader);
+ start = reader_get_ptr2(reader, cur);
+ len = buffer->written - ((char *)ptr - buffer->data);
+ memmove(start + 1, ptr + 1, len);
+
+ buffer->written -= (reader_get_cur(reader) - cur) * sizeof(WCHAR);
buffer->cur = cur + 1;
*start = ch;
--
2.11.0
More information about the wine-patches
mailing list