Commit ece36f17 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

xmllite: Fix node type for whitespace text nodes in Content.

parent 249b4578
...@@ -2205,7 +2205,7 @@ static HRESULT reader_parse_chardata(xmlreader *reader) ...@@ -2205,7 +2205,7 @@ static HRESULT reader_parse_chardata(xmlreader *reader)
ptr = start = reader_get_cur(reader); ptr = start = reader_get_cur(reader);
/* There's no text */ /* There's no text */
if (!*ptr || *ptr == '<') return S_OK; if (!*ptr || *ptr == '<') return S_OK;
reader->nodetype = XmlNodeType_Text; reader->nodetype = is_wchar_space(*ptr) ? XmlNodeType_Whitespace : XmlNodeType_Text;
reader->resume[XmlReadResume_Body] = start; reader->resume[XmlReadResume_Body] = start;
reader->resumestate = XmlReadResumeState_CharData; reader->resumestate = XmlReadResumeState_CharData;
reader_set_strvalue(reader, StringValue_LocalName, &strval_empty); reader_set_strvalue(reader, StringValue_LocalName, &strval_empty);
...@@ -2232,6 +2232,9 @@ static HRESULT reader_parse_chardata(xmlreader *reader) ...@@ -2232,6 +2232,9 @@ static HRESULT reader_parse_chardata(xmlreader *reader)
} }
reader_skipn(reader, 1); reader_skipn(reader, 1);
/* this covers a case when text has leading whitespace chars */
if (!is_wchar_space(*ptr)) reader->nodetype = XmlNodeType_Text;
ptr++; ptr++;
} }
......
...@@ -943,11 +943,13 @@ static const char misc_test_xml[] = ...@@ -943,11 +943,13 @@ static const char misc_test_xml[] =
" \t \r \n" " \t \r \n"
"<!-- comment4 -->" "<!-- comment4 -->"
"<a>" "<a>"
"\r\n\t"
"<b/>" "<b/>"
"text" "text"
"<!-- comment -->" "<!-- comment -->"
"text2" "text2"
"<?pi pibody ?>" "<?pi pibody ?>"
"\r\n"
"</a>" "</a>"
; ;
...@@ -961,11 +963,13 @@ static struct nodes_test misc_test = { ...@@ -961,11 +963,13 @@ static struct nodes_test misc_test = {
XmlNodeType_Whitespace, XmlNodeType_Whitespace,
XmlNodeType_Comment, XmlNodeType_Comment,
XmlNodeType_Element, XmlNodeType_Element,
XmlNodeType_Whitespace,
XmlNodeType_Element, XmlNodeType_Element,
XmlNodeType_Text, XmlNodeType_Text,
XmlNodeType_Comment, XmlNodeType_Comment,
XmlNodeType_Text, XmlNodeType_Text,
XmlNodeType_ProcessingInstruction, XmlNodeType_ProcessingInstruction,
XmlNodeType_Whitespace,
XmlNodeType_EndElement, XmlNodeType_EndElement,
XmlNodeType_None XmlNodeType_None
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment