Merge remote-tracking branch 'suckless/master'

This commit is contained in:
Oshgnacknak 2025-10-21 17:21:51 +02:00
commit 91db78da08
Signed by: Oshgnacknak
GPG key ID: 8CB7375654585956
2 changed files with 30 additions and 11 deletions

View file

@ -1,5 +1,5 @@
# st version
VERSION = 0.9.2
VERSION = 0.9.3
# Customize below to fit your system

39
st.c
View file

@ -1487,16 +1487,22 @@ tsetattr(const int *attr, int l)
if ((idx = tdefcolor(attr, &i, l)) >= 0)
term.c.attr.fg = idx;
break;
case 39:
case 39: /* set foreground color to default */
term.c.attr.fg = defaultfg;
break;
case 48:
if ((idx = tdefcolor(attr, &i, l)) >= 0)
term.c.attr.bg = idx;
break;
case 49:
case 49: /* set background color to default */
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;
@ -1593,7 +1599,7 @@ tsetmode(int priv, int set, const int *args, int narg)
case 1006: /* 1006: extended reporting mode */
xsetmode(set, MODE_MOUSESGR);
break;
case 1034:
case 1034: /* 1034: enable 8-bit mode for keyboard input */
xsetmode(set, MODE_8BIT);
break;
case 1049: /* swap screen & set/restore cursor as xterm */
@ -1601,8 +1607,8 @@ tsetmode(int priv, int set, const int *args, int narg)
break;
tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
/* FALLTHROUGH */
case 47: /* swap screen */
case 1047:
case 47: /* swap screen buffer */
case 1047: /* swap screen buffer */
if (!allowaltscreen)
break;
alt = IS_SET(MODE_ALTSCREEN);
@ -1615,7 +1621,7 @@ tsetmode(int priv, int set, const int *args, int narg)
if (*args != 1049)
break;
/* FALLTHROUGH */
case 1048:
case 1048: /* save/restore cursor (like DECSC/DECRC) */
tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
break;
case 2004: /* 2004: bracketed paste mode */
@ -1974,7 +1980,7 @@ strhandle(void)
if (narg > 1)
xsettitle(strescseq.args[1]);
return;
case 52:
case 52: /* manipulate selection data */
if (narg > 2 && allowwindowops) {
dec = base64dec(strescseq.args[2]);
if (dec) {
@ -1985,9 +1991,9 @@ strhandle(void)
}
}
return;
case 10:
case 11:
case 12:
case 10: /* set dynamic VT100 text foreground color */
case 11: /* set dynamic VT100 text background color */
case 12: /* set dynamic text cursor color */
if (narg < 2)
break;
p = strescseq.args[1];
@ -2028,6 +2034,19 @@ strhandle(void)
tfulldirt();
}
return;
case 110: /* reset dynamic VT100 text foreground color */
case 111: /* reset dynamic VT100 text background color */
case 112: /* reset dynamic text cursor color */
if (narg != 1)
break;
if ((j = par - 110) < 0 || j >= LEN(osc_table))
break; /* shouldn't be possible */
if (xsetcolorname(osc_table[j].idx, NULL)) {
fprintf(stderr, "erresc: %s color not found\n", osc_table[j].str);
} else {
tfulldirt();
}
return;
}
break;
case 'k': /* old title set compatibility */