From 9eb70a2d3ecbd96a92e5f824868500baba74b688 Mon Sep 17 00:00:00 2001
From: "noname@inventati.org" <noname@inventati.org>
Date: Mon, 13 Apr 2015 14:03:35 +0200
Subject: Do not use tmoveto in tputtab.

tmoveto resets CURSOR_WRAPNEXT.

Simple testcase:

for i in $(seq 1 200); do
	printf '\t.';
	usleep 100000;
	printf '\t@';
	usleep 100000;
done

In st executing this script causes @ and . to overwrite each other in
the last column.
---
 st.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'st.c')

diff --git a/st.c b/st.c
index 6d20977..7051a4a 100644
--- a/st.c
+++ b/st.c
@@ -2390,7 +2390,7 @@ tputtab(int n) {
 			for(--x; x > 0 && !term.tabs[x]; --x)
 				/* nothing */ ;
 	}
-	tmoveto(x, term.c.y);
+	term.c.x = LIMIT(x, 0, term.col-1);
 }
 
 void
-- 
cgit v1.2.3