changeset 15263:ad065b8123e8 v8.1.0640

patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set commit https://github.com/vim/vim/commit/548e5985734e4b216852205879daf9bfb00dbe5a Author: Bram Moolenaar <Bram@vim.org> Date: Wed Dec 26 21:45:00 2018 +0100 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set Problem: Get E14 while typing command :tab with 'incsearch' set. Solution: Do not give an error when looking for the command. (Yasuhiro Higashi)
author Bram Moolenaar <Bram@vim.org>
date Wed, 26 Dec 2018 22:00:06 +0100
parents 0132392dc488
children ac8b7be7e2fa
files src/ex_docmd.c src/testdir/test_search.vim src/version.c
diffstat 3 files changed, 29 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2827,18 +2827,22 @@ parse_command_modifiers(exarg_T *eap, ch
 
 	    case 't':	if (checkforcmd(&p, "tab", 3))
 			{
-			    long tabnr = get_address(eap, &eap->cmd, ADDR_TABS,
-					       eap->skip, skip_only, FALSE, 1);
-			    if (tabnr == MAXLNUM)
-				cmdmod.tab = tabpage_index(curtab) + 1;
-			    else
+			    if (!skip_only)
 			    {
-				if (tabnr < 0 || tabnr > LAST_TAB_NR)
+				long tabnr = get_address(eap, &eap->cmd,
+						    ADDR_TABS, eap->skip,
+						    skip_only, FALSE, 1);
+				if (tabnr == MAXLNUM)
+				    cmdmod.tab = tabpage_index(curtab) + 1;
+				else
 				{
-				    *errormsg = (char_u *)_(e_invrange);
-				    return FAIL;
+				    if (tabnr < 0 || tabnr > LAST_TAB_NR)
+				    {
+					*errormsg = (char_u *)_(e_invrange);
+					return FAIL;
+				    }
+				    cmdmod.tab = tabnr + 1;
 				}
-				cmdmod.tab = tabnr + 1;
 			    }
 			    eap->cmd = p;
 			    continue;
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -783,6 +783,20 @@ func Test_search_cmdline_incsearch_highl
   bwipe!
 endfunc
 
+func Test_incsearch_cmdline_modifier()
+  if !exists('+incsearch')
+    return
+  endif
+  call test_override("char_avail", 1)
+  new
+  call setline(1, ['foo'])
+  set incsearch
+  " Test that error E14 does not occur in parsing command modifier.
+  call feedkeys("V:tab", 'tx')
+
+  call Incsearch_cleanup()
+endfunc
+
 func Test_incsearch_scrolling()
   if !CanRunVimInTerminal()
     return
--- a/src/version.c
+++ b/src/version.c
@@ -800,6 +800,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    640,
+/**/
     639,
 /**/
     638,