summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/testdir/test_vim9_cmd.vim10
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c14
3 files changed, 26 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 095158c51..ab3110068 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -868,4 +868,14 @@ def Test_insert_complete()
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 4d31dc7f2..b54cf0a39 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
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 23da8f2d1..2a2b44eac 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -7329,6 +7329,20 @@ compile_exec(char_u *line, exarg_T *eap, cctx_T *cctx)
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)