Mercurial > vim
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