all repos — st @ 751fb765e4f26ce1500b4e8ee9f4cd5b6039b495

st (suckless terminal) config

fix default color overwriten bug.
Aurélien Aptel aurelien.aptel@gmail.com
commit

751fb765e4f26ce1500b4e8ee9f4cd5b6039b495

parent

be2877cd042eaf5d0f7dda102f526357aa577232

2 files changed, 28 insertions(+), 21 deletions(-)

jump to
M config.def.hconfig.def.h

@@ -30,7 +30,9 @@ "magenta",

"cyan", "white", - /* more colors can be added to use with DefaultXX */ + [255] = 0, + + /* more colors can be added after 255 to use with DefaultXX */ "#cccccc", "#333333", };

@@ -39,8 +41,8 @@ /* Default colors (colorname index)

foreground, background, cursor, unfocused cursor */ #define DefaultFG 7 #define DefaultBG 0 -#define DefaultCS 16 -#define DefaultUCS 17 +#define DefaultCS 256 +#define DefaultUCS 257 /* Special keys (change & recompile st.info accordingly) Keep in mind that kpress() in st.c hardcodes some keys.
M st.cst.c

@@ -83,13 +83,14 @@

typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned long ulong; +typedef unsigned short ushort; typedef struct { char c[UTF_SIZ]; /* character code */ uchar mode; /* attribute flags */ - uchar fg; /* foreground */ - uchar bg; /* background */ - uchar state; /* state flags */ + ushort fg; /* foreground */ + ushort bg; /* background */ + uchar state; /* state flags */ } Glyph; typedef Glyph* Line;

@@ -154,18 +155,6 @@ uint mask;

char s[ESC_BUF_SIZ]; } Key; -/* Drawing Context */ -typedef struct { - ulong col[256]; - GC gc; - struct { - int ascent; - int descent; - short lbearing; - short rbearing; - XFontSet set; - } font, bfont; -} DC; /* TODO: use better name for vars... */ typedef struct {

@@ -180,6 +169,19 @@ struct timeval tclick2;

} Selection; #include "config.h" + +/* Drawing Context */ +typedef struct { + ulong col[LEN(colorname) < 256 ? 256 : LEN(colorname)]; + GC gc; + struct { + int ascent; + int descent; + short lbearing; + short rbearing; + XFontSet set; + } font, bfont; +} DC; static void die(const char*, ...); static void draw(void);

@@ -1583,16 +1585,19 @@ int i, r, g, b;

XColor color; ulong white = WhitePixel(xw.dpy, xw.scr); + /* load colors [0-15] colors and [256-LEN(colorname)[ (config.h) */ for(i = 0; i < LEN(colorname); i++) { + if(!colorname[i]) + continue; if(!XAllocNamedColor(xw.dpy, xw.cmap, colorname[i], &color, &color)) { dc.col[i] = white; fprintf(stderr, "Could not allocate color '%s'\n", colorname[i]); } else dc.col[i] = color.pixel; } - - /* same colors as xterm */ - for(r = 0; r < 6; r++) + + /* load colors [16-255] ; same colors as xterm */ + for(i = 16, r = 0; r < 6; r++) for(g = 0; g < 6; g++) for(b = 0; b < 6; b++) { color.red = r == 0 ? 0 : 0x3737 + 0x2828 * r;