diff src/testdir/test_breakindent.vim @ 14175:2ad722003b36 v8.1.0105

patch 8.1.0105: all tab stops are the same commit https://github.com/vim/vim/commit/04958cbaf25eea27eceedaa987adfb354ad5f7fd Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 23 19:23:02 2018 +0200 patch 8.1.0105: all tab stops are the same Problem: All tab stops are the same. Solution: Add the variable tabstop feature. (Christian Brabandt, closes #2711)
author Christian Brabandt <cb@256bit.org>
date Sat, 23 Jun 2018 19:30:07 +0200
parents c004e17fa36b
children ba7727889385
line wrap: on
line diff
--- a/src/testdir/test_breakindent.vim
+++ b/src/testdir/test_breakindent.vim
@@ -12,135 +12,267 @@ source view_util.vim
 
 let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
 
-function s:screen_lines(lnum, width) abort
+func s:screen_lines(lnum, width) abort
   return ScreenLines([a:lnum, a:lnum + 2], a:width)
-endfunction
+endfunc
 
-function! s:compare_lines(expect, actual)
+func s:compare_lines(expect, actual)
   call assert_equal(join(a:expect, "\n"), join(a:actual, "\n"))
-endfunction
+endfunc
 
-function s:test_windows(...)
+func s:test_windows(...)
   call NewWindow(10, 20)
   setl ts=4 sw=4 sts=4 breakindent
   put =s:input
   exe get(a:000, 0, '')
-endfunction
+endfunc
 
-function s:close_windows(...)
+func s:close_windows(...)
   call CloseWindow()
   exe get(a:000, 0, '')
-endfunction
+endfunc
 
-function Test_breakindent01()
+func Test_breakindent01()
   " simple breakindent test
   call s:test_windows('setl briopt=min:0')
-  let lines=s:screen_lines(line('.'),8)
-  let expect=[
-\ "    abcd",
-\ "    qrst",
-\ "    GHIJ",
-\ ]
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "    qrst",
+	\ "    GHIJ",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows()
-endfunction
+endfunc
 
-function Test_breakindent02()
+func Test_breakindent01_vartabs()
+  " like 01 but with vartabs feature
+  if !has("vartabs")
+    return
+  endif
+  call s:test_windows('setl briopt=min:0 vts=4')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "    qrst",
+	\ "    GHIJ",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set vts&')
+endfunc
+
+func Test_breakindent02()
   " simple breakindent test with showbreak set
   call s:test_windows('setl briopt=min:0 sbr=>>')
-  let lines=s:screen_lines(line('.'),8)
-  let expect=[
-\ "    abcd",
-\ "    >>qr",
-\ "    >>EF",
-\ ]
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "    >>qr",
+	\ "    >>EF",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows('set sbr=')
-endfunction
+endfunc
 
-function Test_breakindent03()
+func Test_breakindent02_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " simple breakindent test with showbreak set
+  call s:test_windows('setl briopt=min:0 sbr=>> vts=4')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "    >>qr",
+	\ "    >>EF",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set sbr= vts&')
+endfunc
+
+func Test_breakindent03()
   " simple breakindent test with showbreak set and briopt including sbr
   call s:test_windows('setl briopt=sbr,min:0 sbr=++')
-  let lines=s:screen_lines(line('.'),8)
-  let expect=[
-\ "    abcd",
-\ "++  qrst",
-\ "++  GHIJ",
-\ ]
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "++  qrst",
+	\ "++  GHIJ",
+	\ ]
+  call s:compare_lines(expect, lines)
+  " clean up
+  call s:close_windows('set sbr=')
+endfunc
+
+func Test_breakindent03_vartabs()
+  " simple breakindent test with showbreak set and briopt including sbr
+  if !has("vartabs")
+    return
+  endif
+  call s:test_windows('setl briopt=sbr,min:0 sbr=++ vts=4')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "++  qrst",
+	\ "++  GHIJ",
+	\ ]
+  call s:compare_lines(expect, lines)
+  " clean up
+  call s:close_windows('set sbr= vts&')
+endfunc
+
+func Test_breakindent04()
+  " breakindent set with min width 18
+  call s:test_windows('setl sbr= briopt=min:18')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "  qrstuv",
+	\ "  IJKLMN",
+	\ ]
   call s:compare_lines(expect, lines)
   " clean up
   call s:close_windows('set sbr=')
