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.
This commit is contained in:
Rian Hunter 2015-01-29 15:00:39 -08:00 committed by Roberto E. Vargas Caballero
parent 4d14d97547
commit aba6c292af

4
st.c
View file

@ -2676,8 +2676,8 @@ tputc(char *c, int len) {
gp = &term.line[term.c.y][term.c.x]; gp = &term.line[term.c.y][term.c.x];
} }
if(IS_SET(MODE_INSERT) && term.c.x+1 < term.col) if(IS_SET(MODE_INSERT) && term.c.x+width < term.col)
memmove(gp+1, gp, (term.col - term.c.x - 1) * sizeof(Glyph)); memmove(gp+width, gp, (term.col - term.c.x - width) * sizeof(Glyph));
if(term.c.x+width > term.col) { if(term.c.x+width > term.col) {
tnewline(1); tnewline(1);