Mercurial > vim
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; }