patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Problem: Vim9: some wincmd arguments cause a white space error.
Solution: Insert a space before the count. (closes #8001)
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index c21e55a..c276a7e 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -1056,6 +1056,27 @@
endif
assert_notequal(id1, win_getid())
close
+
+ split
+ var id = win_getid()
+ split
+ :2wincmd o
+ assert_equal(id, win_getid())
+ only
+
+ split
+ split
+ assert_equal(3, winnr('$'))
+ :2wincmd c
+ assert_equal(2, winnr('$'))
+ only
+
+ split
+ split
+ assert_equal(3, winnr('$'))
+ :2wincmd q
+ assert_equal(2, winnr('$'))
+ only
enddef
def Test_windo_missing_endif()
diff --git a/src/version.c b/src/version.c
index b2b0beb..0e02deb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2649,
+/**/
2648,
/**/
2647,
diff --git a/src/window.c b/src/window.c
index 3e32b37..3a68762 100644
--- a/src/window.c
+++ b/src/window.c
@@ -750,11 +750,10 @@
size_t bufsize,
long Prenum)
{
- size_t len = STRLEN(cmd);
-
- STRCPY(bufp, cmd);
if (Prenum > 0)
- vim_snprintf((char *)bufp + len, bufsize - len, "%ld", Prenum);
+ vim_snprintf((char *)bufp, bufsize, "%s %ld", cmd, Prenum);
+ else
+ STRCPY(bufp, cmd);
}
/*