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 164eb602f2
commit 9968cd609b
4 changed files with 19 additions and 1 deletions
+2 -1
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);
+10
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
aab
STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out
+5
View File
@@ -144,3 +144,8 @@ a
{
four
}
ra test
aaaa
aaa
+2
View File
@@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
853,
/**/
852,
/**/