diff options
author | Araq <rumpf_a@web.de> | 2019-09-04 11:20:30 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-09-04 11:20:30 +0200 |
commit | fa5707e7e2494065be09f4e4f0590140399cd215 (patch) | |
tree | 2f257ca9bbf61eb51b8851b5c64a7b5162f80273 /lib/pure | |
parent | cb0450398a5695e1e1193e6c49ff9c7548980438 (diff) | |
download | Nim-fa5707e7e2494065be09f4e4f0590140399cd215.tar.gz |
fixes #11713, fixes #1034
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/parsexml.nim | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/pure/parsexml.nim b/lib/pure/parsexml.nim index 3b77f9c62..686aad110 100644 --- a/lib/pure/parsexml.nim +++ b/lib/pure/parsexml.nim @@ -472,16 +472,19 @@ proc parseEntity(my: var XmlParser, dest: var string) = inc(pos, 4) else: my.bufpos = pos - parseName(my, dest) + var name = "" + parseName(my, name) pos = my.bufpos - if my.err != errNameExpected: + if my.err != errNameExpected and my.buf[pos] == ';': my.kind = xmlEntity else: add(dest, '&') + add(dest, name) if my.buf[pos] == ';': inc(pos) else: - markError(my, errSemicolonExpected) + my.err = errSemicolonExpected + # do not overwrite 'my.state' here, it's a benign error my.bufpos = pos proc parsePI(my: var XmlParser) = |