URI: 
       Fix crash due to wide characters - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 4d14d97547d335974e98aa612ac5b4fcfc25e1d9
   DIR parent 708b697ed77e1ba4e96399ed6cb0f73a37565321
  HTML Author: Rian Hunter <rian+suckless-dev@thelig.ht>
       Date:   Thu, 29 Jan 2015 15:06:43 -0800
       
       Fix crash due to wide characters
       
       In tputc(), when a character wasn't large enough to fit
       on the current line, we would call tnewline() to place it on
       the next line. Unfortunately, we weren't resetting our glyph
       pointer and this caused memory corruption when a
       wide character (width == 2) was being written. This patch
       resets our glyph pointer after calls to tnewline().
       
       Diffstat:
         M st.c                                |       5 ++++-
       
       1 file changed, 4 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/st.c b/st.c
       @@ -2673,13 +2673,16 @@ tputc(char *c, int len) {
                if(IS_SET(MODE_WRAP) && (term.c.state & CURSOR_WRAPNEXT)) {
                        gp->mode |= ATTR_WRAP;
                        tnewline(1);
       +                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(term.c.x+width > term.col)
       +        if(term.c.x+width > term.col) {
                        tnewline(1);
       +                gp = &term.line[term.c.y][term.c.x];
       +        }
        
                tsetchar(c, &term.c.attr, term.c.x, term.c.y);