[hackers] [st] Correct shift amount on MODE_INSERT in tputc() || Rian Hunter

From: <git_AT_suckless.org>
Date: Thu, 5 Feb 2015 20:28:45 +0100 (CET)

commit aba6c292af347588b9c2f5d1a400a6270b5a447f
Author: Rian Hunter <rian_AT_alum.mit.edu>
Date: Thu Jan 29 15:00:39 2015 -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.

diff --git a/st.c b/st.c
index 6a68c3c..1deb7bc 100644
--- a/st.c
+++ b/st.c
_AT_@ -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);
Received on Thu Feb 05 2015 - 20:28:45 CET

This archive was generated by hypermail 2.3.0 : Thu Feb 05 2015 - 20:36:10 CET