Merge pull request #4187 from watiko/vim-7.4.742

vim-patch:7.4.742
This commit is contained in:
Justin M. Keyes
2016-02-09 02:19:17 -05:00
4 changed files with 52 additions and 42 deletions

View File

@@ -6177,6 +6177,7 @@ A jump table for the options with a short description can be found at |Q_op|.
split If included, split the current window before loading split If included, split the current window before loading
a buffer for a |quickfix| command that display errors. a buffer for a |quickfix| command that display errors.
Otherwise: do not split, use current window. Otherwise: do not split, use current window.
vsplit Just like "split" but split vertically.
newtab Like "split", but open a new tab page. Overrules newtab Like "split", but open a new tab page. Overrules
"split" when both are present. "split" when both are present.

View File

@@ -1601,21 +1601,28 @@ int buflist_getfile(int n, linenr_T lnum, int options, int forceit)
col = 0; col = 0;
if (options & GETF_SWITCH) { if (options & GETF_SWITCH) {
/* If 'switchbuf' contains "useopen": jump to first window containing // If 'switchbuf' contains "useopen": jump to first window containing
* "buf" if one exists */ // "buf" if one exists
if (swb_flags & SWB_USEOPEN) if (swb_flags & SWB_USEOPEN) {
wp = buf_jump_open_win(buf); 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)) // 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); 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 'switchbuf' contains "split", "vsplit" or "newtab" and the
if (swb_flags & SWB_NEWTAB) /* Open in a new tab */ // 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(); tabpage_new();
else if (win_split(0, 0) == FAIL) /* Open in a new window */ } else if (win_split(0, (swb_flags & SWB_VSPLIT) ? WSP_VERT : 0)
== FAIL) {
return FAIL; return FAIL;
}
RESET_BINDING(curwin); RESET_BINDING(curwin);
} }
} }

View File

@@ -571,41 +571,43 @@ EXTERN char_u *p_su; // 'suffixes'
EXTERN char_u *p_swb; // 'switchbuf' EXTERN char_u *p_swb; // 'switchbuf'
EXTERN unsigned swb_flags; EXTERN unsigned swb_flags;
#ifdef IN_OPTION_C #ifdef IN_OPTION_C
static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", NULL}; static char *(p_swb_values[]) =
{ "useopen", "usetab", "split", "newtab", "vsplit", NULL };
#endif #endif
#define SWB_USEOPEN 0x001 #define SWB_USEOPEN 0x001
#define SWB_USETAB 0x002 #define SWB_USETAB 0x002
#define SWB_SPLIT 0x004 #define SWB_SPLIT 0x004
#define SWB_NEWTAB 0x008 #define SWB_NEWTAB 0x008
EXTERN int p_tbs; /* 'tagbsearch' */ #define SWB_VSPLIT 0x010
EXTERN long p_tl; /* 'taglength' */ EXTERN int p_tbs; ///< 'tagbsearch'
EXTERN int p_tr; /* 'tagrelative' */ EXTERN long p_tl; ///< 'taglength'
EXTERN char_u *p_tags; /* 'tags' */ EXTERN int p_tr; ///< 'tagrelative'
EXTERN int p_tgst; /* 'tagstack' */ EXTERN char_u *p_tags; ///< 'tags'
EXTERN int p_tbidi; /* 'termbidi' */ EXTERN int p_tgst; ///< 'tagstack'
EXTERN int p_terse; /* 'terse' */ EXTERN int p_tbidi; ///< 'termbidi'
EXTERN int p_to; /* 'tildeop' */ EXTERN int p_terse; ///< 'terse'
EXTERN int p_timeout; /* 'timeout' */ EXTERN int p_to; ///< 'tildeop'
EXTERN long p_tm; /* 'timeoutlen' */ EXTERN int p_timeout; ///< 'timeout'
EXTERN int p_title; /* 'title' */ EXTERN long p_tm; ///< 'timeoutlen'
EXTERN long p_titlelen; /* 'titlelen' */ EXTERN int p_title; ///< 'title'
EXTERN char_u *p_titleold; /* 'titleold' */ EXTERN long p_titlelen; ///< 'titlelen'
EXTERN char_u *p_titlestring; /* 'titlestring' */ EXTERN char_u *p_titleold; ///< 'titleold'
EXTERN char_u *p_tsr; /* 'thesaurus' */ EXTERN char_u *p_titlestring; ///< 'titlestring'
EXTERN int p_ttimeout; /* 'ttimeout' */ EXTERN char_u *p_tsr; ///< 'thesaurus'
EXTERN long p_ttm; /* 'ttimeoutlen' */ EXTERN int p_ttimeout; ///< 'ttimeout'
EXTERN char_u *p_udir; /* 'undodir' */ EXTERN long p_ttm; ///< 'ttimeoutlen'
EXTERN long p_ul; /* 'undolevels' */ EXTERN char_u *p_udir; ///< 'undodir'
EXTERN long p_ur; /* 'undoreload' */ EXTERN long p_ul; ///< 'undolevels'
EXTERN long p_uc; /* 'updatecount' */ EXTERN long p_ur; ///< 'undoreload'
EXTERN long p_ut; /* 'updatetime' */ EXTERN long p_uc; ///< 'updatecount'
EXTERN char_u *p_fcs; /* 'fillchar' */ EXTERN long p_ut; ///< 'updatetime'
EXTERN char_u *p_shada; /* 'shada' */ EXTERN char_u *p_fcs; ///< 'fillchar'
EXTERN char_u *p_vdir; /* 'viewdir' */ EXTERN char_u *p_shada; ///< 'shada'
EXTERN char_u *p_vop; /* 'viewoptions' */ EXTERN char_u *p_vdir; ///< 'viewdir'
EXTERN unsigned vop_flags; /* uses SSOP_ flags */ EXTERN char_u *p_vop; ///< 'viewoptions'
EXTERN int p_vb; /* 'visualbell' */ EXTERN unsigned vop_flags; ///< uses SSOP_ flags
EXTERN char_u *p_ve; /* 'virtualedit' */ EXTERN int p_vb; ///< 'visualbell'
EXTERN char_u *p_ve; ///< 'virtualedit'
EXTERN unsigned ve_flags; EXTERN unsigned ve_flags;
# ifdef IN_OPTION_C # ifdef IN_OPTION_C
static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL}; static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL};

View File

@@ -546,7 +546,7 @@ static int included_patches[] = {
745, 745,
// 744 NA // 744 NA
// 743, // 743,
// 742, 742,
741, 741,
740, 740,
739, 739,