thandle dim/bright colors. - st - [fork] customized build of st, the simple ter… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 33558ca042357ee7387b7c0ba9574af1106c4037 | |
parent 6de1ba6e7437919a137dfc5b925f5504085f4311 | |
Author: Aurélien Aptel <[email protected]> | |
Date: Wed, 15 Feb 2012 19:10:31 +0100 | |
handle dim/bright colors. | |
Diffstat: | |
M st.c | 35 +++++++++++++++--------------… | |
1 file changed, 17 insertions(+), 18 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -1341,14 +1341,8 @@ csihandle(void) { | |
void | |
csidump(void) { | |
- int i; | |
- printf("ESC [ %s", escseq.priv ? "? " : ""); | |
- if(escseq.narg) | |
- for(i = 0; i < escseq.narg; i++) | |
- printf("%d ", escseq.arg[i]); | |
- if(escseq.mode) | |
- putchar(escseq.mode); | |
- putchar('\n'); | |
+ fwrite("\033[", 1, 2, stdout); | |
+ fwrite(escseq.buf, 1, escseq.len, stdout); | |
} | |
void | |
t@@ -1761,23 +1755,29 @@ xinit(void) { | |
void | |
xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | |
- ulong xfg = dc.col[base.fg], xbg = dc.col[base.bg], temp; | |
+ int fg = base.fg, bg = base.bg, temp; | |
int winx = x*xw.cw, winy = y*xw.ch + dc.font.ascent, width = charlen*x… | |
+ XFontSet fontset = dc.font.set; | |
int i; | |
/* only switch default fg/bg if term is in RV mode */ | |
if(IS_SET(MODE_REVERSE)) { | |
- if(base.fg == DefaultFG) | |
- xfg = dc.col[DefaultBG]; | |
- if(base.bg == DefaultBG) | |
- xbg = dc.col[DefaultFG]; | |
+ if(fg == DefaultFG) | |
+ fg = DefaultBG; | |
+ if(bg == DefaultBG) | |
+ bg = DefaultFG; | |
} | |
if(base.mode & ATTR_REVERSE) | |
- temp = xfg, xfg = xbg, xbg = temp; | |
+ temp = fg, fg = bg, bg = temp; | |
+ | |
+ if(base.mode & ATTR_BOLD) { | |
+ fg += 8; | |
+ fontset = dc.bfont.set; | |
+ } | |
- XSetBackground(xw.dpy, dc.gc, xbg); | |
- XSetForeground(xw.dpy, dc.gc, xfg); | |
+ XSetBackground(xw.dpy, dc.gc, dc.col[bg]); | |
+ XSetForeground(xw.dpy, dc.gc, dc.col[fg]); | |
if(base.mode & ATTR_GFX) { | |
for(i = 0; i < bytelen; i++) { | |
t@@ -1789,8 +1789,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i… | |
} | |
} | |
- XmbDrawImageString(xw.dpy, xw.buf, base.mode & ATTR_BOLD ? dc.bfont.se… | |
- dc.gc, winx, winy, s, bytelen); | |
+ XmbDrawImageString(xw.dpy, xw.buf, fontset, dc.gc, winx, winy, s, byte… | |
if(base.mode & ATTR_UNDERLINE) | |
XDrawLine(xw.dpy, xw.buf, dc.gc, winx, winy+1, winx+width-1, w… |