1
0
forked from aniani/vim

patch 8.0.0987: terminal: second byte of double-byte char wrong

Problem:    terminal: second byte of double-byte char wrong
Solution:   Set the second byte to NUL only for utf-8 and non-multibyte.
This commit is contained in:
Bram Moolenaar
2017-08-22 22:29:00 +02:00
parent ec0e07a324
commit d2c45a1964
2 changed files with 8 additions and 2 deletions

View File

@@ -2130,7 +2130,7 @@ term_update_window(win_T *wp)
(char*)mb, 2, 0, 0) > 1) (char*)mb, 2, 0, 0) > 1)
{ {
ScreenLines[off] = mb[0]; ScreenLines[off] = mb[0];
ScreenLines[off+1] = mb[1]; ScreenLines[off + 1] = mb[1];
cell.width = mb_ptr2cells(mb); cell.width = mb_ptr2cells(mb);
} }
else else
@@ -2148,8 +2148,12 @@ term_update_window(win_T *wp)
{ {
if (enc_utf8) if (enc_utf8)
ScreenLinesUC[off] = NUL; ScreenLinesUC[off] = NUL;
else if (!has_mbyte)
/* don't set the second byte to NUL for a DBCS encoding, it
* has been set above */
if (enc_utf8 || !has_mbyte)
ScreenLines[off] = NUL; ScreenLines[off] = NUL;
++pos.col; ++pos.col;
++off; ++off;
} }

View File

@@ -769,6 +769,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 */
/**/
987,
/**/ /**/
986, 986,
/**/ /**/