Correct shift amount on MODE_INSERT in tputc() - st - Simple Terminal
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit aba6c292af347588b9c2f5d1a400a6270b5a447f
 (DIR) parent 4d14d97547d335974e98aa612ac5b4fcfc25e1d9
 (HTM) Author: Rian Hunter <rian@alum.mit.edu>
       Date:   Thu, 29 Jan 2015 15:00:39 -0800
       
       Correct shift amount on MODE_INSERT in tputc()
       
       When MODE_INSERT is set we'd shift characters on the same
       line forward before inserting our character in tputc().
       This did not account for wide characters where width != 1.
       This patch makes it so we shift the correct amount.
       
       Diffstat:
         st.c                                |       4 ++--
       
       1 file changed, 2 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -2676,8 +2676,8 @@ tputc(char *c, int len) {
                        gp = &term.line[term.c.y][term.c.x];
                }
        
       -        if(IS_SET(MODE_INSERT) && term.c.x+1 < term.col)
       -                memmove(gp+1, gp, (term.col - term.c.x - 1) * sizeof(Glyph));
       +        if(IS_SET(MODE_INSERT) && term.c.x+width < term.col)
       +                memmove(gp+width, gp, (term.col - term.c.x - width) * sizeof(Glyph));
        
                if(term.c.x+width > term.col) {
                        tnewline(1);