+void
+initfont(const char *fontstr) {
+ char *def, **missing = NULL;
+ int i, n;
+
+ if(!fontstr || fontstr[0] == '\0')
+ eprint("drawtext: cannot load font: '%s'\n", fontstr);
+ dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);
+ if(missing)
+ XFreeStringList(missing);
+ if(dc.font.set) {
+ XFontStruct **xfonts;
+ char **font_names;
+ dc.font.ascent = dc.font.descent = 0;
+ n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names);
+ for(i = 0; i < n; i++) {
+ dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent);
+ dc.font.descent = MAX(dc.font.descent, (*xfonts)->descent);
+ xfonts++;
+ }
+ }
+ else {
+ if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
+ && !(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
+ eprint("drawtext: cannot load font: '%s'\n", fontstr);
+ dc.font.ascent = dc.font.xfont->ascent;
+ dc.font.descent = dc.font.xfont->descent;
+ }
+ dc.font.height = dc.font.ascent + dc.font.descent;
+}
+
+int