patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Problem: Vim9: compiled "wincmd" cannot be followed by bar.
Solution: Check for bar after "wincmd". (closes #7599)
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 095158c..ab31100 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -868,4 +868,14 @@
bwipe!
enddef
+def Test_wincmd()
+ split
+ var id1 = win_getid()
+ if true
+ try | wincmd w | catch | endtry
+ endif
+ assert_notequal(id1, win_getid())
+ close
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/version.c b/src/version.c
index 4d31dc7..b54cf0a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2281,
+/**/
2280,
/**/
2279,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 23da8f2..2a2b44e 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -7329,6 +7329,20 @@
if (eap->nextcmd != NULL)
nextcmd = eap->nextcmd;
}
+ else if (eap->cmdidx == CMD_wincmd)
+ {
+ p = eap->arg;
+ if (*p != NUL)
+ ++p;
+ if (*p == 'g' || *p == Ctrl_G)
+ ++p;
+ p = skipwhite(p);
+ if (*p == '|')
+ {
+ *p = NUL;
+ nextcmd = p + 1;
+ }
+ }
}
if (eap->cmdidx == CMD_syntax && STRNCMP(eap->arg, "include ", 8) == 0)