diff options
| author | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2014-04-25 17:24:12 +0200 | 
|---|---|---|
| committer | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2014-04-25 17:25:59 +0200 | 
| commit | 6b7f63bac597ca03e18fe63ad522b4d1bded08d1 (patch) | |
| tree | cc883bfef81e58f1d8b39f109b05959c5660354b | |
| parent | 80b32af794b659cb15745cfb2a19fce0829c42c7 (diff) | |
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.
| -rw-r--r-- | st.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| @@ -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);  } | 
