From: zeertzjq Date: Sun, 7 Dec 2025 18:07:37 +0000 (+0100) Subject: patch 9.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab" X-Git-Tag: v9.1.1961^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b3566d89eeb3f84dad7715fff153b84177e5fbb;p=thirdparty%2Fvim.git patch 9.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab" Problem: :0tab behaves like :tab for :stag when 'switchbuf' contains "newtab" (after 9.1.1949). Solution: Don't override cmod_tab if it's already non-zero (zeertzjq). closes: #18859 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- diff --git a/src/tag.c b/src/tag.c index 60b38d156d..78d2902770 100644 --- a/src/tag.c +++ b/src/tag.c @@ -3855,7 +3855,7 @@ jumpto_tag( // split window. cmdmod.cmod_split |= WSP_VERT; - if (swb_flags & SWB_NEWTAB) + if ((swb_flags & SWB_NEWTAB) && cmdmod.cmod_tab == 0) // If 'switchbuf' contains 'newtab', then use a new tabpage cmdmod.cmod_tab = tabpage_index(curtab) + 1; diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim index 2e8a5ac9d3..bbab3c70e8 100644 --- a/src/testdir/test_tagjump.vim +++ b/src/testdir/test_tagjump.vim @@ -162,7 +162,12 @@ func Test_tagjump_switchbuf() call assert_equal(2, tabpagenr('$')) call assert_equal(2, tabpagenr()) call assert_equal(2, line('.')) + 0tab stag third + call assert_equal(3, tabpagenr('$')) + call assert_equal(1, tabpagenr()) + call assert_equal(3, line('.')) + tabclose! tabclose! enew | only set tags& diff --git a/src/version.c b/src/version.c index ba74665b5a..9a74772539 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1961, /**/ 1960, /**/