Kaydet (Commit) 53d93adc authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Patch #681152: Support escaped Unicode characters in classes. Fixes #612074.

Will backport to 2.2.
üst 910ae628
......@@ -254,7 +254,7 @@ def _class_escape(source, escape):
if len(escape) != 2:
raise error, "bogus escape: %s" % repr("\\" + escape)
return LITERAL, atoi(escape, 16) & 0xff
elif str(escape[1:2]) in OCTDIGITS:
elif escape[1:2] in OCTDIGITS:
# octal escape (up to three digits)
while source.next in OCTDIGITS and len(escape) < 5:
escape = escape + source.get()
......
......@@ -96,6 +96,10 @@ test(r"""sre.match('.*?cd', 20000*'abc'+'de').end(0)""", 60001)
# non-simple '*?' still recurses and hits the recursion limit
test(r"""sre.search('(a|b)*?c', 10000*'ab'+'cd').end(0)""", None, RuntimeError)
# bug 612074
pat=u"["+sre.escape(u"\u2039")+u"]"
test(r"""sre.compile(pat) and 1""", 1, None)
if verbose:
print 'Running tests on sre.sub'
......
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