summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-06-04 15:45:50 +0200
committerBram Moolenaar <Bram@vim.org>2017-06-04 15:45:50 +0200
commit976787d1f31451ca7a88e774a03e6c24ddc67876 (patch)
tree5dd554c1b2fa5c0c89c7dca6033beced9bd436b4
parent4b974d54434b8020771be7225da94648e9ec961a (diff)
patch 8.0.0611: the screen is not redrawn after sending t_u7v8.0.0611
Problem: When t_u7 is sent a few characters in the second screen line are overwritten and not redrawn later. (Rastislav Barlik) Solution: Move redrawing the screen to after overwriting the characters.
-rw-r--r--src/main.c8
-rw-r--r--src/term.c4
-rw-r--r--src/version.c2
3 files changed, 11 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 883c9cc23e..ebd1ec3333 100644
--- a/src/main.c
+++ b/src/main.c
@@ -783,6 +783,11 @@ vim_main2(void)
if (params.n_commands > 0)
exe_commands(&params);
+#if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
+ /* Must be done before redrawing, puts a few characters on the screen. */
+ may_req_ambiguous_char_width();
+#endif
+
RedrawingDisabled = 0;
redraw_all_later(NOT_VALID);
no_wait_return = FALSE;
@@ -796,9 +801,6 @@ vim_main2(void)
* argument doesn't make it appear in the shell Vim was started from. */
may_req_termresponse();
-# if defined(FEAT_MBYTE)
- may_req_ambiguous_char_width();
-# endif
may_req_bg_color();
#endif
diff --git a/src/term.c b/src/term.c
index fb6b59e962..6dd59ad339 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3333,9 +3333,13 @@ may_req_ambiguous_char_width(void)
out_str(T_U7);
u7_status = U7_SENT;
out_flush();
+
+ /* This overwrites a few characters on the screen, a redraw is needed
+ * after this. Clear them out for now. */
term_windgoto(1, 0);
out_str((char_u *)" ");
term_windgoto(0, 0);
+
/* check for the characters now, otherwise they might be eaten by
* get_keystroke() */
out_flush();
diff --git a/src/version.c b/src/version.c
index bb3581c0bf..2d91a72598 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 611,
+/**/
610,
/**/
609,