diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-07-22 18:14:17 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-07-22 18:14:17 +0200 |
commit | 9f1f49b839fbc5d099301d5318a5e1e70dd59b7c (patch) | |
tree | 8472cebe1ad2e1d784dcaac7b05471729a7c940d /src | |
parent | 5a1feb809191e236cadd2884a5f57ad26cd213a3 (diff) |
patch 8.0.0745: multi-byte characters in a terminal don't display wellv8.0.0745
Problem: multi-byte characters in a terminal window are not displayed
properly.
Solution: Set the unused screen characters. (Yasuhiro Matsumoto, closes
#1857)
Diffstat (limited to 'src')
-rw-r--r-- | src/terminal.c | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c index 0d974eddbe..aafd7e89fa 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -46,6 +46,7 @@ * - Display the scrollback buffer (but with attributes). * Make the buffer not modifiable, drop attributes when making changes. * - when closing window and job has not ended, make terminal hidden? + * - don't allow exiting Vim when a terminal is still running a job * - use win_del_lines() to make scroll-up efficient. * - command line completion for :terminal * - add test for giving error for invalid 'termsize' value. @@ -629,9 +630,15 @@ term_update_window(win_T *wp) { #if defined(FEAT_MBYTE) if (enc_utf8 && c >= 0x80) + { + ScreenLines[off] = ' '; ScreenLinesUC[off] = c; + } else + { ScreenLines[off] = c; + ScreenLinesUC[off] = NUL; + } #else ScreenLines[off] = c; #endif @@ -643,7 +650,7 @@ term_update_window(win_T *wp) ++off; if (cell.width == 2) { - ScreenLines[off] = ' '; + ScreenLines[off] = NUL; ScreenLinesUC[off] = NUL; ++pos.col; ++off; diff --git a/src/version.c b/src/version.c index 31dc8d6822..b0058e4d3e 100644 --- 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 */ /**/ + 745, +/**/ 744, /**/ 743, |