summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-08-25 17:01:42 +0200
committerBram Moolenaar <Bram@vim.org>2013-08-25 17:01:42 +0200
commit41f1205fef7eb24656abb3eeb1dea9ff5cdf1b62 (patch)
treed390ecf9e774a729699c5aa652d204136292589e
parent74cd624fdeef12526e1f69b9ddaee037fcef8f3f (diff)
updated for version 7.4.008v7.4.008
Problem: New regexp engine can't be interrupted. Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
-rw-r--r--src/regexp.c4
-rw-r--r--src/regexp_nfa.c6
-rw-r--r--src/version.c2
3 files changed, 10 insertions, 2 deletions
diff --git a/src/regexp.c b/src/regexp.c
index 06bbb4a540..df884e25bd 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -4311,8 +4311,8 @@ regmatch(scan)
*/
for (;;)
{
- /* Some patterns may cause a long time to match, even though they are not
- * illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */
+ /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
+ * Allow interrupting them with CTRL-C. */
fast_breakcheck();
#ifdef DEBUG
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 57539f4e53..5288eb6d3f 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -5089,6 +5089,12 @@ nfa_regmatch(prog, start, submatch, m)
return FALSE;
}
#endif
+ /* Some patterns may take a long time to match, especially when using
+ * recursive_regmatch(). Allow interrupting them with CTRL-C. */
+ fast_breakcheck();
+ if (got_int)
+ return FALSE;
+
nfa_match = FALSE;
/* Allocate memory for the lists of nodes. */
diff --git a/src/version.c b/src/version.c
index d34ed63ddf..22fc9b961b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 8,
+/**/
7,
/**/
6,