Kaydet (Commit) d09def36 authored tarafından Georg Brandl's avatar Georg Brandl

Bug #1442874: handle "<!>", the empty SGML comment

üst 8f4b4db6
...@@ -76,13 +76,16 @@ class ParserBase: ...@@ -76,13 +76,16 @@ class ParserBase:
rawdata = self.rawdata rawdata = self.rawdata
j = i + 2 j = i + 2
assert rawdata[i:j] == "<!", "unexpected call to parse_declaration" assert rawdata[i:j] == "<!", "unexpected call to parse_declaration"
if rawdata[j:j+1] == ">":
# the empty comment <!>
return j + 1
if rawdata[j:j+1] in ("-", ""): if rawdata[j:j+1] in ("-", ""):
# Start of comment followed by buffer boundary, # Start of comment followed by buffer boundary,
# or just a buffer boundary. # or just a buffer boundary.
return -1 return -1
# A simple, practical version could look like: ((name|stringlit) S*) + '>' # A simple, practical version could look like: ((name|stringlit) S*) + '>'
n = len(rawdata) n = len(rawdata)
if rawdata[j:j+1] == '--': #comment if rawdata[j:j+2] == '--': #comment
# Locate --.*-- as the body of the comment # Locate --.*-- as the body of the comment
return self.parse_comment(i) return self.parse_comment(i)
elif rawdata[j] == '[': #marked section elif rawdata[j] == '[': #marked section
......
...@@ -115,7 +115,7 @@ comment1b--> ...@@ -115,7 +115,7 @@ comment1b-->
<Img sRc='Bar' isMAP>sample <Img sRc='Bar' isMAP>sample
text text
&#x201C; &#x201C;
<!--comment2a-- --comment2b--> <!--comment2a-- --comment2b--><!>
</Html> </Html>
""", [ """, [
("data", "\n"), ("data", "\n"),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment