Simplify a bit more tdeletechar and tinsertblank
The large and repeated expression used in memmove to indirect the line can be simplified using a pointer, that makes more clear where begins and where ends the movement.dev
							parent
							
								
									80b32af794
								
							
						
					
					
						commit
						6b7f63bac5
					
				
							
								
								
									
										10
									
								
								st.c
								
								
								
								
							
							
						
						
									
										10
									
								
								st.c
								
								
								
								
							| 
						 | 
					@ -1587,30 +1587,32 @@ tclearregion(int x1, int y1, int x2, int y2) {
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tdeletechar(int n) {
 | 
					tdeletechar(int n) {
 | 
				
			||||||
	int dst, src, size;
 | 
						int dst, src, size;
 | 
				
			||||||
 | 
						Glyph *line;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	LIMIT(n, 0, term.col - term.c.x);
 | 
						LIMIT(n, 0, term.col - term.c.x);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dst = term.c.x;
 | 
						dst = term.c.x;
 | 
				
			||||||
	src = term.c.x + n;
 | 
						src = term.c.x + n;
 | 
				
			||||||
	size = term.col - src;
 | 
						size = term.col - src;
 | 
				
			||||||
 | 
						line = term.line[term.c.y];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
 | 
						memmove(&line[dst], &line[src], size * sizeof(Glyph));
 | 
				
			||||||
	        size * sizeof(Glyph));
 | 
					 | 
				
			||||||
	tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
 | 
						tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tinsertblank(int n) {
 | 
					tinsertblank(int n) {
 | 
				
			||||||
	int dst, src, size;
 | 
						int dst, src, size;
 | 
				
			||||||
 | 
						Glyph *line;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	LIMIT(n, 0, term.col - term.c.x);
 | 
						LIMIT(n, 0, term.col - term.c.x);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dst = term.c.x + n;
 | 
						dst = term.c.x + n;
 | 
				
			||||||
	src = term.c.x;
 | 
						src = term.c.x;
 | 
				
			||||||
	size = term.col - dst;
 | 
						size = term.col - dst;
 | 
				
			||||||
 | 
						line = term.line[term.c.y];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
 | 
						memmove(&line[dst], &line[src], size * sizeof(Glyph));
 | 
				
			||||||
	        size * sizeof(Glyph));
 | 
					 | 
				
			||||||
	tclearregion(src, term.c.y, dst - 1, term.c.y);
 | 
						tclearregion(src, term.c.y, dst - 1, term.c.y);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue