1
0
forked from aniani/vim

updated for version 7.0-146

This commit is contained in:
Bram Moolenaar 2006-10-20 18:13:14 +00:00
parent 2d8b2d8df9
commit 38c0a6e6fa
3 changed files with 30 additions and 8 deletions

View File

@ -1208,11 +1208,11 @@ do_buffer(action, start, dir, count, forceit)
{ {
# ifdef FEAT_WINDOWS # ifdef FEAT_WINDOWS
/* jump to first window containing buf if one exists ("useopen") */ /* jump to first window containing buf if one exists ("useopen") */
if (vim_strchr(p_swb, 'o') && buf_jump_open_win(buf)) if (vim_strchr(p_swb, 'o') != NULL && buf_jump_open_win(buf))
return OK; return OK;
/* jump to first window in any tab page containing buf if one exists /* jump to first window in any tab page containing buf if one exists
* ("usetab") */ * ("usetab") */
if (vim_strchr(p_swb, 'a') && buf_jump_open_tab(buf)) if (vim_strchr(p_swb, 'a') != NULL && buf_jump_open_tab(buf))
return OK; return OK;
if (win_split(0, 0) == FAIL) if (win_split(0, 0) == FAIL)
# endif # endif
@ -1842,13 +1842,13 @@ buflist_getfile(n, lnum, options, forceit)
if (options & GETF_SWITCH) if (options & GETF_SWITCH)
{ {
/* use existing open window for buffer if wanted */ /* use existing open window for buffer if wanted */
if (vim_strchr(p_swb, 'o')) /* useopen */ if (vim_strchr(p_swb, 'o') != NULL) /* useopen */
wp = buf_jump_open_win(buf); wp = buf_jump_open_win(buf);
/* use existing open window in any tab page for buffer if wanted */ /* use existing open window in any tab page for buffer if wanted */
if (vim_strchr(p_swb, 'a')) /* usetab */ if (vim_strchr(p_swb, 'a') != NULL) /* usetab */
wp = buf_jump_open_tab(buf); wp = buf_jump_open_tab(buf);
/* split window if wanted ("split") */ /* split window if wanted ("split") */
if (wp == NULL && vim_strchr(p_swb, 't') && !bufempty()) if (wp == NULL && vim_strchr(p_swb, 'l') != NULL && !bufempty())
{ {
if (win_split(0, 0) == FAIL) if (win_split(0, 0) == FAIL)
return FAIL; return FAIL;

View File

@ -1586,10 +1586,30 @@ qf_jump(qi, dir, errornr, forceit)
} }
/* /*
* If there is only one window, create a new one above the quickfix * If no usable window is found and 'switchbuf' is set to 'usetab'
* window. * then search in other tabs.
*/ */
if (firstwin == lastwin || !usable_win) if (!usable_win && vim_strchr(p_swb, 'a') != NULL)
{
tabpage_T *tp;
win_T *wp;
FOR_ALL_TAB_WINDOWS(tp, wp)
{
if (wp->w_buffer->b_fnum == qf_ptr->qf_fnum)
{
goto_tabpage_win(tp, wp);
usable_win = 1;
break;
}
}
}
/*
* If there is only one window and is the quickfix window, create a new
* one above the quickfix window.
*/
if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win)
{ {
ll_ref = curwin->w_llist_ref; ll_ref = curwin->w_llist_ref;

View File

@ -666,6 +666,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
146,
/**/ /**/
145, 145,
/**/ /**/