diff src/testdir/test_tagjump.vim @ 16164:213b88f89597 v8.1.1087

patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag commit https://github.com/vim/vim/commit/7559dcef6cfd0ba13271088fff51b8979fee950b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 30 19:12:02 2019 +0100 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag Problem: tag stack is incorrect after CTRL-T and then :tag Solution: Handle DT_TAG differently. (test by Andy Massimino, closes https://github.com/vim/vim/issues/3944, closes #4177)
author Bram Moolenaar <Bram@vim.org>
date Sat, 30 Mar 2019 19:15:04 +0100
parents c338c91086b9
children a8689ea2e869
line wrap: on
line diff
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -366,4 +366,77 @@ func Test_getsettagstack()
   set tags&
 endfunc
 
+func Test_tag_with_count()
+  call writefile([
+	\ 'test	Xtest.h	/^void test();$/;"	p	typeref:typename:void	signature:()',
+	\ ], 'Xtags')
+  call writefile([
+	\ 'main	Xtest.c	/^int main()$/;"	f	typeref:typename:int	signature:()',
+	\ 'test	Xtest.c	/^void test()$/;"	f	typeref:typename:void	signature:()',
+	\ ], 'Ytags')
+  cal writefile([
+	\ 'int main()',
+	\ 'void test()',
+	\ ], 'Xtest.c')
+  cal writefile([
+	\ 'void test();',
+	\ ], 'Xtest.h')
+  set tags=Xtags,Ytags
+
+  new Xtest.c
+  let tl = taglist('test', 'Xtest.c')
+  call assert_equal(tl[0].filename, 'Xtest.c')
+  call assert_equal(tl[1].filename, 'Xtest.h')
+
+  tag test
+  call assert_equal(bufname('%'), 'Xtest.c')
+  1tag test
+  call assert_equal(bufname('%'), 'Xtest.c')
+  2tag test
+  call assert_equal(bufname('%'), 'Xtest.h')
+
+  set tags&
+  call delete('Xtags')
+  call delete('Ytags')
+  bwipe Xtest.h
+  bwipe Xtest.c
+  call delete('Xtest.h')
+  call delete('Xtest.c')
+endfunc
+
+func Test_tagnr_recall()
+  call writefile([
+	\ 'test	Xtest.h	/^void test();$/;"	p',
+	\ 'main	Xtest.c	/^int main()$/;"	f',
+	\ 'test	Xtest.c	/^void test()$/;"	f',
+	\ ], 'Xtags')
+  cal writefile([
+	\ 'int main()',
+	\ 'void test()',
+	\ ], 'Xtest.c')
+  cal writefile([
+	\ 'void test();',
+	\ ], 'Xtest.h')
+  set tags=Xtags
+
+  new Xtest.c
+  let tl = taglist('test', 'Xtest.c')
+  call assert_equal(tl[0].filename, 'Xtest.c')
+  call assert_equal(tl[1].filename, 'Xtest.h')
+
+  2tag test
+  call assert_equal(bufname('%'), 'Xtest.h')
+  pop
+  call assert_equal(bufname('%'), 'Xtest.c')
+  tag
+  call assert_equal(bufname('%'), 'Xtest.h')
+
+  set tag&
+  call delete('Xtags')
+  bwipe Xtest.h
+  bwipe Xtest.c
+  call delete('Xtest.h')
+  call delete('Xtest.c')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab