changeset 12214:d2eea20ee14a v8.0.0987

patch 8.0.0987: terminal: second byte of double-byte char wrong commit https://github.com/vim/vim/commit/d2c45a1964ddb0d9ac16c9c985051fab41f37840 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Aug 22 22:29:00 2017 +0200 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.
author Christian Brabandt <cb@256bit.org>
date Tue, 22 Aug 2017 22:30:05 +0200
parents dca6adb81733
children faa2a4381b6e
files src/terminal.c src/version.c
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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;
 		}
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    987,
+/**/
     986,
 /**/
     985,