summary refs log tree commit diff stats
path: root/lib/pure/parsexml.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pure/parsexml.nim')
-rwxr-xr-xlib/pure/parsexml.nim7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/pure/parsexml.nim b/lib/pure/parsexml.nim
index 54f62a9a4..7184e6c45 100755
--- a/lib/pure/parsexml.nim
+++ b/lib/pure/parsexml.nim
@@ -1,7 +1,7 @@
 #
 #
 #            Nimrod's Runtime Library
-#        (c) Copyright 2009 Andreas Rumpf
+#        (c) Copyright 2010 Andreas Rumpf
 #
 #    See the file "copying.txt", included in this
 #    distribution, for details about the copyright.
@@ -89,7 +89,7 @@ type
     reportComments         ## report comments
 
   TXmlParser* = object of TBaseLexer ## the parser object.
-    a, b: string
+    a, b, c: string
     kind: TXmlEventKind
     err: TXmlError
     state: TParserState
@@ -424,6 +424,7 @@ proc parseTag(my: var TXmlParser) =
     # an attribute follows:
     my.kind = xmlElementOpen
     my.state = stateAttr
+    my.c = my.a # save for later
   else:
     my.kind = xmlElementStart
     if my.buf[my.bufpos] == '/' and my.buf[my.bufpos+1] == '>':
@@ -597,6 +598,8 @@ proc next*(my: var TXmlParser) =
   of stateEmptyElementTag:
     my.state = stateNormal
     my.kind = xmlElementEnd
+    if not isNil(my.c):
+      my.a = my.c
   of stateError: 
     my.kind = xmlError
     my.state = stateNormal