From 0d2f2784cdc34d236a059b93d4d29be48cf216a3 Mon Sep 17 00:00:00 2001 From: ketmar Date: Tue, 1 May 2012 20:39:39 +0300 Subject: [PATCH] sterm now will use 'fallback' system fixed font if it can't load font from config --- .sterm.rc | 6 +++--- src/sterm.c | 24 +++++++++++++----------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/.sterm.rc b/.sterm.rc index 5f24a11..9ccefc5 100644 --- a/.sterm.rc +++ b/.sterm.rc @@ -17,9 +17,9 @@ ptrblank 1500 #tabcount 2 #tabposition 1 -fontnorm "-*-terminus-bold-*-*-*-20-*-*-*-*-*-koi8-u" -fontbold "-*-terminus-bold-*-*-*-20-*-*-*-*-*-koi8-u" -fonttab "-*-andale mono-*-*-*-*-17-*-*-*-*-*-koi8-u" +fontnorm "-*-terminus-bold-*-*-*-20-*-*-*-*-*-*-*" +fontbold "-*-terminus-bold-*-*-*-20-*-*-*-*-*-*-*" +fonttab "-*-andale mono-*-*-*-*-17-*-*-*-*-*-*-*" tabsize 8 diff --git a/src/sterm.c b/src/sterm.c index 5a2286d..4b7db6a 100644 --- a/src/sterm.c +++ b/src/sterm.c @@ -69,13 +69,9 @@ //////////////////////////////////////////////////////////////////////////////// -#define FONT "-*-liberation mono-medium-*-*-*-17-*-*-*-*-*-koi8-u" -#define BOLDFONT "-*-liberation mono-medium-*-*-*-17-*-*-*-*-*-koi8-u" -#define FONTTAB "-*-helvetica-*-*-*-*-12-*-*-*-*-*-*-*" -/* -#define FONT "-*-terminus-bold-*-*-*-20-*-*-*-*-*-koi8-u" -#define BOLDFONT "-*-terminus-bold-*-*-*-20-*-*-*-*-*-koi8-u" -*/ +#define FONT "-*-fixed-medium-r-normal-*-18-*-*-*-*-*-*-*" +#define FONTBOLD "-*-fixed-bold-r-normal-*-18-*-*-*-*-*-*-*" +#define FONTTAB "-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*" /* Default shell to use if SHELL is not set in the env */ @@ -3421,13 +3417,19 @@ static void xgetfontinfo (XFontSet set, int *ascent, int *descent, short *lbeari static void initfonts (const char *fontstr, const char *bfontstr, const char *tabfont) { - if ((dc.font[0].set = xinitfont(fontstr)) == NULL) die("can't load font %s", fontstr); + if ((dc.font[0].set = xinitfont(fontstr)) == NULL) { + if ((dc.font[0].set = xinitfont(FONT)) == NULL) die("can't load font %s", fontstr); + } xgetfontinfo(dc.font[0].set, &dc.font[0].ascent, &dc.font[0].descent, &dc.font[0].lbearing, &dc.font[0].rbearing, &dc.font[0].fid); // - if ((dc.font[1].set = xinitfont(bfontstr)) == NULL) die("can't load font %s", bfontstr); + if ((dc.font[1].set = xinitfont(bfontstr)) == NULL) { + if ((dc.font[1].set = xinitfont(FONTBOLD)) == NULL) die("can't load font %s", bfontstr); + } xgetfontinfo(dc.font[1].set, &dc.font[1].ascent, &dc.font[1].descent, &dc.font[1].lbearing, &dc.font[1].rbearing, &dc.font[1].fid); // - if ((dc.font[2].set = xinitfont(tabfont)) == NULL) die("can't load font %s", tabfont); + if ((dc.font[2].set = xinitfont(tabfont)) == NULL) { + if ((dc.font[2].set = xinitfont(FONTTAB)) == NULL) die("can't load font %s", tabfont); + } xgetfontinfo(dc.font[2].set, &dc.font[2].ascent, &dc.font[2].descent, &dc.font[2].lbearing, &dc.font[2].rbearing, &dc.font[2].fid); } @@ -4541,7 +4543,7 @@ static void initDefaultOptions (void) { opt_class = strdup("sterm"); opt_term = strdup(TNAME); opt_fontnorm = strdup(FONT); - opt_fontbold = strdup(BOLDFONT); + opt_fontbold = strdup(FONTBOLD); opt_fonttab = strdup(FONTTAB); opt_shell = strdup(SHELL); // -- 2.11.4.GIT