Moved clearing of "literal" flag. The flag is set in setliteral which

can be called from a start tag handler.  When the corresponding end
tag is read the flag is cleared.  However, it didn't get cleared when
the start tag was for an empty element of the type <tag .../>.  This
modification fixes the problem.
This commit is contained in:
Sjoerd Mullender 2001-03-14 17:03:30 +00:00
parent 62dfed96be
commit 538453e155

View file

@ -691,7 +691,6 @@ class XMLParser:
if not self.stack or tag != self.stack[-1][0]: if not self.stack or tag != self.stack[-1][0]:
self.handle_data(rawdata[i]) self.handle_data(rawdata[i])
return i+1 return i+1
self.literal = 0
k = res.end(0) k = res.end(0)
if endbracket.match(rawdata, k) is None: if endbracket.match(rawdata, k) is None:
self.syntax_error('garbage in end tag') self.syntax_error('garbage in end tag')
@ -707,6 +706,7 @@ class XMLParser:
# Internal -- finish processing of end tag # Internal -- finish processing of end tag
def finish_endtag(self, tag): def finish_endtag(self, tag):
self.literal = 0
if not tag: if not tag:
self.syntax_error('name-less end tag') self.syntax_error('name-less end tag')
found = len(self.stack) - 1 found = len(self.stack) - 1