-endfunction
+endfunc
 
-function Test_breakindent04()
+func Test_breakindent04_vartabs()
   " breakindent set with min width 18
-  call s:test_windows('setl sbr= briopt=min:18')
-  let lines=s:screen_lines(line('.'),8)
-  let expect=[
-\ "    abcd",
-\ "  qrstuv",
-\ "  IJKLMN",
-\ ]
+  if !has("vartabs")
+    return
+  endif
+  call s:test_windows('setl sbr= briopt=min:18 vts=4')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "  qrstuv",
+	\ "  IJKLMN",
+	\ ]
+  call s:compare_lines(expect, lines)
+  " clean up
+  call s:close_windows('set sbr= vts&')
+endfunc
+
+func Test_breakindent05()
+  " breakindent set and shift by 2
+  call s:test_windows('setl briopt=shift:2,min:0')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "      qr",
+	\ "      EF",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+func Test_breakindent05_vartabs()
+  " breakindent set and shift by 2
+  if !has("vartabs")
+    return
+  endif
+  call s:test_windows('setl briopt=shift:2,min:0 vts=4')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "      qr",
+	\ "      EF",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set vts&')
+endfunc
+
+func Test_breakindent06()
+  " breakindent set and shift by -1
+  call s:test_windows('setl briopt=shift:-1,min:0')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "   qrstu",
+	\ "   HIJKL",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+func Test_breakindent06_vartabs()
+  " breakindent set and shift by -1
+  if !has("vartabs")
+    return
+  endif
+  call s:test_windows('setl briopt=shift:-1,min:0 vts=4')
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "    abcd",
+	\ "   qrstu",
+	\ "   HIJKL",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set vts&')
+endfunc
+
+func Test_breakindent07()
+  " breakindent set and shift by 1, Number  set sbr=? and briopt:sbr
+  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 cpo+=n')
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2     ab",
+	\ "?        m",
+	\ "?        x",
+	\ ]
+  call s:compare_lines(expect, lines)
+  " clean up
+  call s:close_windows('set sbr= cpo-=n')
+endfunc
+
+func Test_breakindent07_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " breakindent set and shift by 1, Number  set sbr=? and briopt:sbr
+  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 cpo+=n vts=4')
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2     ab",
+	\ "?        m",
+	\ "?        x",
+	\ ]
+  call s:compare_lines(expect, lines)
+  " clean up
+  call s:close_windows('set sbr= cpo-=n vts&')
+endfunc
+
+func Test_breakindent07a()
+  " breakindent set and shift by 1, Number  set sbr=? and briopt:sbr
+  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4')
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2     ab",
+	\ "    ?    m",
+	\ "    ?    x",
+	\ ]
   call s:compare_lines(expect, lines)
   " clean up
   call s:close_windows('set sbr=')
-endfunction
-
-function Test_breakindent05()
-  " breakindent set and shift by 2
-  call s:test_windows('setl briopt=shift:2,min:0')
-  let lines=s:screen_lines(line('.'),8)
-  let expect=[
-\ "    abcd",
-\ "      qr",
-\ "      EF",
-\ ]
-  call s:compare_lines(expect, lines)
-  call s:close_windows()
-endfunction
+endfunc
 
-function Test_breakindent06()
-  " breakindent set and shift by -1
-  call s:test_windows('setl briopt=shift:-1,min:0')
-  let lines=s:screen_lines(line('.'),8)
-  let expect=[
-\ "    abcd",
-\ "   qrstu",
-\ "   HIJKL",
-\ ]
-  call s:compare_lines(expect, lines)
-  call s:close_windows()
-endfunction
-
-function Test_breakindent07()
+func Test_breakindent07a_vartabs()
+  if !has("vartabs")
+    return
+  endif
   " breakindent set and shift by 1, Number  set sbr=? and briopt:sbr
