patch 8.0.0611: the screen is not redrawn after sending t_u7
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.
diff --git a/src/main.c b/src/main.c
index 883c9cc..ebd1ec3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -783,6 +783,11 @@
if (params.n_commands > 0)
exe_commands(¶ms);
+#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 @@
* 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 fb6b59e..6dd59ad 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3333,9 +3333,13 @@
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 bb3581c..2d91a72 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 611,
+/**/
610,
/**/
609,