diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 1152a18a73f3b9bd00360194fce5c7abd436bda2..71a7fa1801a4796d48e30df3ef623cd12d5a4f20 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 54785a4f15686450ac67bad76e2c11fd4072bf64..0493e8b8aa7e84699b2428dfe4784bfb65491f75 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 fd831393a259d45ecbacb604c382c834a955b74a..3e430168fe1de3172a927a7a864fe48a3e6bf5df 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 d577c50b310ed856f69f95440d98ff54a1d684dc..1517d0a1dc99c69bfdebbf55bb3aadebf0a6927d 100644 --- a/src/version.c +++ b/src/version.c @@ -666,6 +666,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 216, /**/ 215, /**/ diff --git a/src/window.c b/src/window.c index aa4d26a0bb7cd988f357200ae9d23718b8da7259..40aa2f062bf64bf4eb30a1459ba4cdda45af5c50 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;