summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2014-02-23 19:28:27 +0000
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2014-02-23 19:28:27 +0000
commit934bddcfa682778168c24fd78c8868353d9d6e35 (patch)
tree3c59a5b84cb9a7b30d7dc1302444cfedd717e0cf
parentbd960159ddd97c1805002d6f8f2024874080ff0d (diff)
Fix gap collapsing during PCDATA parsing for fragment mode.
git-svn-id: https://pugixml.googlecode.com/svn/trunk@985 99668b35-9821-0410-8761-19e4c4f06640
-rw-r--r--src/pugixml.cpp2
-rw-r--r--tests/test_parse.cpp7
2 files changed, 9 insertions, 0 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp
index 59712ae..634192a 100644
--- a/src/pugixml.cpp
+++ b/src/pugixml.cpp
@@ -1903,6 +1903,8 @@ PUGI__NS_BEGIN
}
else if (*s == 0)
{
+ *g.flush(s) = 0;
+
return s;
}
else ++s;
diff --git a/tests/test_parse.cpp b/tests/test_parse.cpp
index 6d9d4cc..eb8fefb 100644
--- a/tests/test_parse.cpp
+++ b/tests/test_parse.cpp
@@ -975,3 +975,10 @@ TEST(parse_bom_fragment_invalid_utf32)
CHECK_STRING(value, "\xef\xbf\xbf");
#endif
}
+
+TEST(parse_pcdata_gap_fragment)
+{
+ xml_document doc;
+ CHECK(doc.load(STR("a&amp;b"), parse_fragment | parse_escapes));
+ CHECK_STRING(doc.text().get(), STR("a&b"));
+} \ No newline at end of file