summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-03-24 20:08:12 +0100
committerBram Moolenaar <Bram@vim.org>2021-03-24 20:08:12 +0100
commit1ff89deeaa07a161afbe91f57c340f3758d34f49 (patch)
tree28243c15cb05fa45c226be2b3c96c097ea616c1e
parentc54f347d63bcca97ead673d01ac6b59914bb04e5 (diff)
patch 8.2.2649: Vim9: some wincmd arguments cause a white space errorv8.2.2649
Problem: Vim9: some wincmd arguments cause a white space error. Solution: Insert a space before the count. (closes #8001)
-rw-r--r--src/testdir/test_vim9_cmd.vim21
-rw-r--r--src/version.c2
-rw-r--r--src/window.c7
3 files changed, 26 insertions, 4 deletions
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index c21e55a477..c276a7e6f5 100644
--- 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()
diff --git a/src/version.c b/src/version.c
index b2b0beb731..0e02deb70b 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 */
/**/
+ 2649,
+/**/
2648,
/**/
2647,
diff --git a/src/window.c b/src/window.c
index 3e32b3759e..3a68762a59 100644
--- 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);
}
/*