st.c | 4 ++++ st.info | 2 ++ diff --git a/st.c b/st.c index b8b2bbff7a2af2cc4367a65c52d4327ba458dce7..7b7bd55b87765b0a3a49a0922bd9425f50418cee 100644 --- a/st.c +++ b/st.c @@ -2100,6 +2100,10 @@ if(sel.bx != -1 && BETWEEN(term.c.y, sel.by, sel.ey)) sel.bx = -1; if(IS_SET(MODE_WRAP) && term.c.state & CURSOR_WRAPNEXT) tnewline(1); /* always go to first col */ + if(IS_SET(MODE_INSERT) && term.c.x+1 < term.col) + memmove(&term.line[term.c.y][term.c.x+1], + &term.line[term.c.y][term.c.x], + (term.col - term.c.x - 1) * sizeof(Glyph)); tsetchar(c, &term.c.attr, term.c.x, term.c.y); if(term.c.x+1 < term.col) tmoveto(term.c.x+1, term.c.y); diff --git a/st.info b/st.info index 4a051601bb20a0dddbc678f0354b02c47c222e55..bb8145b46807c1772dd504da85d51fd7c201abb9 100644 --- a/st.info +++ b/st.info @@ -153,6 +153,7 @@ ri=\EM, ritm=\E[23m, rmacs=\E(B, rmcup=\E[?1049l, + rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[m, @@ -168,6 +169,7 @@ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, sitm=\E[3m, smacs=\E(0, smcup=\E[?1049h, + smir=\E[4h, smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m,