-  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 cpo+=n')
-  let lines=s:screen_lines(line('.'),10)
-  let expect=[
-\ "  2     ab",
-\ "?        m",
-\ "?        x",
-\ ]
+  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 vts=4')
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2     ab",
+	\ "    ?    m",
+	\ "    ?    x",
+	\ ]
   call s:compare_lines(expect, lines)
   " clean up
-  call s:close_windows('set sbr= cpo-=n')
-endfunction
+  call s:close_windows('set sbr= vts&')
+endfunc
 
-function Test_breakindent07a()
-  " breakindent set and shift by 1, Number  set sbr=? and briopt:sbr
-  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4')
-  let lines=s:screen_lines(line('.'),10)
-  let expect=[
-\ "  2     ab",
-\ "    ?    m",
-\ "    ?    x",
-\ ]
-  call s:compare_lines(expect, lines)
-  " clean up
-  call s:close_windows('set sbr=')
-endfunction
-
-function Test_breakindent08()
+func Test_breakindent08()
   " breakindent set and shift by 1, Number and list set sbr=# and briopt:sbr
   call s:test_windows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list cpo+=n ts=4')
   " make sure, cache is invalidated!
@@ -148,43 +280,96 @@ function Test_breakindent08()
   redraw!
   set ts=4
   redraw!
-  let lines=s:screen_lines(line('.'),10)
-  let expect=[
-\ "  2 ^Iabcd",
-\ "#      opq",
-\ "#      BCD",
-\ ]
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2 ^Iabcd",
+	\ "#      opq",
+	\ "#      BCD",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows('set sbr= cpo-=n')
-endfunction
+endfunc
 
-function Test_breakindent08a()
+func Test_breakindent08_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " breakindent set and shift by 1, Number and list set sbr=# and briopt:sbr
+  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list cpo+=n ts=4 vts=4')
+  " make sure, cache is invalidated!
+  set ts=8
+  redraw!
+  set ts=4
+  redraw!
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2 ^Iabcd",
+	\ "#      opq",
+	\ "#      BCD",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set sbr= cpo-=n vts&')
+endfunc
+
+func Test_breakindent08a()
   " breakindent set and shift by 1, Number and list set sbr=# and briopt:sbr
   call s:test_windows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list')
-  let lines=s:screen_lines(line('.'),10)
-  let expect=[
-\ "  2 ^Iabcd",
-\ "    #  opq",
-\ "    #  BCD",
-\ ]
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2 ^Iabcd",
+	\ "    #  opq",
+	\ "    #  BCD",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows('set sbr=')
-endfunction
+endfunc
 
-function Test_breakindent09()
+func Test_breakindent08a_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " breakindent set and shift by 1, Number and list set sbr=# and briopt:sbr
+  call s:test_windows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list vts=4')
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2 ^Iabcd",
+	\ "    #  opq",
+	\ "    #  BCD",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set sbr= vts&')
+endfunc
+
+func Test_breakindent09()
   " breakindent set and shift by 1, Number and list set sbr=#
   call s:test_windows('setl briopt=shift:1,min:0 nu nuw=4 sbr=# list')
-  let lines=s:screen_lines(line('.'),10)
-  let expect=[
-\ "  2 ^Iabcd",
-\ "       #op",
-\ "       #AB",
-\ ]
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2 ^Iabcd",
+	\ "       #op",
+	\ "       #AB",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows('set sbr=')
-endfunction
+endfunc
 
-function Test_breakindent10()
+func Test_breakindent09_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " breakindent set and shift by 1, Number and list set sbr=#
+  call s:test_windows('setl briopt=shift:1,min:0 nu nuw=4 sbr=# list vts=4')
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2 ^Iabcd",
+	\ "       #op",
+	\ "       #AB",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set sbr= vts&')
+endfunc
+
+func Test_breakindent10()
   " breakindent set, Number set sbr=~
   call s:test_windows('setl cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0')
   " make sure, cache is invalidated!
