summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-05-24 21:48:07 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-05-24 21:48:07 (GMT)
commit30c223cff53610ac07d575f19a5bd8dbc3715b72 (patch)
tree53a25bad3cee2e7317b8c95df021e715814ed2e6 /Lib
parent862793819186b67fe83bbbf77b092c10a1a02818 (diff)
downloadcpython-30c223cff53610ac07d575f19a5bd8dbc3715b72.zip
cpython-30c223cff53610ac07d575f19a5bd8dbc3715b72.tar.gz
cpython-30c223cff53610ac07d575f19a5bd8dbc3715b72.tar.bz2
Merged revisions 81504 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r81504 | victor.stinner | 2010-05-24 23:46:25 +0200 (lun., 24 mai 2010) | 13 lines Recorded merge of revisions 81500-81501 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r81500 | victor.stinner | 2010-05-24 23:33:24 +0200 (lun., 24 mai 2010) | 2 lines Issue #6662: Fix parsing of malformatted charref (&#bad;) ........ r81501 | victor.stinner | 2010-05-24 23:37:28 +0200 (lun., 24 mai 2010) | 2 lines Add the author of the last fix (Issue #6662) ........ ................
Diffstat (limited to 'Lib')
-rw-r--r--Lib/html/parser.py3
-rwxr-xr-xLib/test/test_htmlparser.py7
2 files changed, 10 insertions, 0 deletions
diff --git a/Lib/html/parser.py b/Lib/html/parser.py
index 83a5825..c2c7f6b 100644
--- a/Lib/html/parser.py
+++ b/Lib/html/parser.py
@@ -175,6 +175,9 @@ class HTMLParser(_markupbase.ParserBase):
i = self.updatepos(i, k)
continue
else:
+ if ";" in rawdata[i:]: #bail by consuming &#
+ self.handle_data(rawdata[0:2])
+ i = self.updatepos(i, 2)
break
elif startswith('&', i):
match = entityref.match(rawdata, i)
diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py
index dd74aac..e982218 100755
--- a/Lib/test/test_htmlparser.py
+++ b/Lib/test/test_htmlparser.py
@@ -136,6 +136,13 @@ text
("data", "\n"),
])
+ def test_malformatted_charref(self):
+ self._run_check("<p>&#bad;</p>", [
+ ("starttag", "p", []),
+ ("data", "&#bad;"),
+ ("endtag", "p"),
+ ])
+
def test_unclosed_entityref(self):
self._run_check("&entityref foo", [
("entityref", "entityref"),