From e1fdd1e49326041e7cbd68876879e51b2a79e973 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Tue, 11 Jun 2019 20:57:16 +0200 Subject: xml: improve cdata and comment callback logic it used to call both handlers twice at the end for "-->" (comment) or "]]>" (CDATA) with the data "" and length 0. Now it is only called when non-empty. The start and end handlers can still be used. --- xml.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'xml.c') diff --git a/xml.c b/xml.c index 0e6f5d8..d6e63b0 100644 --- a/xml.c +++ b/xml.c @@ -126,7 +126,7 @@ xml_parsecomment(XMLParser *x) x->xmlcommentstart(x); while ((c = GETNEXT()) != EOF) { if (c == '-' || c == '>') { - if (x->xmlcomment) { + if (x->xmlcomment && datalen) { x->data[datalen] = '\0'; x->xmlcomment(x, x->data, datalen); datalen = 0; @@ -175,7 +175,7 @@ xml_parsecdata(XMLParser *x) x->xmlcdatastart(x); while ((c = GETNEXT()) != EOF) { if (c == ']' || c == '>') { - if (x->xmlcdata) { + if (x->xmlcdata && datalen) { x->data[datalen] = '\0'; x->xmlcdata(x, x->data, datalen); datalen = 0; -- cgit v1.2.3