URI: 
       Simplify a bit more tdeletechar and tinsertblank - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 6b7f63bac597ca03e18fe63ad522b4d1bded08d1
   DIR parent 80b32af794b659cb15745cfb2a19fce0829c42c7
  HTML Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
       Date:   Fri, 25 Apr 2014 17:24:12 +0200
       
       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.
       
       Diffstat:
         M st.c                                |      10 ++++++----
       
       1 file changed, 6 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/st.c b/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);
        }