1
0
forked from aniani/vim

updated for version 7.3.853

Problem:    Using "ra" in multiple lines on multi-byte characters leaves a few
            characters not replaced.
Solution:   Adjust the end column only in the last line. (Yasuhiro Matsumoto)
This commit is contained in:
Bram Moolenaar
2013-03-07 18:50:57 +01:00
parent e2e663f67d
commit db813951c4
4 changed files with 19 additions and 1 deletions

View File

@@ -2194,7 +2194,8 @@ op_replace(oap, c)
{
/* This is slow, but it handles replacing a single-byte
* with a multi-byte and the other way around. */
oap->end.col += (*mb_char2len)(c) - (*mb_char2len)(n);
if (curwin->w_cursor.lnum == oap->end.lnum)
oap->end.col += (*mb_char2len)(c) - (*mb_char2len)(n);
n = State;
State = REPLACE;
ins_char(c);

View File

@@ -1,5 +1,6 @@
Test for multi-byte text formatting.
Also test, that 'mps' with multibyte chars works.
And test "ra" on multi-byte characters.
STARTTEST
:so mbyte.vim
@@ -143,6 +144,15 @@ ENDTEST
{
two three four
}
STARTTEST
/^ra test
jVjra
ENDTEST
ra test
bb
b
STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out

View File

@@ -144,3 +144,8 @@ a
{
four
}
ra test
aaaa
aaa

View File

@@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
853,
/**/
852,
/**/