diff options
-rw-r--r-- | src/ex_getln.c | 7 | ||||
-rw-r--r-- | src/testdir/test_search.vim | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 17 insertions, 0 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index 8765ac5b2..fb16743f0 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -298,6 +298,13 @@ do_incsearch_highlighting(int firstc, incsearch_state_T *is_state, || STRNCMP(cmd, "global", p - cmd) == 0 || STRNCMP(cmd, "vglobal", p - cmd) == 0)) { + // Check for "global!/". + if (*cmd == 'g' && *p == '!') + { + p++; + if (*skipwhite(p) == NUL) + return FALSE; + } p = skipwhite(p); 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 05046b3c0..8d4b7cc60 100644 --- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -399,6 +399,14 @@ func Test_search_cmdline3g() undo call feedkeys(":global/the\<c-l>/d\<cr>", 'tx') call assert_equal(' 3 the theother', getline(2)) + undo + call feedkeys(":g!/the\<c-l>/d\<cr>", 'tx') + call assert_equal(1, line('$')) + call assert_equal(' 2 the~e', getline(1)) + undo + call feedkeys(":global!/the\<c-l>/d\<cr>", 'tx') + call assert_equal(1, line('$')) + call assert_equal(' 2 the~e', getline(1)) call Incsearch_cleanup() endfunc diff --git a/src/version.c b/src/version.c index 4a9dd1423..145099220 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 */ /**/ + 280, +/**/ 279, /**/ 278, |