Introduction
Introduction Statistics Contact Development Disclaimer Help
tLazy fontset loading. - st - [fork] customized build of st, the simple terminal
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit 62502a88e94dd908fdd4418899afdd09a4de3bea
parent 678eff6e1882a888deda5e4e429df42c39b604fe
Author: Christoph Lohmann <[email protected]>
Date: Sat, 11 May 2013 08:54:26 +0200
Lazy fontset loading.
Thanks Johannes Hofmann <[email protected]>!
Diffstat:
M st.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
---
diff --git a/st.c b/st.c
t@@ -363,6 +363,7 @@ static void xloadcols(void);
static int xsetcolorname(int, const char *);
static int xloadfont(Font *, FcPattern *);
static void xloadfonts(char *, int);
+static int xloadfontset(Font *);
static void xsettitle(char *);
static void xresettitle(void);
static void xseturgency(int);
t@@ -2643,16 +2644,12 @@ xloadfont(Font *f, FcPattern *pattern) {
if(!match)
return 1;
- if(!(f->set = FcFontSort(0, match, FcTrue, 0, &result))) {
- FcPatternDestroy(match);
- return 1;
- }
-
if(!(f->match = XftFontOpenPattern(xw.dpy, match))) {
FcPatternDestroy(match);
return 1;
}
+ f->set = NULL;
f->pattern = FcPatternDuplicate(pattern);
f->ascent = f->match->ascent;
t@@ -2727,6 +2724,15 @@ xloadfonts(char *fontstr, int fontsize) {
FcPatternDestroy(pattern);
}
+int
+xloadfontset(Font *f) {
+ FcResult result;
+
+ if(!(f->set = FcFontSort(0, f->pattern, FcTrue, 0, &result)))
+ return 1;
+ return 0;
+}
+
void
xunloadfonts(void) {
int i, ip;
t@@ -2987,7 +2993,6 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, i…
r.width = width;
XftDrawSetClipRectangles(xw.draw, winx, winy, &r, 1);
- fcsets[0] = font->set;
for(xp = winx; bytelen > 0;) {
/*
* Search for the range in the to be printed string of glyphs
t@@ -3045,6 +3050,10 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, …
/* Nothing was found. */
if(i >= frclen) {
+ if(!font->set)
+ xloadfontset(font);
+ fcsets[0] = font->set;
+
/*
* Nothing was found in the cache. Now use
* some dozen of Fontconfig calls to get the
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.