fix default color overwriten bug.
parent
be2877cd04
commit
751fb765e4
|
@ -30,7 +30,9 @@ static const char *colorname[] = {
|
||||||
"cyan",
|
"cyan",
|
||||||
"white",
|
"white",
|
||||||
|
|
||||||
/* more colors can be added to use with DefaultXX */
|
[255] = 0,
|
||||||
|
|
||||||
|
/* more colors can be added after 255 to use with DefaultXX */
|
||||||
"#cccccc",
|
"#cccccc",
|
||||||
"#333333",
|
"#333333",
|
||||||
};
|
};
|
||||||
|
@ -39,8 +41,8 @@ static const char *colorname[] = {
|
||||||
foreground, background, cursor, unfocused cursor */
|
foreground, background, cursor, unfocused cursor */
|
||||||
#define DefaultFG 7
|
#define DefaultFG 7
|
||||||
#define DefaultBG 0
|
#define DefaultBG 0
|
||||||
#define DefaultCS 16
|
#define DefaultCS 256
|
||||||
#define DefaultUCS 17
|
#define DefaultUCS 257
|
||||||
|
|
||||||
/* Special keys (change & recompile st.info accordingly)
|
/* Special keys (change & recompile st.info accordingly)
|
||||||
Keep in mind that kpress() in st.c hardcodes some keys.
|
Keep in mind that kpress() in st.c hardcodes some keys.
|
||||||
|
|
41
st.c
41
st.c
|
@ -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 char uchar;
|
||||||
typedef unsigned int uint;
|
typedef unsigned int uint;
|
||||||
typedef unsigned long ulong;
|
typedef unsigned long ulong;
|
||||||
|
typedef unsigned short ushort;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char c[UTF_SIZ]; /* character code */
|
char c[UTF_SIZ]; /* character code */
|
||||||
uchar mode; /* attribute flags */
|
uchar mode; /* attribute flags */
|
||||||
uchar fg; /* foreground */
|
ushort fg; /* foreground */
|
||||||
uchar bg; /* background */
|
ushort bg; /* background */
|
||||||
uchar state; /* state flags */
|
uchar state; /* state flags */
|
||||||
} Glyph;
|
} Glyph;
|
||||||
|
|
||||||
typedef Glyph* Line;
|
typedef Glyph* Line;
|
||||||
|
@ -154,18 +155,6 @@ typedef struct {
|
||||||
char s[ESC_BUF_SIZ];
|
char s[ESC_BUF_SIZ];
|
||||||
} Key;
|
} 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... */
|
/* TODO: use better name for vars... */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -181,6 +170,19 @@ typedef struct {
|
||||||
|
|
||||||
#include "config.h"
|
#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 die(const char*, ...);
|
||||||
static void draw(void);
|
static void draw(void);
|
||||||
static void drawregion(int, int, int, int);
|
static void drawregion(int, int, int, int);
|
||||||
|
@ -1583,16 +1585,19 @@ xloadcols(void) {
|
||||||
XColor color;
|
XColor color;
|
||||||
ulong white = WhitePixel(xw.dpy, xw.scr);
|
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++) {
|
for(i = 0; i < LEN(colorname); i++) {
|
||||||
|
if(!colorname[i])
|
||||||
|
continue;
|
||||||
if(!XAllocNamedColor(xw.dpy, xw.cmap, colorname[i], &color, &color)) {
|
if(!XAllocNamedColor(xw.dpy, xw.cmap, colorname[i], &color, &color)) {
|
||||||
dc.col[i] = white;
|
dc.col[i] = white;
|
||||||
fprintf(stderr, "Could not allocate color '%s'\n", colorname[i]);
|
fprintf(stderr, "Could not allocate color '%s'\n", colorname[i]);
|
||||||
} else
|
} else
|
||||||
dc.col[i] = color.pixel;
|
dc.col[i] = color.pixel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* same colors as xterm */
|
/* load colors [16-255] ; same colors as xterm */
|
||||||
for(r = 0; r < 6; r++)
|
for(i = 16, r = 0; r < 6; r++)
|
||||||
for(g = 0; g < 6; g++)
|
for(g = 0; g < 6; g++)
|
||||||
for(b = 0; b < 6; b++) {
|
for(b = 0; b < 6; b++) {
|
||||||
color.red = r == 0 ? 0 : 0x3737 + 0x2828 * r;
|
color.red = r == 0 ? 0 : 0x3737 + 0x2828 * r;
|
||||||
|
|
Reference in New Issue