aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-02-10 23:18:04 +0100
committerGitHub <noreply@github.com>2018-02-10 23:18:04 +0100
commitc205360f00e5be3847c22738260237bcc9f3ca1e (patch)
tree7021a0849a73d76e31b2ea17d81b35da9c91e388 /src
parent34b99bc06b1e836f3a9bdfc25d55ff0661049007 (diff)
parentd929a41f5f8021fdb227c1fed1463094f16d305e (diff)
downloadrneovim-c205360f00e5be3847c22738260237bcc9f3ca1e.tar.gz
rneovim-c205360f00e5be3847c22738260237bcc9f3ca1e.tar.bz2
rneovim-c205360f00e5be3847c22738260237bcc9f3ca1e.zip
Merge pull request #7993 from blueyed/vim-8.0.1483
vim-patch:8.0.1483: searchpair() might return an invalid value on timeout
Diffstat (limited to 'src')
-rw-r--r--src/nvim/search.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/nvim/search.c b/src/nvim/search.c
index bbcac45369..533a28de35 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -775,12 +775,17 @@ int searchit(
}
}
if (ptr[matchcol] == NUL
- || (nmatched = vim_regexec_multi(&regmatch,
- win, buf, lnum + matchpos.lnum,
- matchcol,
- tm
- )) == 0)
- break;
+ || (nmatched = vim_regexec_multi(
+ &regmatch, win, buf, lnum + matchpos.lnum, matchcol,
+ tm)) == 0) {
+ // If the search timed out, we did find a match
+ // but it might be the wrong one, so that's not
+ // OK.
+ if (tm != NULL && profile_passed_limit(*tm)) {
+ match_ok = false;
+ }
+ break;
+ }
/* Need to get the line pointer again, a
* multi-line search may have made it invalid. */