Mercurial > vim
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 |