On Sun, Jul 27, 2025 at 05:43:47AM +0000, sasha wrote: > This is used in the wild by systemd systemctl for example and st > misinterpreted it as "blink", because it didn't know "58", then saw "5" > as "blink", and then didn't know "245". > > This should print "foo" as normal text: > > printf '\e[58:5:245mfoo\n' > printf '\e[58:2:50:100:200mfoo\n' > --- > st.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/st.c b/st.c > index 03b9bc8..37f38c5 100644 > --- a/st.c > +++ b/st.c > @@ -1430,6 +1430,12 @@ tsetattr(const int *attr, int l) > case 49: > term.c.attr.bg = defaultbg; > break; > + case 58: > + /* This starts a sequence to change the color of > + * "underline" pixels. We don't support that and > + * instead eat up a following "5;n" or "2;r;g;b". */ > + tdefcolor(attr, &i, l); > + break; > default: > if (BETWEEN(attr[i], 30, 37)) { > term.c.attr.fg = attr[i] - 30; > -- > 2.50.1 > >
Applied, thank you! -- Kind regards, Hiltjo