From 23854d215beb3132109155817b2182415fedc91c Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Tue, 8 Mar 2016 18:27:49 +0100 Subject: xml: Fix linebreak before closing tag test. --- source/fitz/xml.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/fitz/xml.c b/source/fitz/xml.c index 85763802..31565980 100644 --- a/source/fitz/xml.c +++ b/source/fitz/xml.c @@ -454,16 +454,16 @@ static char *xml_parse_document_imp(fz_context *ctx, struct parser *parser, char parse_text: mark = p; while (*p && *p != '<') ++p; - if (mark < p) { - /* must skip linebreak immediately before an end tag */ - if (p[1] == '/' && p[-1] == '\n') { - if (mark < p-1) - xml_emit_text(ctx, parser, mark, p-1); - } else { + if (*p == '<') { + /* skip trailing newline before closing tag */ + if (p[1] == '/' && p - 1 >= mark && p[-1] == '\n') + xml_emit_text(ctx, parser, mark, p - 1); + else if (mark < p) xml_emit_text(ctx, parser, mark, p); - } - } - if (*p == '<') { ++p; goto parse_element; } + ++p; + goto parse_element; + } else if (mark < p) + xml_emit_text(ctx, parser, mark, p); return NULL; parse_element: -- cgit v1.2.3