# HG changeset patch # User Christian Brabandt # Date 1534008605 -7200 # Node ID 97641c4f568734f487c7bd9ecc4db0e9bc44d9c7 # Parent 3c5a52ee583c71c60b257c0a0d2fb8298e7a2bc7 patch 8.1.0274: 'incsearch' triggers on ":source" commit https://github.com/vim/vim/commit/21f990e1c22ffa2fdb66a548ebbe25e6e7194776 Author: Bram Moolenaar 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. diff --git a/src/ex_getln.c b/src/ex_getln.c --- 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); diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim --- 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\\", '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\\", '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\/xxx\", 'tx') call assert_equal(' 2 xxxe', getline('.')) + undo + call feedkeys(":%subs/the\/xxx\", 'tx') + call assert_equal(' 2 xxxe', getline('.')) + undo + call feedkeys(":%substitute/the\/xxx\", 'tx') + call assert_equal(' 2 xxxe', getline('.')) call Cmdline3_cleanup() endfunc @@ -397,6 +396,9 @@ func Test_search_cmdline3g() 1 call feedkeys(":g/the\/d\", 'tx') call assert_equal(' 3 the theother', getline(2)) + undo + call feedkeys(":global/the\/d\", '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\/d\", 'tx') call assert_equal(1, line('$')) call assert_equal(' 2 the~e', getline(1)) + undo + call feedkeys(":vglobal/the\/d\", '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 diff --git a/src/version.c b/src/version.c --- 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,