[hackers] [st] Use tsetdirt in tscrollup and tscrolldown. || noname

From: <git_AT_suckless.org>
Date: Wed, 23 Apr 2014 20:38:55 +0200

commit 3afdb4ff04b45a5e4209a56d5073341c9d506b38
Author: noname <noname_AT_inventati.org>
Date: Sun Apr 20 17:26:13 2014 +0400

    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
_AT_@ -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);
_AT_@ -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);
Received on Wed Apr 23 2014 - 20:38:55 CEST

This archive was generated by hypermail 2.3.0 : Wed Apr 23 2014 - 20:48:11 CEST