diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-08-25 17:01:42 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-08-25 17:01:42 +0200 |
commit | 41f1205fef7eb24656abb3eeb1dea9ff5cdf1b62 (patch) | |
tree | d390ecf9e774a729699c5aa652d204136292589e | |
parent | 74cd624fdeef12526e1f69b9ddaee037fcef8f3f (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.c | 4 | ||||
-rw-r--r-- | src/regexp_nfa.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |