[PATCH] Correct shift amount on MODE_INSERT in tputc()

From: Rian Hunter <rian_AT_alum.mit.edu>
Date: Thu, 29 Jan 2015 15:00:39 -0800

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.
---
 st.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/st.c b/st.c
index db9a332..a11a998 100644
--- a/st.c
+++ b/st.c
_AT_@ -2675,8 +2675,8 @@ tputc(char *c, int len) {
 		tnewline(1);
 	}
 
-	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);
-- 
2.1.4
--OXfL5xGRrasGEqWY--
Received on Mon Sep 17 2001 - 00:00:00 CEST

This archive was generated by hypermail 2.3.0 : Fri Jan 30 2015 - 10:00:04 CET