comparison src/testdir/test_marks.vim @ 14305:8a4c0ab88201 v8.1.0168

patch 8.1.0168: output of :marks is too short with multi-byte chars commit https://github.com/vim/vim/commit/9d5185bf9dfaef59e47c573a60044a21d5e29c0c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 8 17:57:34 2018 +0200 patch 8.1.0168: output of :marks is too short with multi-byte chars Problem: Output of :marks is too short with multi-byte chars. (Tony Mechelynck) Solution: Get more bytes from the text line.
author Christian Brabandt <cb@256bit.org>
date Sun, 08 Jul 2018 18:00:07 +0200
parents 3b600d16d9cb
children f7e80dbb4f00
comparison
equal deleted inserted replaced
14304:21ffe3de71b7 14305:8a4c0ab88201
78 call setline(1, ['ccc', 'ddd']) 78 call setline(1, ['ccc', 'ddd'])
79 norm! $mcGmD 79 norm! $mcGmD
80 w! 80 w!
81 81
82 b Xone 82 b Xone
83 let a=split(execute('marks'), "\n") 83 let a = split(execute('marks'), "\n")
84 call assert_equal(9, len(a)) 84 call assert_equal(9, len(a))
85 call assert_equal('mark line col file/text', a[0]) 85 call assert_equal('mark line col file/text', a[0])
86 call assert_equal(" ' 2 0 bbb", a[1]) 86 call assert_equal(" ' 2 0 bbb", a[1])
87 call assert_equal(' a 1 0 aaa', a[2]) 87 call assert_equal(' a 1 0 aaa', a[2])
88 call assert_equal(' B 2 2 bbb', a[3]) 88 call assert_equal(' B 2 2 bbb', a[3])
91 call assert_equal(' [ 1 0 aaa', a[6]) 91 call assert_equal(' [ 1 0 aaa', a[6])
92 call assert_equal(' ] 2 0 bbb', a[7]) 92 call assert_equal(' ] 2 0 bbb', a[7])
93 call assert_equal(' . 2 0 bbb', a[8]) 93 call assert_equal(' . 2 0 bbb', a[8])
94 94
95 b Xtwo 95 b Xtwo
96 let a=split(execute('marks'), "\n") 96 let a = split(execute('marks'), "\n")
97 call assert_equal(9, len(a)) 97 call assert_equal(9, len(a))
98 call assert_equal('mark line col file/text', a[0]) 98 call assert_equal('mark line col file/text', a[0])
99 call assert_equal(" ' 1 0 ccc", a[1]) 99 call assert_equal(" ' 1 0 ccc", a[1])
100 call assert_equal(' c 1 2 ccc', a[2]) 100 call assert_equal(' c 1 2 ccc', a[2])
101 call assert_equal(' B 2 2 Xone', a[3]) 101 call assert_equal(' B 2 2 Xone', a[3])
105 call assert_equal(' ] 2 0 ddd', a[7]) 105 call assert_equal(' ] 2 0 ddd', a[7])
106 call assert_equal(' . 2 0 ddd', a[8]) 106 call assert_equal(' . 2 0 ddd', a[8])
107 107
108 b Xone 108 b Xone
109 delmarks aB 109 delmarks aB
110 let a=split(execute('marks aBcD'), "\n") 110 let a = split(execute('marks aBcD'), "\n")
111 call assert_equal(2, len(a)) 111 call assert_equal(2, len(a))
112 call assert_equal('mark line col file/text', a[0]) 112 call assert_equal('mark line col file/text', a[0])
113 call assert_equal(' D 2 0 Xtwo', a[1]) 113 call assert_equal(' D 2 0 Xtwo', a[1])
114 114
115 b Xtwo 115 b Xtwo
118 118
119 call delete('Xone') 119 call delete('Xone')
120 call delete('Xtwo') 120 call delete('Xtwo')
121 %bwipe 121 %bwipe
122 endfunc 122 endfunc
123
124 func Test_marks_cmd_multibyte()
125 if !has('multi_byte')
126 return
127 endif
128 new Xone
129 call setline(1, ['ááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá'])
130 norm! ma
131
132 let a = split(execute('marks a'), "\n")
133 call assert_equal(2, len(a))
134 let expected = ' a 1 0 '
135 while strwidth(expected) < &columns - 1
136 let expected .= 'á'
137 endwhile
138 call assert_equal(expected, a[1])
139
140 bwipe!
141 endfunc