diff options
Diffstat (limited to 'lib')
-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) = |