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);
 }
 
 /*