summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2015-03-08 14:54:36 +0100
committerAndreas Rumpf <rumpf_a@web.de>2015-03-08 14:54:36 +0100
commit41ce6571a32ecd63c67ba7f972c7fb1c0f4f9200 (patch)
tree374ea55be373237db2fe0dbadda58a76c6d7a4ca
parent38b9093581819cc37c7b92185ce2134e27f0c18f (diff)
parent21bdf458530f0770a5a16d4ed3677fab719d4c17 (diff)
downloadNim-41ce6571a32ecd63c67ba7f972c7fb1c0f4f9200.tar.gz
Merge pull request #2291 from def-/parsexml-again2
Revert my.c changes in parsexml
-rw-r--r--lib/pure/parsexml.nim13
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