changeset 14522:97641c4f5687 v8.1.0274

patch 8.1.0274: 'incsearch' triggers on ":source" commit https://github.com/vim/vim/commit/21f990e1c22ffa2fdb66a548ebbe25e6e7194776 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 11 19:20:49 2018 +0200 patch 8.1.0274: 'incsearch' triggers on ":source" Problem: 'incsearch' triggers on ":source". Solution: Check for the whole command name.
author Christian Brabandt <cb@256bit.org>
date Sat, 11 Aug 2018 19:30:05 +0200
parents 3c5a52ee583c
children f67a38a09c6d
files src/ex_getln.c src/testdir/test_search.vim src/version.c
diffstat 3 files changed, 33 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -293,7 +293,10 @@ do_incsearch_highlighting(int firstc, in
 		// Skip over "substitute" to find the pattern separator.
 		for (p = cmd; ASCII_ISALPHA(*p); ++p)
 		    ;
-		if (*p != NUL)
+		if (*p != NUL
+			&& (STRNCMP(cmd, "substitute", p - cmd) == 0
+			    || STRNCMP(cmd, "global", p - cmd) == 0
+			    || STRNCMP(cmd, "vglobal", p - cmd) == 0))
 		{
 		    delim = *p++;
 		    end = skip_regexp(p, delim, p_magic, NULL);
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -342,26 +342,6 @@ func Test_searchc()
   bw!
 endfunc
 
-func Test_search_cmdline3()
-  if !exists('+incsearch')
-    return
-  endif
-  " need to disable char_avail,
-  " so that expansion of commandline works
-  call test_override("char_avail", 1)
-  new
-  call setline(1, ['  1', '  2 the~e', '  3 the theother'])
-  set incsearch
-  1
-  " first match
-  call feedkeys("/the\<c-l>\<cr>", 'tx')
-  call assert_equal('  2 the~e', getline('.'))
-  " clean up
-  set noincsearch
-  call test_override("char_avail", 0)
-  bw!
-endfunc
-
 func Cmdline3_prep()
   " need to disable char_avail,
   " so that expansion of commandline works
@@ -377,6 +357,19 @@ func Cmdline3_cleanup()
   bw!
 endfunc
 
+func Test_search_cmdline3()
+  if !exists('+incsearch')
+    return
+  endif
+  call Cmdline3_prep()
+  1
+  " first match
+  call feedkeys("/the\<c-l>\<cr>", 'tx')
+  call assert_equal('  2 the~e', getline('.'))
+
+  call Cmdline3_cleanup()
+endfunc
+
 func Test_search_cmdline3s()
   if !exists('+incsearch')
     return
@@ -385,6 +378,12 @@ func Test_search_cmdline3s()
   1
   call feedkeys(":%s/the\<c-l>/xxx\<cr>", 'tx')
   call assert_equal('  2 xxxe', getline('.'))
+  undo
+  call feedkeys(":%subs/the\<c-l>/xxx\<cr>", 'tx')
+  call assert_equal('  2 xxxe', getline('.'))
+  undo
+  call feedkeys(":%substitute/the\<c-l>/xxx\<cr>", 'tx')
+  call assert_equal('  2 xxxe', getline('.'))
 
   call Cmdline3_cleanup()
 endfunc
@@ -397,6 +396,9 @@ func Test_search_cmdline3g()
   1
   call feedkeys(":g/the\<c-l>/d\<cr>", 'tx')
   call assert_equal('  3 the theother', getline(2))
+  undo
+  call feedkeys(":global/the\<c-l>/d\<cr>", 'tx')
+  call assert_equal('  3 the theother', getline(2))
 
   call Cmdline3_cleanup()
 endfunc
@@ -410,6 +412,10 @@ func Test_search_cmdline3v()
   call feedkeys(":v/the\<c-l>/d\<cr>", 'tx')
   call assert_equal(1, line('$'))
   call assert_equal('  2 the~e', getline(1))
+  undo
+  call feedkeys(":vglobal/the\<c-l>/d\<cr>", 'tx')
+  call assert_equal(1, line('$'))
+  call assert_equal('  2 the~e', getline(1))
 
   call Cmdline3_cleanup()
 endfunc
@@ -518,7 +524,7 @@ func Test_search_cmdline7()
   " so that expansion of commandline works
   call test_override("char_avail", 1)
   new
-  let @/='b'
+  let @/ = 'b'
   call setline(1, [' bbvimb', ''])
   set incsearch
   " first match
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    274,
+/**/
     273,
 /**/
     272,