diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2015-03-08 14:54:36 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2015-03-08 14:54:36 +0100 |
commit | 41ce6571a32ecd63c67ba7f972c7fb1c0f4f9200 (patch) | |
tree | 374ea55be373237db2fe0dbadda58a76c6d7a4ca | |
parent | 38b9093581819cc37c7b92185ce2134e27f0c18f (diff) | |
parent | 21bdf458530f0770a5a16d4ed3677fab719d4c17 (diff) | |
download | Nim-41ce6571a32ecd63c67ba7f972c7fb1c0f4f9200.tar.gz |
Merge pull request #2291 from def-/parsexml-again2
Revert my.c changes in parsexml
-rw-r--r-- | lib/pure/parsexml.nim | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/lib/pure/parsexml.nim b/lib/pure/parsexml.nim index b8f422c31..2663c5b2f 100644 --- a/lib/pure/parsexml.nim +++ b/lib/pure/parsexml.nim @@ -128,7 +128,7 @@ proc open*(my: var XmlParser, input: Stream, filename: string, my.kind = xmlError my.a = "" my.b = "" - my.c = "" + my.c = nil my.options = options proc close*(my: var XmlParser) {.inline.} = @@ -447,15 +447,13 @@ proc parseTag(my: var XmlParser) = # an attribute follows: my.kind = xmlElementOpen my.state = stateAttr - # save for later: - my.c.setLen(my.a.len) - my.c[0..my.c.high] = my.a[0..my.a.high] + my.c = my.a # save for later else: my.kind = xmlElementStart if my.buf[my.bufpos] == '/' and my.buf[my.bufpos+1] == '>': inc(my.bufpos, 2) my.state = stateEmptyElementTag - my.c.setLen(0) + my.c = nil elif my.buf[my.bufpos] == '>': inc(my.bufpos) else: @@ -624,9 +622,8 @@ proc next*(my: var XmlParser) = of stateEmptyElementTag: my.state = stateNormal my.kind = xmlElementEnd - if my.c.len > 0: - my.a.setLen(my.c.len) - my.a[0..my.a.high] = my.c[0..my.c.high] + if not my.c.isNil: + my.a = my.c of stateError: my.kind = xmlError my.state = stateNormal |