Introduction
Introduction Statistics Contact Development Disclaimer Help
tfix default color overwriten bug. - st - [fork] customized build of st, the si…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit 751fb765e4f26ce1500b4e8ee9f4cd5b6039b495
parent be2877cd042eaf5d0f7dda102f526357aa577232
Author: AurĂ©lien Aptel <[email protected]>
Date: Thu, 16 Feb 2012 00:10:32 +0100
fix default color overwriten bug.
Diffstat:
M config.def.h | 8 +++++---
M st.c | 41 +++++++++++++++++------------…
2 files changed, 28 insertions(+), 21 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -30,7 +30,9 @@ static const char *colorname[] = {
"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",
};
t@@ -39,8 +41,8 @@ static const char *colorname[] = {
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.
diff --git a/st.c b/st.c
t@@ -83,13 +83,14 @@ enum { B0=1, B1=2, B2=4, B3=8, B4=16, B5=32, B6=64, B7=128…
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;
t@@ -154,18 +155,6 @@ typedef struct {
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 {
t@@ -181,6 +170,19 @@ typedef struct {
#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);
static void drawregion(int, int, int, int);
t@@ -1583,16 +1585,19 @@ xloadcols(void) {
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, &c…
dc.col[i] = white;
fprintf(stderr, "Could not allocate color '%s'\n", col…
} 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;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.