From: noname Date: Sun, 20 Apr 2014 13:26:13 +0000 (+0400) Subject: Use tsetdirt in tscrollup and tscrolldown. X-Git-Url: https://jasonwoof.com/gitweb/?p=st.git;a=commitdiff_plain;h=3afdb4ff04b45a5e4209a56d5073341c9d506b38 Use tsetdirt in tscrollup and tscrolldown. tscrollup and tscrolldown do not use tsetdirt, but their code is equivalent to tsetdirt(orig, term.bot-n); tsetdirt(orig+n, term.bot); tclearregion also marks cleared lines as dirty. In tscrolldown it sets lines from term.bot-n+1 to term.bot dirty, and in tscrollup it sets lines from orig to orig+n-1 dirty. In both functions all lines from orig to term.bot are effectively set dirty, but in tscrolldown lines from orig+n to term.bot are set dirty twice, and in tscrollup lines from orig to term.bot-n are set dirty twice. These patches make it clear which lines are set dirty and sets them dirty once in each funciton. --- diff --git a/st.c b/st.c index b66791a..d188b35 100644 --- a/st.c +++ b/st.c @@ -1399,14 +1399,13 @@ tscrolldown(int orig, int n) { LIMIT(n, 0, term.bot-orig+1); tclearregion(0, term.bot-n+1, term.col-1, term.bot); + tsetdirt(orig, term.bot-n); + tsetdirt(orig+n, term.bot); for(i = term.bot; i >= orig+n; i--) { temp = term.line[i]; term.line[i] = term.line[i-n]; term.line[i-n] = temp; - - term.dirty[i] = 1; - term.dirty[i-n] = 1; } selscroll(orig, n); @@ -1419,14 +1418,13 @@ tscrollup(int orig, int n) { LIMIT(n, 0, term.bot-orig+1); tclearregion(0, orig, term.col-1, orig+n-1); + tsetdirt(orig, term.bot-n); + tsetdirt(orig+n, term.bot); for(i = orig; i <= term.bot-n; i++) { temp = term.line[i]; term.line[i] = term.line[i+n]; term.line[i+n] = temp; - - term.dirty[i] = 1; - term.dirty[i+n] = 1; } selscroll(orig, -n);