summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp@users.sourceforge.net <dgp>2013-07-26 13:21:30 (GMT)
committerdgp@users.sourceforge.net <dgp>2013-07-26 13:21:30 (GMT)
commit34710f264bddf896b9da6d4352717ba7fd9a64f1 (patch)
treedc7fda1f50641956df70b65faf7ba9a1661861fd
parentfa8db1edef3d996a15d9ac07864ba642f884a2af (diff)
downloadtcl-34710f264bddf896b9da6d4352717ba7fd9a64f1.zip
tcl-34710f264bddf896b9da6d4352717ba7fd9a64f1.tar.gz
tcl-34710f264bddf896b9da6d4352717ba7fd9a64f1.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 c902209..205fcc2 100644
--- a/generic/regexec.c
+++ b/generic/regexec.c
@@ -512,12 +512,7 @@ cfindloop(
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 8138054..362f425 100644
--- a/tests/regexp.test
+++ b/tests/regexp.test
@@ -728,6 +728,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 ""