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.
			
			
This commit is contained in:
		
							parent
							
								
									f9dc374ea0
								
							
						
					
					
						commit
						3afdb4ff04
					
				
							
								
								
									
										10
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								st.c
									
									
									
									
									
								
							| @ -1399,14 +1399,13 @@ tscrolldown(int orig, int n) { | |||||||
| 	LIMIT(n, 0, term.bot-orig+1); | 	LIMIT(n, 0, term.bot-orig+1); | ||||||
| 
 | 
 | ||||||
| 	tclearregion(0, term.bot-n+1, term.col-1, term.bot); | 	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--) { | 	for(i = term.bot; i >= orig+n; i--) { | ||||||
| 		temp = term.line[i]; | 		temp = term.line[i]; | ||||||
| 		term.line[i] = term.line[i-n]; | 		term.line[i] = term.line[i-n]; | ||||||
| 		term.line[i-n] = temp; | 		term.line[i-n] = temp; | ||||||
| 
 |  | ||||||
| 		term.dirty[i] = 1; |  | ||||||
| 		term.dirty[i-n] = 1; |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	selscroll(orig, n); | 	selscroll(orig, n); | ||||||
| @ -1419,14 +1418,13 @@ tscrollup(int orig, int n) { | |||||||
| 	LIMIT(n, 0, term.bot-orig+1); | 	LIMIT(n, 0, term.bot-orig+1); | ||||||
| 
 | 
 | ||||||
| 	tclearregion(0, orig, term.col-1, orig+n-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++) { | 	for(i = orig; i <= term.bot-n; i++) { | ||||||
| 		 temp = term.line[i]; | 		 temp = term.line[i]; | ||||||
| 		 term.line[i] = term.line[i+n]; | 		 term.line[i] = term.line[i+n]; | ||||||
| 		 term.line[i+n] = temp; | 		 term.line[i+n] = temp; | ||||||
| 
 |  | ||||||
| 		 term.dirty[i] = 1; |  | ||||||
| 		 term.dirty[i+n] = 1; |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	selscroll(orig, -n); | 	selscroll(orig, -n); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 noname
						noname