From 19f977ba402acb44e7fcae8a7fe2dc37e3e36eca Mon Sep 17 00:00:00 2001 From: Fredrik Lundh Date: Sun, 24 Sep 2000 14:46:23 +0000 Subject: - don't hang if group id is followed by whitespace (closes bug #114660) --- Lib/sre_parse.py | 2 +- Lib/test/re_tests.py | 1 - Lib/test/test_sre.py | 3 +++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Lib/sre_parse.py b/Lib/sre_parse.py index 55de24c..f4741c9 100644 --- a/Lib/sre_parse.py +++ b/Lib/sre_parse.py @@ -634,7 +634,7 @@ def parse_template(source, pattern): while 1: group = _group(this, pattern.groups+1) if group: - if (not s.next or + if (s.next not in DIGITS or not _group(this + s.next, pattern.groups+1)): code = MARK, int(group) break diff --git a/Lib/test/re_tests.py b/Lib/test/re_tests.py index 7eac04c..3a25d51 100755 --- a/Lib/test/re_tests.py +++ b/Lib/test/re_tests.py @@ -1,6 +1,5 @@ #!/usr/bin/env python # -*- mode: python -*- -# $Id$ # Re test suite and benchmark suite v1.5 diff --git a/Lib/test/test_sre.py b/Lib/test/test_sre.py index d3e9dbe..373efa0 100644 --- a/Lib/test/test_sre.py +++ b/Lib/test/test_sre.py @@ -114,6 +114,9 @@ test(r"""sre.sub(r'^\s*', 'X', 'test')""", 'Xtest') test(r"""sre.sub(r'a', 'b', 'aaaaa')""", 'bbbbb') test(r"""sre.sub(r'a', 'b', 'aaaaa', 1)""", 'baaaa') +# bug 114660 +test(r"""sre.sub(r'(\S)\s+(\S)', r'\1 \2', 'hello there')""", 'hello there') + if verbose: print 'Running tests on symbolic references' -- cgit v0.12