diff options
-rw-r--r-- | src/ex_getln.c | 5 | ||||
-rw-r--r-- | src/testdir/test_search.vim | 48 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 33 insertions, 22 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index 3fb9c8623..804013bb3 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -293,7 +293,10 @@ do_incsearch_highlighting(int firstc, incsearch_state_T *is_state, // 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 index 71de172dc..7e8ddbe64 100644 --- 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 diff --git a/src/version.c b/src/version.c index 510ce45d0..8d02863b7 100644 --- 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, |