Эх сурвалжийг харах

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.
Roberto E. Vargas Caballero 11 жил өмнө
parent
commit
6b7f63bac5
1 өөрчлөгдсөн 6 нэмэгдсэн , 4 устгасан
  1. 6 4
      st.c

+ 6 - 4
st.c

@@ -1587,30 +1587,32 @@ tclearregion(int x1, int y1, int x2, int y2) {
 void
 tdeletechar(int n) {
 	int dst, src, size;
+	Glyph *line;
 
 	LIMIT(n, 0, term.col - term.c.x);
 
 	dst = term.c.x;
 	src = term.c.x + n;
 	size = term.col - src;
+	line = term.line[term.c.y];
 
-	memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
-	        size * sizeof(Glyph));
+	memmove(&line[dst], &line[src], size * sizeof(Glyph));
 	tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
 }
 
 void
 tinsertblank(int n) {
 	int dst, src, size;
+	Glyph *line;
 
 	LIMIT(n, 0, term.col - term.c.x);
 
 	dst = term.c.x + n;
 	src = term.c.x;
 	size = term.col - dst;
+	line = term.line[term.c.y];
 
-	memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
-	        size * sizeof(Glyph));
+	memmove(&line[dst], &line[src], size * sizeof(Glyph));
 	tclearregion(src, term.c.y, dst - 1, term.c.y);
 }