updated for version 7.3.926
Problem: Autocommands are triggered by setwinvar() et al. Missing BufEnter
on :tabclose. Duplicate WinEnter on :tabclose. Wrong order of
events for :tablose and :tabnew.
Solution: Fix these autocommand events. (Zyx)
diff --git a/src/buffer.c b/src/buffer.c
index 54f6544..ae744d2 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4551,7 +4551,7 @@
* When the ":tab" modifier was used do this for all tab pages.
*/
if (had_tab > 0)
- goto_tabpage_tp(first_tabpage, TRUE);
+ goto_tabpage_tp(first_tabpage, TRUE, TRUE);
for (;;)
{
tpnext = curtab->tp_next;
@@ -4663,7 +4663,7 @@
if (!valid_tabpage(tpnext))
tpnext = first_tabpage; /* start all over...*/
# endif
- goto_tabpage_tp(tpnext, TRUE);
+ goto_tabpage_tp(tpnext, TRUE, TRUE);
}
/*
@@ -4767,13 +4767,13 @@
if (last_curtab != new_curtab)
{
if (valid_tabpage(last_curtab))
- goto_tabpage_tp(last_curtab, TRUE);
+ goto_tabpage_tp(last_curtab, TRUE, TRUE);
if (win_valid(last_curwin))
win_enter(last_curwin, FALSE);
}
/* to window with first arg */
if (valid_tabpage(new_curtab))
- goto_tabpage_tp(new_curtab, TRUE);
+ goto_tabpage_tp(new_curtab, TRUE, TRUE);
if (win_valid(new_curwin))
win_enter(new_curwin, FALSE);
@@ -4825,7 +4825,7 @@
*/
#ifdef FEAT_WINDOWS
if (had_tab > 0)
- goto_tabpage_tp(first_tabpage, TRUE);
+ goto_tabpage_tp(first_tabpage, TRUE, TRUE);
for (;;)
{
#endif
@@ -4865,7 +4865,7 @@
/* Without the ":tab" modifier only do the current tab page. */
if (had_tab == 0 || tpnext == NULL)
break;
- goto_tabpage_tp(tpnext, TRUE);
+ goto_tabpage_tp(tpnext, TRUE, TRUE);
}
#endif