changeset 24216:77cb22562852 v8.2.2649

patch 8.2.2649: Vim9: some wincmd arguments cause a white space error Commit: https://github.com/vim/vim/commit/1ff89deeaa07a161afbe91f57c340f3758d34f49 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 24 20:08:12 2021 +0100 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 https://github.com/vim/vim/issues/8001)
author Bram Moolenaar <Bram@vim.org>
date Wed, 24 Mar 2021 20:15:04 +0100
parents 34ce0274f6f3
children d78d5ce72580
files src/testdir/test_vim9_cmd.vim src/version.c src/window.c
diffstat 3 files changed, 26 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -1056,6 +1056,27 @@ def Test_wincmd()
   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()
--- 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 */
 /**/
+    2649,
+/**/
     2648,
 /**/
     2647,
--- a/src/window.c
+++ b/src/window.c
@@ -750,11 +750,10 @@ cmd_with_count(
     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);
 }
 
 /*