summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/expat/tests/handlers.c
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/expat/tests/handlers.c')
-rw-r--r--3rdparty/expat/tests/handlers.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/3rdparty/expat/tests/handlers.c b/3rdparty/expat/tests/handlers.c
index 0211985fe95..ac459507580 100644
--- a/3rdparty/expat/tests/handlers.c
+++ b/3rdparty/expat/tests/handlers.c
@@ -1843,6 +1843,15 @@ element_decl_suspender(void *userData, const XML_Char *name,
}
void XMLCALL
+suspend_after_element_declaration(void *userData, const XML_Char *name,
+ XML_Content *model) {
+ UNUSED_P(name);
+ XML_Parser parser = (XML_Parser)userData;
+ assert_true(XML_StopParser(parser, /*resumable*/ XML_TRUE) == XML_STATUS_OK);
+ XML_FreeContentModel(parser, model);
+}
+
+void XMLCALL
accumulate_pi_characters(void *userData, const XML_Char *target,
const XML_Char *data) {
CharData *storage = (CharData *)userData;
@@ -1883,6 +1892,20 @@ accumulate_entity_decl(void *userData, const XML_Char *entityName,
}
void XMLCALL
+accumulate_char_data_and_suspend(void *userData, const XML_Char *s, int len) {
+ ParserPlusStorage *const parserPlusStorage = (ParserPlusStorage *)userData;
+
+ CharData_AppendXMLChars(parserPlusStorage->storage, s, len);
+
+ for (int i = 0; i < len; i++) {
+ if (s[i] == 'Z') {
+ XML_StopParser(parserPlusStorage->parser, /*resumable=*/XML_TRUE);
+ break;
+ }
+ }
+}
+
+void XMLCALL
accumulate_start_element(void *userData, const XML_Char *name,
const XML_Char **atts) {
CharData *const storage = (CharData *)userData;