diff options
| author | noname <noname@inventati.org> | 2014-04-20 17:26:13 +0400 | 
|---|---|---|
| committer | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2014-04-23 20:35:16 +0200 | 
| commit | 3afdb4ff04b45a5e4209a56d5073341c9d506b38 (patch) | |
| tree | 94a038e33f121c962b35d8d1bcfe4b3b3fefad07 | |
| parent | f9dc374ea01c2921ec3bd1214f292a7036d069ae (diff) | |
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.
| -rw-r--r-- | st.c | 10 | 
1 files changed, 4 insertions, 6 deletions
| @@ -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); | 
