# HG changeset patch # User Christian Brabandt # Date 1496584803 -7200 # Node ID 08e60ce4cbf3d3ce57dea331d5db900230dc7325 # Parent 5e21f2c7744291f2add66b22758c1679154df917 patch 8.0.0611: the screen is not redrawn after sending t_u7 commit https://github.com/vim/vim/commit/976787d1f31451ca7a88e774a03e6c24ddc67876 Author: Bram Moolenaar Date: Sun Jun 4 15:45:50 2017 +0200 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 --- 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 --- 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 --- 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,