all repos — st @ 94b8ec002101a5e8f52a342e53431eea71aa0631

st (suckless terminal) config

Partially add back in "support REP (repeat) escape sequence"

Add the functionality back in for xterm compatibility, but do not expose the
capability in st.info (yet).

Some notes:

It was reverted because it caused some issues with ncurses in some
configurations, namely when using BSD padding (--enable-bsdpad, BSD_TPUTS) in
ncurses it caused issues with repeating digits.

A fix has been upstreamed in ncurses since snapshot 20200523. The fix is also
backported to OpenBSD -current.
Hiltjo Posthuma hiltjo@codemadness.org
commit

94b8ec002101a5e8f52a342e53431eea71aa0631

parent

dec6b530a4fddf405c1822b2cac6e2036d3c8b75

2 files changed, 12 insertions(+), 0 deletions(-)

jump to
M st.cst.c

@@ -129,6 +129,7 @@ char trantbl[4]; /* charset table translation */

int charset; /* current charset */ int icharset; /* selected charset for sequence */ int *tabs; + Rune lastc; /* last printed char outside of sequence, 0 if control */ } Term; /* CSI Escape sequence structs */

@@ -1648,6 +1649,12 @@ case 'c': /* DA -- Device Attributes */

if (csiescseq.arg[0] == 0) ttywrite(vtiden, strlen(vtiden), 0); break; + case 'b': /* REP -- if last char is printable print it <n> more times */ + DEFAULT(csiescseq.arg[0], 1); + if (term.lastc) + while (csiescseq.arg[0]-- > 0) + tputc(term.lastc); + break; case 'C': /* CUF -- Cursor <n> Forward */ case 'a': /* HPR -- Cursor <n> Forward */ DEFAULT(csiescseq.arg[0], 1);

@@ -2373,6 +2380,8 @@ tcontrolcode(u);

/* * control codes are not shown ever */ + if (!term.esc) + term.lastc = 0; return; } else if (term.esc & ESC_START) { if (term.esc & ESC_CSI) {

@@ -2422,6 +2431,7 @@ gp = &term.line[term.c.y][term.c.x];

} tsetchar(u, &term.c.attr, term.c.x, term.c.y); + term.lastc = u; if (width == 2) { gp->mode |= ATTR_WIDE;
M st.infost.info

@@ -184,6 +184,8 @@ vpa=\E[%i%p1%dd,

# XTerm extensions rmxx=\E[29m, smxx=\E[9m, +# disabled rep for now: causes some issues with older ncurses versions. +# rep=%p1%c\E[%p2%{1}%-%db, # tmux extensions, see TERMINFO EXTENSIONS in tmux(1) Tc, Ms=\E]52;%p1%s;%p2%s\007,