vim-patch:7.4.370

Problem:    Linebreak test fails when encoding is not utf-8. (Danek
Duvall)
Solution:   Split the test in a single byte one and a utf-8 one.
(Christian Brabandt)
This commit is contained in:
Felipe Morales 2014-08-16 15:46:30 -04:00
parent 244ea63724
commit 91aabcb75b
5 changed files with 66 additions and 33 deletions

View File

@ -1,10 +1,10 @@
Test for linebreak and list option Test for linebreak and list option (non-utf8)
STARTTEST STARTTEST
:so small.vim :so small.vim
:if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif :if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif
:10new|:vsp|:vert resize 20 :10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \" :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt :norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap :set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width) :fu! ScreenChar(width)
@ -32,22 +32,12 @@ STARTTEST
:redraw! :redraw!
:let line=ScreenChar(winwidth(0)) :let line=ScreenChar(winwidth(0))
:call DoRecordScreen() :call DoRecordScreen()
:let g:test ="Test 3: set linebreak + set list + fancy listchars" :let g:test ="Test 3: set linebreak nolist"
:exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6"
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:let g:test ="Test 4: set linebreak nolist"
:set nolist linebreak :set nolist linebreak
:redraw! :redraw!
:let line=ScreenChar(winwidth(0)) :let line=ScreenChar(winwidth(0))
:call DoRecordScreen() :call DoRecordScreen()
:let g:test ="Test 5: set nolinebreak list" :let g:test ="Test 4: set linebreak with tab and 1 line as long as screen: should break!"
:set list nolinebreak
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:let g:test ="Test 6: set linebreak with tab and 1 line as long as screen: should break!"
:set nolist linebreak ts=8 :set nolist linebreak ts=8
:let line="1\t".repeat('a', winwidth(0)-2) :let line="1\t".repeat('a', winwidth(0)-2)
:$put =line :$put =line

View File

@ -1,38 +1,26 @@
abcdef hijklmn pqrstuvwxyz 1060ABCDEFGHIJKLMNOP abcdef hijklmn pqrstuvwxyz_1060ABCDEFGHIJKLMNOP
Test 1: set linebreak Test 1: set linebreak
abcdef abcdef
+hijklmn +hijklmn
+pqrstuvwxyz 1060ABC +pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP +DEFGHIJKLMNOP
Test 2: set linebreak + set list Test 2: set linebreak + set list
^Iabcdef hijklmn^I ^Iabcdef hijklmn^I
+pqrstuvwxyz 1060ABC +pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP +DEFGHIJKLMNOP
Test 3: set linebreak + set list + fancy listchars Test 3: set linebreak nolist
▕———abcdef
+hijklmn▕———
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶
Test 4: set linebreak nolist
abcdef abcdef
+hijklmn +hijklmn
+pqrstuvwxyz 1060ABC +pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP +DEFGHIJKLMNOP
Test 5: set nolinebreak list
▕———abcdef hijklmn▕—
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶
1 aaaaaaaaaaaaaaaaaa 1 aaaaaaaaaaaaaaaaaa
Test 6: set linebreak with tab and 1 line as long as screen: should break! Test 4: set linebreak with tab and 1 line as long as screen: should break!
1 1
+aaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaa
~ ~

View File

@ -0,0 +1,41 @@
Test for linebreak and list option in utf-8 mode
STARTTEST
:so small.vim
:if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif
:so mbyte.vim
:if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
: let c=''
: for j in range(1,4)
: for i in range(1,a:width)
: let c.=nr2char(screenchar(j, i))
: endfor
: let c.="\n"
: endfor
: return c
:endfu
:fu! DoRecordScreen()
: wincmd l
: $put =printf(\"\n%s\", g:test)
: $put =g:line
: wincmd p
:endfu
:let g:test ="Test 1: set linebreak + set list + fancy listchars"
:exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6"
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:let g:test ="Test 2: set nolinebreak list"
:set list nolinebreak
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text

View File

@ -0,0 +1,14 @@
abcdef hijklmn pqrstuvwxyz 1060ABCDEFGHIJKLMNOP
Test 1: set linebreak + set list + fancy listchars
▕———abcdef
+hijklmn▕———
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶
Test 2: set nolinebreak list
▕———abcdef hijklmn▕—
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶

View File

@ -225,7 +225,7 @@ static int included_patches[] = {
//373, //373,
//372, //372,
371, 371,
//370, 370,
//369, //369,
//368, //368,
//367, //367,