patch 8.1.0126: various problems with 'vartabstop'
Problem: Various problems with 'vartabstop'.
Solution: Fix memory leak. Fix crash. Add a few more tests. (Christian
Brabandt, closes #3076)
diff --git a/src/testdir/test_vartabs.vim b/src/testdir/test_vartabs.vim
index 581ff8b..c43e178 100644
--- a/src/testdir/test_vartabs.vim
+++ b/src/testdir/test_vartabs.vim
@@ -262,21 +262,37 @@
endfunc
func! Test_vartabs_linebreak()
- if winwidth(0) < 80
+ if winwidth(0) < 40
return
endif
new
- 70vnew
+ 40vnew
%d
- setl linebreak vartabstop=10,15,20,40
+ setl linebreak vartabstop=10,20,30,40
call setline(1, "\tx\tx\tx\tx")
- let lines = ScreenLines([1, 2], winwidth(0))
- let expect = [' x x x ',
- \ ' x ']
+ let expect = [' x ',
+ \ 'x x ',
+ \ 'x ']
+ let lines = ScreenLines([1, 3], winwidth(0))
+ call s:compare_lines(expect, lines)
+ setl list listchars=tab:>-
+ let expect = ['>---------x>------------------ ',
+ \ 'x>------------------x>------------------',
+ \ 'x ']
+ let lines = ScreenLines([1, 3], winwidth(0))
+ call s:compare_lines(expect, lines)
+ setl linebreak vartabstop=40
+ let expect = ['>---------------------------------------',
+ \ 'x>--------------------------------------',
+ \ 'x>--------------------------------------',
+ \ 'x>--------------------------------------',
+ \ 'x ']
+ let lines = ScreenLines([1, 5], winwidth(0))
call s:compare_lines(expect, lines)
" cleanup
bw!
bw!
+ set nolist listchars&vim
endfunc