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!
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1288,
+/**/
     1287,
 /**/
     1286,