@@ -192,41 +377,91 @@ function Test_breakindent10()
   redraw!
   set ts=4
   redraw!
-  let lines=s:screen_lines(line('.'),10)
-  let expect=[
-\ "  2     ab",
-\ "~       mn",
-\ "~       yz",
-\ ]
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2     ab",
+	\ "~       mn",
+	\ "~       yz",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows('set sbr= cpo-=n')
-endfunction
+endfunc
 
-function Test_breakindent11()
+func Test_breakindent10_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " breakindent set, Number set sbr=~
+  call s:test_windows('setl cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0 vts=4')
+  " make sure, cache is invalidated!
+  set ts=8
+  redraw!
+  set ts=4
+  redraw!
+  let lines = s:screen_lines(line('.'),10)
+  let expect = [
+	\ "  2     ab",
+	\ "~       mn",
+	\ "~       yz",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set sbr= cpo-=n vts&')
+endfunc
+
+func Test_breakindent11()
   " test strdisplaywidth()
   call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4')
-  let text=getline(2)
+  let text = getline(2)
   let width = strlen(text[1:])+indent(2)+strlen(&sbr)*3 " text wraps 3 times
   call assert_equal(width, strdisplaywidth(text))
   call s:close_windows('set sbr=')
-endfunction
+endfunc
 
-function Test_breakindent12()
+func Test_breakindent11_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " test strdisplaywidth()
+  call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4 vts=4')
+  let text = getline(2)
+  let width = strlen(text[1:])+indent(2)+strlen(&sbr)*3 " text wraps 3 times
+  call assert_equal(width, strdisplaywidth(text))
+  call s:close_windows('set sbr= vts&')
+endfunc
+
+func Test_breakindent12()
   " test breakindent with long indent
-  let s:input="\t\t\t\t\t{"
+  let s:input = "\t\t\t\t\t{"
   call s:test_windows('setl breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4 list listchars=tab:>-')
-  let lines=s:screen_lines(2,16)
-  let expect=[
-\ " 2 >--->--->--->",
-\ "          ---{  ",
-\ "~               ",
-\ ]
+  let lines = s:screen_lines(2,16)
+  let expect = [
+	\ " 2 >--->--->--->",
+	\ "          ---{  ",
+	\ "~               ",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows('set nuw=4 listchars=')
-endfunction
+endfunc
 
-function Test_breakindent13()
-  let s:input=""
+func Test_breakindent12_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " test breakindent with long indent
+  let s:input = "\t\t\t\t\t{"
+  call s:test_windows('setl breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4 list listchars=tab:>- vts=4')
+  let lines = s:screen_lines(2,16)
+  let expect = [
+	\ " 2 >--->--->--->",
+	\ "          ---{  ",
+	\ "~               ",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set nuw=4 listchars= vts&')
+endfunc
+
+func Test_breakindent13()
+  let s:input = ""
   call s:test_windows('setl breakindent briopt=min:10 ts=8')
   vert resize 20
   call setline(1, ["    a\tb\tc\td\te", "    z   y       x       w       v"])
@@ -237,62 +472,146 @@ function Test_breakindent13()
   call assert_equal('d', @a)
   call assert_equal('w', @b)
   call s:close_windows()
-endfunction
+endfunc
 
-function Test_breakindent14()
-  let s:input=""
+func Test_breakindent13_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  let s:input = ""
+  call s:test_windows('setl breakindent briopt=min:10 ts=8 vts=8')
+  vert resize 20
+  call setline(1, ["    a\tb\tc\td\te", "    z   y       x       w       v"])
+  1
+  norm! fbgj"ayl
+  2
+  norm! fygj"byl
+  call assert_equal('d', @a)
+  call assert_equal('w', @b)
+  call s:close_windows('set vts&')
+endfunc
+
+func Test_breakindent14()
+  let s:input = ""
   call s:test_windows('setl breakindent briopt= ts=8')
   vert resize 30
   norm! 3a1234567890
   norm! a    abcde
   exec "norm! 0\<C-V>tex"
-  let lines=s:screen_lines(line('.'),8)
-  let expect=[
-\ "e       ",
-\ "~       ",
-\ "~       ",
-\ ]
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "e       ",
+	\ "~       ",
+	\ "~       ",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows()
-endfunction
+endfunc
 
-function Test_breakindent15()
-  let s:input=""
+func Test_breakindent14_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  let s:input = ""
+  call s:test_windows('setl breakindent briopt= ts=8 vts=8')
+  vert resize 30
+  norm! 3a1234567890
+  norm! a    abcde
+  exec "norm! 0\<C-V>tex"
+  let lines = s:screen_lines(line('.'),8)
+  let expect = [
+	\ "e       ",
+	\ "~       ",
+	\ "~       ",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set vts&')
+endfunc
+
+func Test_breakindent15()
+  let s:input = ""
   call s:test_windows('setl breakindent briopt= ts=8 sw=8')
   vert resize 30
   norm! 4a1234567890
   exe "normal! >>\<C-V>3f0x"
-  let lines=s:screen_lines(line('.'),20)
-  let expect=[
-\ "        1234567890  ",
-\ "~                   ",
-\ "~                   ",
-\ ]
+  let lines = s:screen_lines(line('.'),20)
+  let expect = [
+	\ "        1234567890  ",
+	\ "~                   ",
+	\ "~                   ",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows()
-endfunction
+endfunc
 
-function Test_breakindent16()
+func Test_breakindent15_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  let s:input = ""
+  call s:test_windows('setl breakindent briopt= ts=8 sw=8 vts=8')
+  vert resize 30
+  norm! 4a1234567890
+  exe "normal! >>\<C-V>3f0x"
+  let lines = s:screen_lines(line('.'),20)
+  let expect = [
+	\ "        1234567890  ",
+	\ "~                   ",
+	\ "~                   ",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set vts&')
+endfunc
+
+func Test_breakindent16()
   " Check that overlong lines are indented correctly.
-  let s:input=""
+  let s:input = ""
   call s:test_windows('setl breakindent briopt=min:0 ts=4')
   call setline(1, "\t".repeat("1234567890", 10))
   resize 6
   norm! 1gg$
   redraw!
-  let lines=s:screen_lines(1,10)
-  let expect=[
-\ "    789012",
-\ "    345678",
-\ "    901234",
-\ ]
+  let lines = s:screen_lines(1,10)
+  let expect = [
+	\ "    789012",
+	\ "    345678",
+	\ "    901234",
+	\ ]
   call s:compare_lines(expect, lines)
-  let lines=s:screen_lines(4,10)
-  let expect=[
-\ "    567890",
-\ "    123456",
-\ "    7890  ",
-\ ]
+  let lines = s:screen_lines(4,10)
+  let expect = [
+	\ "    567890",
+	\ "    123456",
+	\ "    7890  ",
+	\ ]
   call s:compare_lines(expect, lines)
   call s:close_windows()
-endfunction
+endfunc
+
+func Test_breakindent16_vartabs()
+  if !has("vartabs")
+    return
+  endif
+  " Check that overlong lines are indented correctly.
+  let s:input = ""
+  call s:test_windows('setl breakindent briopt=min:0 ts=4 vts=4')
+  call setline(1, "\t".repeat("1234567890", 10))
+  resize 6
+  norm! 1gg$
+  redraw!
+  let lines = s:screen_lines(1,10)
+  let expect = [
+	\ "    789012",
+	\ "    345678",
+	\ "    901234",
+	\ ]
+  call s:compare_lines(expect, lines)
+  let lines = s:screen_lines(4,10)
+  let expect = [
+	\ "    567890",
+	\ "    123456",
+	\ "    7890  ",
+	\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows('set vts&')
+endfunc