tImplementing italic-bold. This will require an increase of the avgWdth. - st -… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit a62789788c87425fd90209bad15b324f8dee84da | |
parent b1563526561a913dc2a69ee78eb5aaa09cc98978 | |
Author: Christoph Lohmann <[email protected]> | |
Date: Fri, 14 Sep 2012 19:46:07 +0200 | |
Implementing italic-bold. This will require an increase of the avgWdth. | |
Diffstat: | |
M config.def.h | 7 ++++--- | |
M st.c | 12 +++++++++--- | |
2 files changed, 13 insertions(+), 6 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -1,8 +1,9 @@ | |
-#define FONT "-*-*-medium-r-*-*-*-120-75-75-*-60-*-*" | |
-#define BOLDFONT "-*-*-bold-r-*-*-*-120-75-75-*-60-*-*" | |
+#define FONT "-*-*-medium-r-*-*-*-120-75-75-*-70-*-*" | |
+#define BOLDFONT "-*-*-bold-r-*-*-*-120-75-75-*-70-*-*" | |
/* If italic is not availbel, fall back to bold. */ | |
-#define ITALICFONT "-*-*-medium-o-*-*-*-120-75-75-*-60-*-*," BOLDFONT | |
+#define ITALICFONT "-*-*-medium-o-*-*-*-120-75-75-*-70-*-*," BOLDFONT | |
+#define ITALICBOLDFONT "-*-*-bold-o-*-*-*-120-75-75-*-70-*-*," BOLDFONT | |
/* Space in pixels around the terminal buffer */ | |
#define BORDER 2 | |
diff --git a/st.c b/st.c | |
t@@ -240,7 +240,7 @@ typedef struct { | |
short lbearing; | |
short rbearing; | |
XFontSet set; | |
- } font, bfont, ifont; | |
+ } font, bfont, ifont, ibfont; | |
} DC; | |
static void die(const char*, ...); | |
t@@ -1945,13 +1945,15 @@ xgetfontinfo(XFontSet set, int *ascent, int *descent, … | |
} | |
void | |
-initfonts(char *fontstr, char *bfontstr, char *ifontstr) { | |
+initfonts(char *fontstr, char *bfontstr, char *ifontstr, char *ibfontstr) { | |
if((dc.font.set = xinitfont(fontstr)) == NULL) | |
die("Can't load font %s\n", fontstr); | |
if((dc.bfont.set = xinitfont(bfontstr)) == NULL) | |
die("Can't load bfont %s\n", bfontstr); | |
if((dc.ifont.set = xinitfont(ifontstr)) == NULL) | |
die("Can't load ifont %s\n", ifontstr); | |
+ if((dc.ibfont.set = xinitfont(ibfontstr)) == NULL) | |
+ die("Can't load ibfont %s\n", ibfontstr); | |
xgetfontinfo(dc.font.set, &dc.font.ascent, &dc.font.descent, | |
&dc.font.lbearing, &dc.font.rbearing); | |
t@@ -1959,6 +1961,8 @@ initfonts(char *fontstr, char *bfontstr, char *ifontstr)… | |
&dc.bfont.lbearing, &dc.bfont.rbearing); | |
xgetfontinfo(dc.ifont.set, &dc.ifont.ascent, &dc.ifont.descent, | |
&dc.ifont.lbearing, &dc.ifont.rbearing); | |
+ xgetfontinfo(dc.ibfont.set, &dc.ibfont.ascent, &dc.ibfont.descent, | |
+ &dc.ibfont.lbearing, &dc.ibfont.rbearing); | |
} | |
void | |
t@@ -1973,7 +1977,7 @@ xinit(void) { | |
xw.scr = XDefaultScreen(xw.dpy); | |
/* font */ | |
- initfonts(FONT, BOLDFONT, ITALICFONT); | |
+ initfonts(FONT, BOLDFONT, ITALICFONT, ITALICBOLDFONT); | |
/* XXX: Assuming same size for bold font */ | |
xw.cw = dc.font.rbearing - dc.font.lbearing; | |
t@@ -2068,6 +2072,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i… | |
if(base.mode & ATTR_ITALIC) | |
fontset = dc.ifont.set; | |
+ if(base.mode & (ATTR_ITALIC|ATTR_ITALIC)) | |
+ fontset = dc.ibfont.set; | |
XSetBackground(xw.dpy, dc.gc, dc.col[bg]); | |
XSetForeground(xw.dpy, dc.gc, dc.col[fg]); |