summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ex_docmd.c4
-rw-r--r--src/globals.h1
-rw-r--r--src/if_cscope.c2
-rw-r--r--src/version.c2
-rw-r--r--src/window.c5
5 files changed, 12 insertions, 2 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 1152a18a7..71a7fa180 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7980,8 +7980,10 @@ ex_wincmd(eap)
{
/* Pass flags on for ":vertical wincmd ]". */
postponed_split_flags = cmdmod.split;
+ postponed_split_tab = cmdmod.tab;
do_window(*eap->arg, eap->addr_count > 0 ? eap->line2 : 0L, xchar);
postponed_split_flags = 0;
+ postponed_split_tab = 0;
}
}
#endif
@@ -9189,8 +9191,10 @@ ex_stag(eap)
{
postponed_split = -1;
postponed_split_flags = cmdmod.split;
+ postponed_split_tab = cmdmod.tab;
ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
postponed_split_flags = 0;
+ postponed_split_tab = 0;
}
#endif
diff --git a/src/globals.h b/src/globals.h
index 54785a4f1..0493e8b8a 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1030,6 +1030,7 @@ EXTERN linenr_T write_no_eol_lnum INIT(= 0); /* non-zero lnum when last line
#ifdef FEAT_WINDOWS
EXTERN int postponed_split INIT(= 0); /* for CTRL-W CTRL-] command */
EXTERN int postponed_split_flags INIT(= 0); /* args for win_split() */
+EXTERN int postponed_split_tab INIT(= 0); /* cmdmod.tab */
# ifdef FEAT_QUICKFIX
EXTERN int g_do_tagpreview INIT(= 0); /* for tag preview commands:
height of preview window */
diff --git a/src/if_cscope.c b/src/if_cscope.c
index fd831393a..3e430168f 100644
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -128,6 +128,7 @@ do_cscope_general(eap, make_split)
}
postponed_split = -1;
postponed_split_flags = cmdmod.split;
+ postponed_split_tab = cmdmod.tab;
}
#endif
@@ -135,6 +136,7 @@ do_cscope_general(eap, make_split)
#ifdef FEAT_WINDOWS
postponed_split_flags = 0;
+ postponed_split_tab = 0;
#endif
}
diff --git a/src/version.c b/src/version.c
index d577c50b3..1517d0a1d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 216,
+/**/
215,
/**/
214,
diff --git a/src/window.c b/src/window.c
index aa4d26a0b..40aa2f062 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3290,11 +3290,12 @@ win_new_tabpage(after)
int
may_open_tabpage()
{
- int n = cmdmod.tab;
+ int n = (cmdmod.tab == 0) ? postponed_split_tab : cmdmod.tab;
- if (cmdmod.tab != 0)
+ if (n != 0)
{
cmdmod.tab = 0; /* reset it to avoid doing it twice */
+ postponed_split_tab = 0;
return win_new_tabpage(n);
}
return FAIL;