Mercurial > vim
annotate src/testdir/test_tabline.vim @ 26841:48d6f187e9c0 v8.2.3949
patch 8.2.3949: using freed memory with /%V
Commit: https://github.com/vim/vim/commit/4c13e5e6763c6eb36a343a2b8235ea227202e952
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Dec 30 14:49:43 2021 +0000
patch 8.2.3949: using freed memory with /\%V
Problem: Using freed memory with /\%V.
Solution: Get the line again after getvvcol().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 30 Dec 2021 16:00:05 +0100 |
parents | 08940efa6b4e |
children | fa675efa1e75 |
rev | line source |
---|---|
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
21417
diff
changeset
|
1 " Test for tabline |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
2 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
3 source shared.vim |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
4 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
5 func TablineWithCaughtError() |
8872
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 let s:func_in_tabline_called = 1 |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 try |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 call eval('unknown expression') |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 catch |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 endtry |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 return '' |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
12 endfunc |
8872
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
14 func TablineWithError() |
8872
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 let s:func_in_tabline_called = 1 |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 call eval('unknown expression') |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 return '' |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
18 endfunc |
8872
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
20 func Test_caught_error_in_tabline() |
8874
ccab37bb9ac9
commit https://github.com/vim/vim/commit/73cd8fb3e87e4b29dfc489f58e56dee1839c18e5
Christian Brabandt <cb@256bit.org>
parents:
8872
diff
changeset
|
21 if has('gui') |
ccab37bb9ac9
commit https://github.com/vim/vim/commit/73cd8fb3e87e4b29dfc489f58e56dee1839c18e5
Christian Brabandt <cb@256bit.org>
parents:
8872
diff
changeset
|
22 set guioptions-=e |
ccab37bb9ac9
commit https://github.com/vim/vim/commit/73cd8fb3e87e4b29dfc489f58e56dee1839c18e5
Christian Brabandt <cb@256bit.org>
parents:
8872
diff
changeset
|
23 endif |
8872
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 let showtabline_save = &showtabline |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 set showtabline=2 |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 let s:func_in_tabline_called = 0 |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 let tabline = '%{TablineWithCaughtError()}' |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 let &tabline = tabline |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 redraw! |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 call assert_true(s:func_in_tabline_called) |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 call assert_equal(tabline, &tabline) |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 set tabline= |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 let &showtabline = showtabline_save |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
34 endfunc |
8872
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
35 |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
36 func Test_tabline_will_be_disabled_with_error() |
8874
ccab37bb9ac9
commit https://github.com/vim/vim/commit/73cd8fb3e87e4b29dfc489f58e56dee1839c18e5
Christian Brabandt <cb@256bit.org>
parents:
8872
diff
changeset
|
37 if has('gui') |
ccab37bb9ac9
commit https://github.com/vim/vim/commit/73cd8fb3e87e4b29dfc489f58e56dee1839c18e5
Christian Brabandt <cb@256bit.org>
parents:
8872
diff
changeset
|
38 set guioptions-=e |
ccab37bb9ac9
commit https://github.com/vim/vim/commit/73cd8fb3e87e4b29dfc489f58e56dee1839c18e5
Christian Brabandt <cb@256bit.org>
parents:
8872
diff
changeset
|
39 endif |
8872
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 let showtabline_save = &showtabline |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 set showtabline=2 |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 let s:func_in_tabline_called = 0 |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 let tabline = '%{TablineWithError()}' |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 try |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 let &tabline = tabline |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 redraw! |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 catch |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 endtry |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 call assert_true(s:func_in_tabline_called) |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 call assert_equal('', &tabline) |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 set tabline= |
4d4de770f970
commit https://github.com/vim/vim/commit/f73d3bc253fa79ad220f52f04b93e782e95a9d43
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 let &showtabline = showtabline_save |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
53 endfunc |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
54 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
55 func Test_redrawtabline() |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
56 if has('gui') |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
57 set guioptions-=e |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
58 endif |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
59 let showtabline_save = &showtabline |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
60 set showtabline=2 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
61 set tabline=%{bufnr('$')} |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
62 edit Xtabline1 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
63 edit Xtabline2 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
64 redraw |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
65 call assert_match(bufnr('$') . '', Screenline(1)) |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
66 au BufAdd * redrawtabline |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
67 badd Xtabline3 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
68 call assert_match(bufnr('$') . '', Screenline(1)) |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
69 |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
70 set tabline= |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
71 let &showtabline = showtabline_save |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
72 au! Bufadd |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
8874
diff
changeset
|
73 endfunc |
21004
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
74 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
75 " Test for the "%T" and "%X" flags in the 'tabline' option |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
76 func MyTabLine() |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
77 let s = '' |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
78 for i in range(tabpagenr('$')) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
79 " set the tab page number (for mouse clicks) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
80 let s .= '%' . (i + 1) . 'T' |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
81 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
82 " the label is made by MyTabLabel() |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
83 let s .= ' %{MyTabLabel(' . (i + 1) . ')} ' |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
84 endfor |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
85 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
86 " after the last tab fill with TabLineFill and reset tab page nr |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
87 let s .= '%T' |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
88 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
89 " right-align the label to close the current tab page |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
90 if tabpagenr('$') > 1 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
91 let s .= '%=%Xclose' |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
92 endif |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
93 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
94 return s |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
95 endfunc |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
96 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
97 func MyTabLabel(n) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
98 let buflist = tabpagebuflist(a:n) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
99 let winnr = tabpagewinnr(a:n) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
100 return bufname(buflist[winnr - 1]) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
101 endfunc |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
102 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
103 func Test_tabline_flags() |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
104 if has('gui') |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
105 set guioptions-=e |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
106 endif |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
107 set tabline=%!MyTabLine() |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
108 edit Xtabline1 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
109 tabnew Xtabline2 |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
110 redrawtabline |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
111 call assert_match('^ Xtabline1 Xtabline2\s\+close$', Screenline(1)) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
112 set tabline= |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
113 %bw! |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
114 endfunc |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
115 |
21417
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
116 function EmptyTabname() |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
117 return "" |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
118 endfunction |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
119 |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
120 function MakeTabLine() abort |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
121 let titles = map(range(1, tabpagenr('$')), '"%( %" . v:val . "T%{EmptyTabname()}%T %)"') |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
122 let sep = 'あ' |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
123 let tabpages = join(titles, sep) |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
124 return tabpages .. sep .. '%=%999X X' |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
125 endfunction |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
126 |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
127 func Test_tabline_empty_group() |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
128 " this was reading invalid memory |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
129 set tabline=%!MakeTabLine() |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
130 tabnew |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
131 redraw! |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
132 |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
133 tabclose |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
134 set tabline= |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
135 endfunc |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
136 |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
137 |
53ff4dfe6e11
patch 8.2.1259: empty group in 'tabline' may cause using an invalid pointer
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
138 |
21004
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
139 " vim: shiftwidth=2 sts=2 expandtab |