#12888: Fix a bug in HTMLParser.unescape that prevented it to escape more than 128 entities. Patch by Peter Otten.

This commit is contained in:
Ezio Melotti 2011-09-05 17:11:06 +03:00
parent 73abc24345
commit d9e0b068af
4 changed files with 7 additions and 2 deletions

View File

@ -458,4 +458,4 @@ class HTMLParser(_markupbase.ParserBase):
return '&'+s+';'
return re.sub(r"&(#?[xX]?(?:[0-9a-fA-F]+|\w{1,8}));",
replaceEntities, s, re.ASCII)
replaceEntities, s, flags=re.ASCII)

View File

@ -377,7 +377,8 @@ class HTMLParserTolerantTestCase(TestCaseBase):
p = html.parser.HTMLParser()
self.assertEqual(p.unescape('&#bad;'),'&#bad;')
self.assertEqual(p.unescape('&'),'&')
# see #12888
self.assertEqual(p.unescape('{ ' * 1050), '{ ' * 1050)
def test_main():
support.run_unittest(HTMLParserTestCase, HTMLParserTolerantTestCase)

View File

@ -661,6 +661,7 @@ Douglas Orr
Michele Orrù
Oleg Oshmyan
Denis S. Otkidach
Peter Otten
Michael Otteneder
R. M. Oudkerk
Russel Owen

View File

@ -25,6 +25,9 @@ Core and Builtins
Library
-------
- Issue #12888: Fix a bug in HTMLParser.unescape that prevented it to escape
more than 128 entities. Patch by Peter Otten.
- Issue #12878: Expose a __dict__ attribute on io.IOBase and its subclasses.
- Issue #12636: IDLE reads the coding cookie when executing a Python script.