Xinqi Bao's Git
projects
/
st.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
be2877c
)
fix default color overwriten bug.
author
Aurélien Aptel <
[email protected]
>
Wed, 15 Feb 2012 23:10:32 +0000
(
00:10
+0100)
committer
Aurélien Aptel <
[email protected]
>
Wed, 15 Feb 2012 23:10:32 +0000
(
00:10
+0100)
config.def.h
diff
|
blob
|
history
st.c
diff
|
blob
|
history
diff --git
a/config.def.h
b/config.def.h
index
169bcdd
..
047b5d1
100644
(file)
--- a/
config.def.h
+++ b/
config.def.h
@@
-30,7
+30,9
@@
static const char *colorname[] = {
"cyan",
"white",
"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",
};
"#cccccc",
"#333333",
};
@@
-39,8
+41,8
@@
static const char *colorname[] = {
foreground, background, cursor, unfocused cursor */
#define DefaultFG 7
#define DefaultBG 0
foreground, background, cursor, unfocused cursor */
#define DefaultFG 7
#define DefaultBG 0
-#define DefaultCS
1
6
-#define DefaultUCS
1
7
+#define DefaultCS
25
6
+#define DefaultUCS
25
7
/* Special keys (change & recompile st.info accordingly)
Keep in mind that kpress() in st.c hardcodes some keys.
/* 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
index
a86e0f9
..
e6a5e4e
100644
(file)
--- a/
st.c
+++ b/
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 int uint;
typedef unsigned long ulong;
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 */
typedef struct {
char c[UTF_SIZ]; /* character code */
uchar mode; /* attribute flags */
- u
char fg; /* foreground
*/
- u
char bg; /* background
*/
- uchar state; /* state flags
*/
+ u
short fg; /* foreground
*/
+ u
short bg; /* background
*/
+ uchar state; /* state flags */
} Glyph;
typedef Glyph* Line;
} Glyph;
typedef Glyph* Line;
@@
-154,18
+155,6
@@
typedef struct {
char s[ESC_BUF_SIZ];
} Key;
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 {
/* TODO: use better name for vars... */
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 draw(void);
static void drawregion(int, int, int, int);
static void die(const char*, ...);
static void draw(void);
static void drawregion(int, int, int, int);
@@
-1583,16
+1585,19
@@
xloadcols(void) {
XColor color;
ulong white = WhitePixel(xw.dpy, xw.scr);
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++) {
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;
}
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;
for(g = 0; g < 6; g++)
for(b = 0; b < 6; b++) {
color.red = r == 0 ? 0 : 0x3737 + 0x2828 * r;