Fixed OSC color reset without parameter->resets all colors - st - personal variant of st (HTM) git clone https://git.drkhsh.at/st.git (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 7e8050cc621f27002eaf1be8114dee2497beff91 (DIR) parent e5e959835b195c023d1f685ef4dbbcfc3b5120b2 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org> Date: Sun, 5 Feb 2023 13:29:35 +0100 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' Diffstat: M st.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- (DIR) diff --git a/st.c b/st.c @@ -1932,8 +1932,10 @@ strhandle(void) if (p && !strcmp(p, "?")) { osc_color_response(j, 0, 1); } 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 {