updated for version 7.0-146
diff --git a/src/buffer.c b/src/buffer.c
index 55cef35..c9a91ce 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1208,11 +1208,11 @@
{
# ifdef FEAT_WINDOWS
/* 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;
/* jump to first window in any tab page containing buf if one exists
* ("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;
if (win_split(0, 0) == FAIL)
# endif
@@ -1842,13 +1842,13 @@
if (options & GETF_SWITCH)
{
/* 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);
/* 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);
/* 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)
return FAIL;
diff --git a/src/quickfix.c b/src/quickfix.c
index 6c102d9..6268ec6 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -1586,10 +1586,30 @@
}
/*
- * If there is only one window, create a new one above the quickfix
- * window.
+ * If no usable window is found and 'switchbuf' is set to 'usetab'
+ * 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;
diff --git a/src/version.c b/src/version.c
index 3f163f4..f402991 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 146,
+/**/
145,
/**/
144,