summaryrefslogtreecommitdiffstats
path: root/generic/regcomp.c
diff options
context:
space:
mode:
authorpvgoran <pvgoran>2003-11-15 11:14:01 (GMT)
committerpvgoran <pvgoran>2003-11-15 11:14:01 (GMT)
commit2e9dff22ea85a50e2c322edd5e33326481dc2073 (patch)
treecc96554e40ca49b2c5c34f0411f3c70f9ef2f26d /generic/regcomp.c
parent68735ac31ffa080019e5b986648dbd00e3c11cb6 (diff)
downloadtcl-2e9dff22ea85a50e2c322edd5e33326481dc2073.zip
tcl-2e9dff22ea85a50e2c322edd5e33326481dc2073.tar.gz
tcl-2e9dff22ea85a50e2c322edd5e33326481dc2073.tar.bz2
Fixed code that splits RE engine states into "progress" and "no-progress" (bugs 505048, 230589, 840258 and 504785).
Diffstat (limited to 'generic/regcomp.c')
-rw-r--r--generic/regcomp.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/regcomp.c b/generic/regcomp.c
index 4aba629..2a7fd6e 100644
--- a/generic/regcomp.c
+++ b/generic/regcomp.c
@@ -553,8 +553,12 @@ struct nfa *nfa;
if (b->from != pre)
break;
if (b != NULL) { /* must be split */
- s->tmp = slist;
- slist = s;
+ if (s->tmp == NULL) { /* if not already in the list */
+ /* (fixes bugs 505048, 230589, */
+ /* 840258, 504785) */
+ s->tmp = slist;
+ slist = s;
+ }
}
}