diff options
author | Fredrik Lundh <fredrik@pythonware.com> | 2000-09-24 14:46:23 (GMT) |
---|---|---|
committer | Fredrik Lundh <fredrik@pythonware.com> | 2000-09-24 14:46:23 (GMT) |
commit | 19f977ba402acb44e7fcae8a7fe2dc37e3e36eca (patch) | |
tree | 2290ed4e98452381416d553eb612727525b7b2da | |
parent | 96753b348219ffc6c24eeb4316d6ba203ac09ad5 (diff) | |
download | cpython-19f977ba402acb44e7fcae8a7fe2dc37e3e36eca.zip cpython-19f977ba402acb44e7fcae8a7fe2dc37e3e36eca.tar.gz cpython-19f977ba402acb44e7fcae8a7fe2dc37e3e36eca.tar.bz2 |
- don't hang if group id is followed by whitespace (closes bug #114660)
-rw-r--r-- | Lib/sre_parse.py | 2 | ||||
-rwxr-xr-x | Lib/test/re_tests.py | 1 | ||||
-rw-r--r-- | 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' |