st
simple terminal
git clone https://9o.is/git/st.git
commit 619fe4659b4a09635b756d0d20e8c5f5757e4554 parent 0e4c66adade3d5a7c94472002490b7a4993c81af 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:
| M | st.c | | | 4 | ++-- |
1 file changed, 2 insertions(+), 2 deletions(-)
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);