Mercurial > vim
changeset 16570:2c2f5f0173c1 v8.1.1288
patch 8.1.1288: search stats don't show for mapped command
commit https://github.com/vim/vim/commit/9ce3fa828d238ff28d57b0092bb37575e20010ec
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 7 21:29:11 2019 +0200
patch 8.1.1288: search stats don't show for mapped command
Problem: Search stats don't show for mapped command.
Solution: Remove SEARCH_PEEK from searchit flags. Add a test. (Christian
Brabandt)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 07 May 2019 21:30:05 +0200 |
parents | 2eeb461f054f |
children | ba3c4eaaec90 |
files | src/search.c src/testdir/test_search_stat.vim src/version.c |
diffstat | 3 files changed, 29 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/search.c +++ b/src/search.c @@ -4958,8 +4958,8 @@ search_stat( profile_setlimit(20L, &start); #endif 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) { #ifdef FEAT_RELTIME // Stop after passing the time limit.
--- a/src/testdir/test_search_stat.vim +++ b/src/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!