diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-03-08 18:27:49 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-03-14 17:08:29 +0100 |
commit | 23854d215beb3132109155817b2182415fedc91c (patch) | |
tree | 081197938c173b8154fd37d9825f47fd5f0249b8 | |
parent | a9c2b1cf38a167e22810bfe2bcb04da2013ef643 (diff) | |
download | mupdf-23854d215beb3132109155817b2182415fedc91c.tar.xz |
xml: Fix linebreak before closing tag test.
-rw-r--r-- | source/fitz/xml.c | 18 |
1 files 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: |