diff options
author | rec <44084068+recloser@users.noreply.github.com> | 2018-10-30 06:58:39 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-10-30 06:58:39 +0100 |
commit | 9899c4525c9bedbdc3a8d7d4fbcbf8f85a4c474a (patch) | |
tree | a6d13c17fedcabb3e5b92158d3bdc73fb434a145 /lib/pure/parsexml.nim | |
parent | 69c0a9c6fb688d382d83c165860006977dd6bf04 (diff) | |
download | Nim-9899c4525c9bedbdc3a8d7d4fbcbf8f85a4c474a.tar.gz |
Add parsing empty attribs to htmlparser (#9559)
Diffstat (limited to 'lib/pure/parsexml.nim')
-rw-r--r-- | lib/pure/parsexml.nim | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/pure/parsexml.nim b/lib/pure/parsexml.nim index 39b117d40..0967f7983 100644 --- a/lib/pure/parsexml.nim +++ b/lib/pure/parsexml.nim @@ -189,6 +189,7 @@ type reportWhitespace, ## report whitespace reportComments ## report comments allowUnquotedAttribs ## allow unquoted attribute values (for HTML) + allowEmptyAttribs ## allow empty attributes (without explicit value) XmlParser* = object of BaseLexer ## the parser object. a, b, c: string @@ -621,10 +622,15 @@ proc parseAttribute(my: var XmlParser) = if my.a.len == 0: markError(my, errGtExpected) return + + let startPos = my.bufpos parseWhitespace(my, skip=true) if my.buf[my.bufpos] != '=': - markError(my, errEqExpected) + if allowEmptyAttribs notin my.options or + (my.buf[my.bufpos] != '>' and my.bufpos == startPos): + markError(my, errEqExpected) return + inc(my.bufpos) parseWhitespace(my, skip=true) |