all repos — st @ aaee0e8b28a353c215b6d1c8fc06d20038d7b426

st (suckless terminal) config

Reload colors in reset

Colors definition can be changed using a OSC sequence, so
we have to reload them if we want be sure all the colors
are the correct.

Could be desirable free the colors allocated due to rgb
colors and inverse colors (XftColorAllocValues in xdraws),
but it is impossible due we use the same structure for all
of them.
Roberto E. Vargas Caballero k0ga@shike2.com
commit

aaee0e8b28a353c215b6d1c8fc06d20038d7b426

parent

8dde8cde41caa311718d2b990ea3356272ee25ee

1 files changed, 9 insertions(+), 0 deletions(-)

jump to
M st.cst.c

@@ -2428,6 +2428,7 @@ case 'c': /* RIS -- Reset to inital state */

treset(); term.esc = 0; xresettitle(); + xloadcols(); break; case '=': /* DECPAM -- Application keypad */ term.mode |= MODE_APPKEYPAD;

@@ -2589,6 +2590,13 @@ void

xloadcols(void) { int i, r, g, b; XRenderColor color = { .alpha = 0xffff }; + static bool loaded; + Colour *cp; + + if(loaded) { + for (cp = dc.col; cp < dc.col + LEN(dc.col); ++cp) + XftColorFree(xw.dpy, xw.vis, xw.cmap, cp); + } /* load colors [0-15] colors and [256-LEN(colorname)[ (config.h) */ for(i = 0; i < LEN(colorname); i++) {

@@ -2621,6 +2629,7 @@ &dc.col[i])) {

die("Could not allocate color %d\n", i); } } + loaded = true; } int