From c696093d0b936dcb4dcc410f544d0d06a70e2c99 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 15 Jan 2018 07:46:57 +0100 Subject: [PATCH 1/2] WIP: Fix passed timeout with backwards searchpair searchpair(pos) might return an invalid value in case a timeout is used. This can be triggered using `searchpairpos('(', '', ')', 'bnW', '', 1, 500)` (not reliably, but very often from line 1818 of https://github.com/vim-jp/vim-vimlparser/blob/9eb216ff880d7b7fee036f096b6ad822651ea4db/py/vimlparser.py#L1818). --- src/search.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/search.c b/src/search.c index 8bb5f3d97aabc..f01c453baca02 100644 --- a/src/search.c +++ b/src/search.c @@ -973,7 +973,13 @@ searchit( NULL, NULL #endif )) == 0) + { +#ifdef FEAT_RELTIME + if (timed_out != NULL && *timed_out) + match_ok = false; +#endif break; + } /* Need to get the line pointer again, a * multi-line search may have made it invalid. */ From 9890e5a9ef4337e07a62b729f4bba3c627437dc1 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 15 Jan 2018 16:24:01 +0100 Subject: [PATCH 2/2] fixup! WIP: Fix passed timeout with backwards searchpair --- src/search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/search.c b/src/search.c index f01c453baca02..d9038046d90c2 100644 --- a/src/search.c +++ b/src/search.c @@ -976,7 +976,7 @@ searchit( { #ifdef FEAT_RELTIME if (timed_out != NULL && *timed_out) - match_ok = false; + match_ok = FALSE; #endif break; }