# HG changeset patch # User Bram Moolenaar # Date 1594242903 -7200 # Node ID 421c4ed6b949a2a2fdf176a728177dc435449352 # Parent 46dce2da6919a603e259aeae6e042e4f1db5c95b patch 8.2.1164: text cleared by checking terminal properties not redrawn Commit: https://github.com/vim/vim/commit/96916ac67ad9ed5d79ce87b099f9d01aa4c13745 Author: Bram Moolenaar Date: Wed Jul 8 23:09:28 2020 +0200 patch 8.2.1164: text cleared by checking terminal properties not redrawn Problem: Text cleared by checking terminal properties not redrawn. (Alexey Radkov) Solution: Mark the screen characters as invalid. (closes #6422) diff --git a/src/proto/screen.pro b/src/proto/screen.pro --- a/src/proto/screen.pro +++ b/src/proto/screen.pro @@ -31,6 +31,7 @@ int screen_valid(int doclear); void screenalloc(int doclear); void free_screenlines(void); void screenclear(void); +void line_was_clobbered(int screen_lnum); int can_clear(char_u *p); void screen_start(void); void windgoto(int row, int col); diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -2982,6 +2982,16 @@ lineinvalid(unsigned off, int width) } /* + * To be called when characters were sent to the terminal directly, outputting + * test on "screen_lnum". + */ + void +line_was_clobbered(int screen_lnum) +{ + lineinvalid(LineOffset[screen_lnum], (int)Columns); +} + +/* * Copy part of a Screenline for vertically split window "wp". */ static void diff --git a/src/term.c b/src/term.c --- a/src/term.c +++ b/src/term.c @@ -3732,6 +3732,7 @@ check_terminal_behavior(void) screen_stop_highlight(); term_windgoto(1, 0); out_str((char_u *)" "); + line_was_clobbered(1); } if (xcc_status.tr_progress == STATUS_GET) @@ -3761,6 +3762,7 @@ check_terminal_behavior(void) screen_stop_highlight(); term_windgoto(2, 0); out_str((char_u *)" "); + line_was_clobbered(2); } if (did_send) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1164, +/**/ 1163, /**/ 1162,