From c66580911eeffa96601f12fdbe640bffb3f3b121 Mon Sep 17 00:00:00 2001 From: Araq Date: Mon, 7 Nov 2016 18:58:15 +0100 Subject: [PATCH] htmlparser: different error corrections --- lib/pure/htmlparser.nim | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/pure/htmlparser.nim b/lib/pure/htmlparser.nim index 10a786555..00c622d74 100644 --- a/lib/pure/htmlparser.nim +++ b/lib/pure/htmlparser.nim @@ -494,12 +494,15 @@ proc untilElementEnd(x: var XmlParser, result: XmlNode, else: discard result.addNode(parse(x, errors)) of xmlElementEnd: - if cmpIgnoreCase(x.elemName, result.tag) == 0: - next(x) - else: + if cmpIgnoreCase(x.elemName, result.tag) != 0: #echo "5; expected: ", result.htmltag, " ", x.elemName adderr(expected(x, result)) - # do not skip it here! + # this seems to do better match error corrections in browsers: + while x.kind in {xmlElementEnd, xmlWhitespace}: + if x.kind == xmlElementEnd and cmpIgnoreCase(x.elemName, result.tag) == 0: + break + next(x) + next(x) break of xmlEof: adderr(expected(x, result))