Skip to content

Commit 976787d

Browse files
committed
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.
1 parent 4b974d5 commit 976787d

3 files changed

Lines changed: 11 additions & 3 deletions

File tree

src/main.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,11 @@ vim_main2(void)
783783
if (params.n_commands > 0)
784784
exe_commands(&params);
785785

786+
#if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
787+
/* Must be done before redrawing, puts a few characters on the screen. */
788+
may_req_ambiguous_char_width();
789+
#endif
790+
786791
RedrawingDisabled = 0;
787792
redraw_all_later(NOT_VALID);
788793
no_wait_return = FALSE;
@@ -796,9 +801,6 @@ vim_main2(void)
796801
* argument doesn't make it appear in the shell Vim was started from. */
797802
may_req_termresponse();
798803

799-
# if defined(FEAT_MBYTE)
800-
may_req_ambiguous_char_width();
801-
# endif
802804
may_req_bg_color();
803805
#endif
804806

src/term.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3333,9 +3333,13 @@ may_req_ambiguous_char_width(void)
33333333
out_str(T_U7);
33343334
u7_status = U7_SENT;
33353335
out_flush();
3336+
3337+
/* This overwrites a few characters on the screen, a redraw is needed
3338+
* after this. Clear them out for now. */
33363339
term_windgoto(1, 0);
33373340
out_str((char_u *)" ");
33383341
term_windgoto(0, 0);
3342+
33393343
/* check for the characters now, otherwise they might be eaten by
33403344
* get_keystroke() */
33413345
out_flush();

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,8 @@ static char *(features[]) =
764764

765765
static int included_patches[] =
766766
{ /* Add new patch number below this line */
767+
/**/
768+
611,
767769
/**/
768770
610,
769771
/**/

0 commit comments

Comments
 (0)