[dev] [st] [PATCH] fix screen clearing in tresize

From: Quentin Carbonneaux <q_AT_c9x.me>
Date: Mon, 18 Aug 2014 18:06:26 +0200

If defaultbg != 0, the alt screen is cleared with the wrong
color. The bug is fixed by avoiding to load a cursor that
might be 0 initialized.
---
 st.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/st.c b/st.c
index 8f19018..783965e 100644
--- a/st.c
+++ b/st.c
_AT_@ -2661,8 +2661,6 @@ tresize(int col, int row) {
 	int mincol = MIN(col, term.col);
 	int slide = term.c.y - row + 1;
 	bool *bp;
-	Line *orig;
-	TCursor c;
 
 	if(col < 1 || row < 1) {
 		fprintf(stderr,
_AT_@ -2724,9 +2722,7 @@ tresize(int col, int row) {
 	/* make use of the LIMIT in tmoveto */
 	tmoveto(term.c.x, term.c.y);
 	/* Clearing both screens (it makes dirty all lines) */
-	orig = term.line;
-	c = term.c;
-	do {
+	for(i = 1; i <= 2; i++) {
 		if(mincol < col && 0 < minrow) {
 			tclearregion(mincol, 0, col - 1, minrow - 1);
 		}
_AT_@ -2734,9 +2730,7 @@ tresize(int col, int row) {
 			tclearregion(0, minrow, col - 1, row - 1);
 		}
 		tswapscreen();
-		tcursor(CURSOR_LOAD);
-	} while(orig != term.line);
-	term.c = c;
+	}
 }
 
 void
_AT_@ -3933,4 +3927,3 @@ run:
 
 	return 0;
 }
-
-- 
2.0.4
Received on Mon Aug 18 2014 - 18:06:26 CEST

This archive was generated by hypermail 2.3.0 : Mon Aug 18 2014 - 18:12:08 CEST