To: vim_dev@googlegroups.com
Subject: Patch 7.4.742
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.4.742
Problem: Cannot specify a vertical split when loading a buffer for a
quickfix command.
Solution: Add the "vsplit" value to 'switchbuf'. (Brook Hong)
Files: runtime/doc/options.txt, src/buffer.c, src/option.h
*** ../vim-7.4.741/runtime/doc/options.txt 2015-05-04 17:28:17.340445782 +0200
--- runtime/doc/options.txt 2015-06-19 14:26:15.447584096 +0200
***************
*** 7058,7063 ****
--- 7067,7073 ----
split If included, split the current window before loading
a buffer for a |quickfix| command that display errors.
Otherwise: do not split, use current window.
+ vsplit Just like "split" but split vertically.
newtab Like "split", but open a new tab page. Overrules
"split" when both are present.
*** ../vim-7.4.741/src/buffer.c 2015-03-20 18:11:44.963196400 +0100
--- src/buffer.c 2015-06-19 14:28:36.342100740 +0200
***************
*** 2071,2087 ****
* "buf" if one exists */
if (swb_flags & SWB_USEOPEN)
wp = buf_jump_open_win(buf);
/* If 'switchbuf' contains "usetab": jump to first window in any tab
* page containing "buf" if one exists */
if (wp == NULL && (swb_flags & SWB_USETAB))
wp = buf_jump_open_tab(buf);
! /* If 'switchbuf' contains "split" or "newtab" and the current buffer
! * isn't empty: open new window */
! if (wp == NULL && (swb_flags & (SWB_SPLIT | SWB_NEWTAB)) && !bufempty())
{
! if (swb_flags & SWB_NEWTAB) /* Open in a new tab */
tabpage_new();
! else if (win_split(0, 0) == FAIL) /* Open in a new window */
return FAIL;
RESET_BINDING(curwin);
}
--- 2071,2091 ----
* "buf" if one exists */
if (swb_flags & SWB_USEOPEN)
wp = buf_jump_open_win(buf);
+
/* If 'switchbuf' contains "usetab": jump to first window in any tab
* page containing "buf" if one exists */
if (wp == NULL && (swb_flags & SWB_USETAB))
wp = buf_jump_open_tab(buf);
!
! /* If 'switchbuf' contains "split", "vsplit" or "newtab" and the
! * current buffer isn't empty: open new tab or window */
! if (wp == NULL && (swb_flags & (SWB_VSPLIT | SWB_SPLIT | SWB_NEWTAB))
! && !bufempty())
{
! if (swb_flags & SWB_NEWTAB)
tabpage_new();
! else if (win_split(0, (swb_flags & SWB_VSPLIT) ? WSP_VERT : 0)
! == FAIL)
return FAIL;
RESET_BINDING(curwin);
}
*** ../vim-7.4.741/src/option.h 2014-11-05 17:44:47.676471691 +0100
--- src/option.h 2015-06-19 14:25:00.364374797 +0200
***************
*** 765,776 ****
EXTERN char_u *p_swb; /* 'switchbuf' */
EXTERN unsigned swb_flags;
#ifdef IN_OPTION_C
! static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", NULL};
#endif
#define SWB_USEOPEN 0x001
#define SWB_USETAB 0x002
#define SWB_SPLIT 0x004
#define SWB_NEWTAB 0x008
EXTERN int p_tbs; /* 'tagbsearch' */
EXTERN long p_tl; /* 'taglength' */
EXTERN int p_tr; /* 'tagrelative' */
--- 765,777 ----
EXTERN char_u *p_swb; /* 'switchbuf' */
EXTERN unsigned swb_flags;
#ifdef IN_OPTION_C
! static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", "vsplit", NULL};
#endif
#define SWB_USEOPEN 0x001
#define SWB_USETAB 0x002
#define SWB_SPLIT 0x004
#define SWB_NEWTAB 0x008
+ #define SWB_VSPLIT 0x010
EXTERN int p_tbs; /* 'tagbsearch' */
EXTERN long p_tl; /* 'taglength' */
EXTERN int p_tr; /* 'tagrelative' */
*** ../vim-7.4.741/src/version.c 2015-06-19 14:06:29.043993697 +0200
--- src/version.c 2015-06-19 14:25:32.060040993 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 742,
/**/
--
hundred-and-one symptoms of being an internet addict:
116. You are living with your boyfriend who networks your respective
computers so you can sit in separate rooms and email each other
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///