changeset 21226:421c4ed6b949 v8.2.1164

patch 8.2.1164: text cleared by checking terminal properties not redrawn Commit: https://github.com/vim/vim/commit/96916ac67ad9ed5d79ce87b099f9d01aa4c13745 Author: Bram Moolenaar <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Wed, 08 Jul 2020 23:15:03 +0200
parents 46dce2da6919
children 2dcfc1b4a478
files src/proto/screen.pro src/screen.c src/term.c src/version.c
diffstat 4 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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
--- 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)
--- 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,