diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-09-12 10:51:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-12 10:51:59 -0400 |
commit | b23907e7ce8b4cf6e7e95abd3379bcae6715af7b (patch) | |
tree | 72db66d5dc11e7dc66d56da1e539c2b7e13d3930 /src/nvim/search.c | |
parent | 459f8ad80861be55ca091b8e7594f6bb61a804e0 (diff) | |
parent | 466ff35dfd72418458d9c629310cc52bb5428df2 (diff) | |
download | rneovim-b23907e7ce8b4cf6e7e95abd3379bcae6715af7b.tar.gz rneovim-b23907e7ce8b4cf6e7e95abd3379bcae6715af7b.tar.bz2 rneovim-b23907e7ce8b4cf6e7e95abd3379bcae6715af7b.zip |
Merge pull request #12721 from aufarg/vim-8.1.0265
[RDY] vim-patch:8.1.{265,271,273,274,275,277,278,279,280,281,282,284,286,291,295,296,320,321,339,351,392,399,552}
Diffstat (limited to 'src/nvim/search.c')
-rw-r--r-- | src/nvim/search.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nvim/search.c b/src/nvim/search.c index fc82e81472..23d84038d6 100644 --- a/src/nvim/search.c +++ b/src/nvim/search.c @@ -99,6 +99,7 @@ static struct spat saved_spats[2]; // copy of spats[RE_SEARCH], for keeping the search patterns while incremental // searching static struct spat saved_last_search_spat; +static int did_save_last_search_spat = 0; static int saved_last_idx = 0; static bool saved_no_hlsearch = false; @@ -316,6 +317,12 @@ void free_search_patterns(void) /// cancelling incremental searching even if it's called inside user functions. void save_last_search_pattern(void) { + if (did_save_last_search_spat != 0) { + IEMSG("did_save_last_search_spat is not zero"); + } else { + did_save_last_search_spat++; + } + saved_last_search_spat = spats[RE_SEARCH]; if (spats[RE_SEARCH].pat != NULL) { saved_last_search_spat.pat = vim_strsave(spats[RE_SEARCH].pat); @@ -326,8 +333,15 @@ void save_last_search_pattern(void) void restore_last_search_pattern(void) { + if (did_save_last_search_spat != 1) { + IEMSG("did_save_last_search_spat is not one"); + return; + } + did_save_last_search_spat--; + xfree(spats[RE_SEARCH].pat); spats[RE_SEARCH] = saved_last_search_spat; + saved_last_search_spat.pat = NULL; set_vv_searchforward(); last_idx = saved_last_idx; set_no_hlsearch(saved_no_hlsearch); |