summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-07-22 18:14:17 +0200
committerBram Moolenaar <Bram@vim.org>2017-07-22 18:14:17 +0200
commit9f1f49b839fbc5d099301d5318a5e1e70dd59b7c (patch)
tree8472cebe1ad2e1d784dcaac7b05471729a7c940d
parent5a1feb809191e236cadd2884a5f57ad26cd213a3 (diff)
downloadvim-git-9f1f49b839fbc5d099301d5318a5e1e70dd59b7c.tar.gz
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)
-rw-r--r--src/terminal.c9
-rw-r--r--src/version.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c
index 0d974eddb..aafd7e89f 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 31dc8d682..b0058e4d3 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,