all repos — st @ aba6c292af347588b9c2f5d1a400a6270b5a447f

st (suckless terminal) config

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.
Rian Hunter rian@alum.mit.edu
commit

aba6c292af347588b9c2f5d1a400a6270b5a447f

parent

4d14d97547d335974e98aa612ac5b4fcfc25e1d9

1 files changed, 2 insertions(+), 2 deletions(-)

jump to
M st.cst.c

@@ -2676,8 +2676,8 @@ 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(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);