| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1060,12 +1060,25 @@ tresize(int col, int row) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int i; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int minrow = MIN(row, term.row); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int mincol = MIN(col, term.col); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int slide = term.c.y - row + 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(col < 1 || row < 1) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* free uneeded rows */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = row; i < term.row; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* free unneeded rows */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						i = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(slide > 0) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							/* slide screen to keep cursor where we expect it - | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 * tscrollup would work here, but we can optimize to | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 * memmove because we're freeing the earlier lines */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for(/* i = 0 */; i < slide; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								free(term.line[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								free(term.alt[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							memmove(term.line, term.line + slide, row * sizeof(Line)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							memmove(term.alt, term.alt + slide, row * sizeof(Line)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i += row; i < term.row; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							free(term.line[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							free(term.alt[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |