changeset 14534:8fa7f5ff2649 v8.1.0280

patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/" commit https://github.com/vim/vim/commit/def7b1dc6104a6ce6d7c3e3a615231178601b124 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 13 22:54:35 2018 +0200 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/" Problem: 'incsearch' highlighting does not work for ":g!/". Solution: Skip the exclamation mark. (Hirohito Higashi)
author Christian Brabandt <cb@256bit.org>
date Mon, 13 Aug 2018 23:00:05 +0200
parents 358090a18f5b
children 2eecc8d1e8d9
files src/ex_getln.c src/testdir/test_search.vim src/version.c
diffstat 3 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -298,6 +298,13 @@ do_incsearch_highlighting(int firstc, in
 			    || 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);
--- 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
--- 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,