diff options
author | Gustavo Niemeyer <gustavo@niemeyer.net> | 2002-11-06 14:06:53 (GMT) |
---|---|---|
committer | Gustavo Niemeyer <gustavo@niemeyer.net> | 2002-11-06 14:06:53 (GMT) |
commit | 4e7be06a652680611a81d6bb1fb03ce4227ac02e (patch) | |
tree | 0abf84675d23c70b00736be2692b59a6fd5c0222 /Misc | |
parent | 3c2c43341792b886740adec80ff875b1461a0ef2 (diff) | |
download | cpython-4e7be06a652680611a81d6bb1fb03ce4227ac02e.zip cpython-4e7be06a652680611a81d6bb1fb03ce4227ac02e.tar.gz cpython-4e7be06a652680611a81d6bb1fb03ce4227ac02e.tar.bz2 |
Fixed bug #470582, using a modified version of patch #527371,
from Greg Chapman.
* Modules/_sre.c
(lastmark_restore): New function, implementing algorithm to restore
a state to a given lastmark. In addition to the similar algorithm used
in a few places of SRE_MATCH, restore lastindex when restoring lastmark.
(SRE_MATCH): Replace lastmark inline restoring by lastmark_restore(),
function. Also include it where missing. In SRE_OP_MARK, set lastindex
only if i > lastmark.
* Lib/test/re_tests.py
* Lib/test/test_sre.py
Included regression tests for the fixed bugs.
* Misc/NEWS
Mention fixes.
Diffstat (limited to 'Misc')
-rw-r--r-- | Misc/NEWS | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -352,6 +352,13 @@ Extension modules to the value of the PYTHON_API_VERSION macro with which the interpreter was compiled. +- Fixed bug #470582: sre module would return a tuple (None, 'a', 'ab') + when applying the regular expression '^((a)c)?(ab)$' on 'ab'. It now + returns (None, None, 'ab'), as expected. Also fixed handling of + lastindex/lastgroup match attributes in a similar cases. For example, + when running the expression r'(a)(b)?b' over 'ab', lastindex must be + 1, not 2. + Library ------- |