]> granicus.if.org Git - vim/commitdiff
patch 8.2.2649: Vim9: some wincmd arguments cause a white space error v8.2.2649
authorBram Moolenaar <Bram@vim.org>
Wed, 24 Mar 2021 19:08:12 +0000 (20:08 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 24 Mar 2021 19:08:12 +0000 (20:08 +0100)
Problem:    Vim9: some wincmd arguments cause a white space error.
Solution:   Insert a space before the count. (closes #8001)

src/testdir/test_vim9_cmd.vim
src/version.c
src/window.c

index c21e55a477852337407cd301e5c8d8b81efe4a2f..c276a7e6f50050baaaa5914986935c42d31010b5 100644 (file)
@@ -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()
index b2b0beb731a9cdac93febc5632cb3e1f69c7c2cd..0e02deb70bd8652c084f80210afac9eca07e4e4e 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2649,
 /**/
     2648,
 /**/
index 3e32b3759ea270b94adf621e5ab5d6b1a4b509a9..3a68762a59854db36c5215e1b02ff77a355025b8 100644 (file)
@@ -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);
 }
 
 /*