summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-08-11 19:20:49 +0200
committerBram Moolenaar <Bram@vim.org>2018-08-11 19:20:49 +0200
commit21f990e1c22ffa2fdb66a548ebbe25e6e7194776 (patch)
tree04ee8dbff5de3883ad951aec692b3ada5cf2563b
parentef73a28401cde680dc0d02d4b0fb19ed659ec1d3 (diff)
patch 8.1.0274: 'incsearch' triggers on ":source"v8.1.0274
Problem: 'incsearch' triggers on ":source". Solution: Check for the whole command name.
-rw-r--r--src/ex_getln.c5
-rw-r--r--src/testdir/test_search.vim48
-rw-r--r--src/version.c2
3 files changed, 33 insertions, 22 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 3fb9c86233..804013bb38 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 71de172dc9..7e8ddbe640 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 510ce45d04..8d02863b79 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,