diff options
author | Hiltjo Posthuma <hiltjo@codemadness.org> | 2019-06-11 20:57:16 +0200 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2019-06-11 20:57:16 +0200 |
commit | e1fdd1e49326041e7cbd68876879e51b2a79e973 (patch) | |
tree | 8ffed2421a9e7a79e31c0114bf528bfa23ea2be2 | |
parent | c020d456846f33ec834ddf9a1656368e502cd67f (diff) |
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.
-rw-r--r-- | xml.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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; |