From: Bram Moolenaar Date: Tue, 22 Aug 2017 20:29:00 +0000 (+0200) Subject: patch 8.0.0987: terminal: second byte of double-byte char wrong X-Git-Tag: v8.0.0987 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d2c45a1964ddb0d9ac16c9c985051fab41f37840;p=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. --- diff --git a/src/terminal.c b/src/terminal.c index 3ee50e490..1baad7bf1 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -2130,7 +2130,7 @@ term_update_window(win_T *wp) (char*)mb, 2, 0, 0) > 1) { ScreenLines[off] = mb[0]; - ScreenLines[off+1] = mb[1]; + ScreenLines[off + 1] = mb[1]; cell.width = mb_ptr2cells(mb); } else @@ -2148,8 +2148,12 @@ term_update_window(win_T *wp) { if (enc_utf8) 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; + ++pos.col; ++off; } diff --git a/src/version.c b/src/version.c index 6baf62be4..6d2de8663 100644 --- a/src/version.c +++ b/src/version.c @@ -769,6 +769,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 987, /**/ 986, /**/