diff options
-rw-r--r-- | src/nvim/search.c | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_search_stat.vim | 25 |
2 files changed, 27 insertions, 2 deletions
diff --git a/src/nvim/search.c b/src/nvim/search.c index 2a14afd762..62e1338496 100644 --- a/src/nvim/search.c +++ b/src/nvim/search.c @@ -4237,8 +4237,8 @@ static void search_stat(int dirc, pos_T *pos, p_ws = false; start = profile_setlimit(20L); while (!got_int && searchit(curwin, curbuf, &lastpos, NULL, - FORWARD, NULL, 1, SEARCH_PEEK + SEARCH_KEEP, - RE_LAST, (linenr_T)0, NULL, NULL) != FAIL) { + FORWARD, NULL, 1, SEARCH_KEEP, RE_LAST, + (linenr_T)0, NULL, NULL) != FAIL) { // Stop after passing the time limit. if (profile_passed_limit(start)) { cnt = OUT_OF_TIME; diff --git a/src/nvim/testdir/test_search_stat.vim b/src/nvim/testdir/test_search_stat.vim index 57dad81b81..107cd54a0e 100644 --- a/src/nvim/testdir/test_search_stat.vim +++ b/src/nvim/testdir/test_search_stat.vim @@ -8,6 +8,7 @@ source shared.vim func! Test_search_stat() new set shortmess-=S + " Append 50 lines with text to search for, "foobar" appears 20 times call append(0, repeat(['foobar', 'foo', 'fooooobar', 'foba', 'foobar'], 10)) " 1) match at second line @@ -105,6 +106,30 @@ func! Test_search_stat() call assert_false(1) endtry + " 11) normal, n comes from a mapping + " Need to move over more than 64 lines to trigger char_avail(. + nnoremap n nzv + call cursor(1,1) + call append(50, repeat(['foobar', 'foo', 'fooooobar', 'foba', 'foobar'], 10)) + call setline(2, 'find this') + call setline(70, 'find this') + let @/ = 'find this' + let pat = '/find this\s\+' + let g:a = execute(':unsilent :norm n') + " g:a will contain several lines + let g:b = split(g:a, "\n")[-1] + let stat = '\[1/2\]' + call assert_match(pat .. stat, g:b) + unmap n + + " 11) normal, but silent + call cursor(1,1) + let @/ = 'find this' + let pat = '/find this\s\+' + let g:a = execute(':norm! n') + let stat = '\[1/2\]' + call assert_notmatch(pat .. stat, g:a) + " close the window set shortmess+=S bwipe! |