summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2008-07-07 19:23:37 +0000
committerBram Moolenaar <Bram@vim.org>2008-07-07 19:23:37 +0000
commit990d95c0796b79117f102b3558f861e20cd65573 (patch)
treeb9676ed04b0e18d8e2991c8a925230ba84dfd09e /src/window.c
parentb3c722a01531e39710de0cbbd8bab3004e7e50c9 (diff)
downloadvim-git-990d95c0796b79117f102b3558f861e20cd65573.tar.gz
updated for version 7.2a-016v7.2a.016
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/window.c b/src/window.c
index a0f196bc4..b1430a679 100644
--- a/src/window.c
+++ b/src/window.c
@@ -149,12 +149,18 @@ do_window(nchar, Prenum, xchar)
case Ctrl_V:
case 'v':
CHECK_CMDWIN
-#ifdef FEAT_VISUAL
+# ifdef FEAT_VISUAL
reset_VIsual_and_resel(); /* stop Visual mode */
-#endif
-#ifdef FEAT_GUI
+# endif
+# ifdef FEAT_QUICKFIX
+ /* When splitting the quickfix window open a new buffer in it,
+ * don't replicate the quickfix buffer. */
+ if (bt_quickfix(curbuf))
+ goto newwindow;
+# endif
+# ifdef FEAT_GUI
need_mouse_correct = TRUE;
-#endif
+# endif
win_split((int)Prenum, WSP_VERT);
break;
#endif
@@ -168,7 +174,8 @@ do_window(nchar, Prenum, xchar)
#endif
STRCPY(cbuf, "split #");
if (Prenum)
- sprintf((char *)cbuf + 7, "%ld", Prenum);
+ vim_snprintf((char *)cbuf + 7, sizeof(cbuf) - 7,
+ "%ld", Prenum);
do_cmdline_cmd(cbuf);
break;
@@ -183,9 +190,14 @@ do_window(nchar, Prenum, xchar)
newwindow:
#endif
if (Prenum)
- sprintf((char *)cbuf, "%ld", Prenum); /* window height */
+ /* window height */
+ vim_snprintf((char *)cbuf, sizeof(cbuf) - 5, "%ld", Prenum);
else
cbuf[0] = NUL;
+#if defined(FEAT_VERTSPLIT) && defined(FEAT_QUICKFIX)
+ if (nchar == 'v' || nchar == Ctrl_V)
+ STRCAT(cbuf, "v");
+#endif
STRCAT(cbuf, "new");
do_cmdline_cmd(cbuf);
break;