From: Bram Moolenaar Date: Sun, 4 Jun 2017 13:45:50 +0000 (+0200) Subject: patch 8.0.0611: the screen is not redrawn after sending t_u7 X-Git-Tag: v8.0.0611 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=976787d1f31451ca7a88e774a03e6c24ddc67876;p=vim 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 883c9cc23..ebd1ec333 100644 --- a/src/main.c +++ b/src/main.c @@ -783,6 +783,11 @@ vim_main2(void) 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 @@ 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 fb6b59e96..6dd59ad33 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 bb3581c0b..2d91a7259 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 611, /**/ 610, /**/