mirror of
https://github.com/vim/vim.git
synced 2025-09-01 21:03:39 -04:00
patch 8.0.0222: blockwise put on multi-byte character misplaced
Problem: When a multi-byte character ends in a zero byte, putting blockwise text puts it before the character instead of after it. Solution: Use int instead of char for the character under the cursor. (Luchr, closes #1403) Add a test.
This commit is contained in:
parent
6a8ede99dd
commit
c81299684b
@ -2150,6 +2150,7 @@ test_arglist \
|
|||||||
test_perl \
|
test_perl \
|
||||||
test_popup \
|
test_popup \
|
||||||
test_profile \
|
test_profile \
|
||||||
|
test_put \
|
||||||
test_quickfix \
|
test_quickfix \
|
||||||
test_regexp_latin \
|
test_regexp_latin \
|
||||||
test_regexp_utf8 \
|
test_regexp_utf8 \
|
||||||
|
@ -3550,7 +3550,7 @@ do_put(
|
|||||||
*/
|
*/
|
||||||
if (y_type == MBLOCK)
|
if (y_type == MBLOCK)
|
||||||
{
|
{
|
||||||
char c = gchar_cursor();
|
int c = gchar_cursor();
|
||||||
colnr_T endcol2 = 0;
|
colnr_T endcol2 = 0;
|
||||||
|
|
||||||
if (dir == FORWARD && c != NUL)
|
if (dir == FORWARD && c != NUL)
|
||||||
|
@ -31,6 +31,7 @@ source test_mapping.vim
|
|||||||
source test_messages.vim
|
source test_messages.vim
|
||||||
source test_partial.vim
|
source test_partial.vim
|
||||||
source test_popup.vim
|
source test_popup.vim
|
||||||
|
source test_put.vim
|
||||||
source test_reltime.vim
|
source test_reltime.vim
|
||||||
source test_searchpos.vim
|
source test_searchpos.vim
|
||||||
source test_set.vim
|
source test_set.vim
|
||||||
|
12
src/testdir/test_put.vim
Normal file
12
src/testdir/test_put.vim
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
func Test_put_block()
|
||||||
|
if !has('multi_byte')
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
new
|
||||||
|
call feedkeys("i\<C-V>u2500\<CR>x\<ESC>", 'x')
|
||||||
|
call feedkeys("\<C-V>y", 'x')
|
||||||
|
call feedkeys("gg0p", 'x')
|
||||||
|
call assert_equal("\u2500x", getline(1))
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
@ -764,6 +764,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
222,
|
||||||
/**/
|
/**/
|
||||||
221,
|
221,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user