summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-07-26 13:24:19 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-07-26 13:24:19 (GMT)
commit18186af2e6c5db9ce74e112be489bae4147e5c9f (patch)
tree37d427a52d78b461e5f5941b2dd214434cd979af
parent6241ad2cd853f7fe54064a7e2bf5613926cf160a (diff)
parentc86bd1b78ad2eec0899db1c0927048cf9f0ed435 (diff)
downloadtcl-18186af2e6c5db9ce74e112be489bae4147e5c9f.zip
tcl-18186af2e6c5db9ce74e112be489bae4147e5c9f.tar.gz
tcl-18186af2e6c5db9ce74e112be489bae4147e5c9f.tar.bz2
[6585b21ca8] [regexp {(\w).*?\1} abb] failed to match. Thanks to Tom Lane for passing on the discovery in Postgres.
-rw-r--r--generic/regexec.c7
-rw-r--r--tests/regexp.test4
2 files changed, 5 insertions, 6 deletions
diff --git a/generic/regexec.c b/generic/regexec.c
index 9b6a693..ad4b6e6 100644
--- a/generic/regexec.c
+++ b/generic/regexec.c
@@ -504,12 +504,7 @@ complicatedFindLoop(
return er;
}
if ((shorter) ? end == estop : end == begin) {
- /*
- * No point in trying again.
- */
-
- *coldp = cold;
- return REG_NOMATCH;
+ break;
}
/*
diff --git a/tests/regexp.test b/tests/regexp.test
index 1c30001..1b2bec9 100644
--- a/tests/regexp.test
+++ b/tests/regexp.test
@@ -876,6 +876,10 @@ test regexp-22.5 {Bug 3610026} -setup {
} -cleanup {
unset -nocomplain e cp
} -returnCodes error -match glob -result {*too many colors*}
+test regexp-22.6 {Bug 6585b21ca8} {
+ expr {[regexp {(\w).*?\1} Programmer m] ? $m : "<NONE>"}
+} rogr
+
test regexp-23.1 {regexp -all and -line} {
set string ""