Fixed OSC color reset without parameter->resets all colors

Adapted from (garbled) patch by wim <wim@thinkerwim.org>

Additional notes: it should reset all the colors using xloadcols().
To reproduce: set a different (theme) color using some escape code, then reset
it:

	printf '\x1b]104\x07'

Ref.
https://git.suckless.org/st/commit/7e8050cc621f27002eaf1be8114dee2497beff91.html
This commit is contained in:
Bakkeby 2023-04-07 14:25:12 +02:00
parent a8e2af0d92
commit da9835bdf0
1 changed files with 3 additions and 1 deletions

4
st.c
View File

@ -2602,8 +2602,10 @@ strhandle(void)
if (p && !strcmp(p, "?"))
osc4_color_response(j);
else if (xsetcolorname(j, p)) {
if (par == 104 && narg <= 1)
if (par == 104 && narg <= 1) {
xloadcols();
return; /* color reset without parameter */
}
fprintf(stderr, "erresc: invalid color j=%d, p=%s\n",
j, p ? p : "(null)");
} else {