# HG changeset patch # User vimboss # Date 1173624509 0 # Node ID 9a3b65713280ebf8750989758b4b2d42f757ca9b # Parent 96580558098272cca6f93085d79aa7164c7abf41 updated for version 7.0-216 diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- 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 --- a/src/globals.h +++ b/src/globals.h @@ -1030,6 +1030,7 @@ EXTERN linenr_T write_no_eol_lnum INIT(= #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 --- 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 --- 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 --- a/src/window.c +++ b/src/window.c @@ -3290,11 +3290,12 @@ win_new_tabpage(after) int may_open_tabpage() { - int n = cmdmod.tab; - - if (cmdmod.tab != 0) + int n = (cmdmod.tab == 0) ? postponed_split_tab : cmdmod.tab; + + if (n != 0) { cmdmod.tab = 0; /* reset it to avoid doing it twice */ + postponed_split_tab = 0; return win_new_tabpage(n); } return FAIL;