|
@@ -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 */
|
|
|
|
- uchar bg; /* background */
|
|
|
|
- uchar state; /* state flags */
|
|
|
|
|
|
+ ushort fg; /* foreground */
|
|
|
|
+ ushort bg; /* background */
|
|
|
|
+ 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 */
|
|
|
|
- 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(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;
|