diff -wbBur st-0.2.1/st.c st-0.2.1.fonts/st.c --- st-0.2.1/st.c 2012-02-16 04:05:14.000000000 +0400 +++ st-0.2.1.fonts/st.c 2012-05-16 21:01:11.422686235 +0400 @@ -35,7 +35,7 @@ #define USAGE \ "st " VERSION " (c) 2010-2012 st engineers\n" \ - "usage: st [-t title] [-c class] [-w windowid] [-v] [-e command...]\n" + "usage: st [-t title] [-c class] [-w windowid] [-v] [-f font] [-F boldfont] [-e command...]\n" /* XEMBED messages */ #define XEMBED_FOCUS_IN 4 @@ -330,6 +330,8 @@ static char *opt_title = NULL; static char *opt_embed = NULL; static char *opt_class = NULL; +static char *opt_font = FONT; +static char *opt_boldfont = BOLDFONT; int utf8decode(char *s, long *u) { @@ -1735,7 +1737,7 @@ initfonts(char *fontstr, char *bfontstr) { if((dc.font.set = xinitfont(fontstr)) == NULL || (dc.bfont.set = xinitfont(bfontstr)) == NULL) - die("Can't load font %s\n", dc.font.set ? BOLDFONT : FONT); + die("Can't load font %s\n", dc.font.set ? opt_boldfont : opt_font); xgetfontinfo(dc.font.set, &dc.font.ascent, &dc.font.descent, &dc.font.lbearing, &dc.font.rbearing); xgetfontinfo(dc.bfont.set, &dc.bfont.ascent, &dc.bfont.descent, @@ -1753,7 +1755,7 @@ xw.scr = XDefaultScreen(xw.dpy); /* font */ - initfonts(FONT, BOLDFONT); + initfonts(opt_font, opt_boldfont); /* XXX: Assuming same size for bold font */ xw.cw = dc.font.rbearing - dc.font.lbearing; @@ -2151,6 +2153,12 @@ case 'w': if(++i < argc) opt_embed = argv[i]; break; + case 'f': + if(++i < argc) opt_font = argv[i]; + break; + case 'F': + if(++i < argc) opt_boldfont = argv[i]; + break; case 'e': /* eat every remaining arguments */ if(++i < argc) opt_cmd = &argv[i];