commit 9eb70a2d3ecbd96a92e5f824868500baba74b688
Author: [email protected] <[email protected]>
Date:   Mon Apr 13 14:03:35 2015 +0200

    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.

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

Reply via email to