Lazy font unloading too. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 8f47c4a4dea7272d72833d2ae26eacc3896d8f5c
 (DIR) parent 62502a88e94dd908fdd4418899afdd09a4de3bea
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sat, 11 May 2013 21:59:55 +0200
       
       Lazy font unloading too.
       
       Diffstat:
         M st.c                                |      25 +++++++++++++------------
       
       1 file changed, 13 insertions(+), 12 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -369,6 +369,7 @@ static void xresettitle(void);
        static void xseturgency(int);
        static void xsetsel(char*);
        static void xtermclear(int, int, int, int);
       +static void xunloadfont(Font *f);
        static void xunloadfonts(void);
        static void xresize(int, int);
        
       @@ -2734,6 +2735,14 @@ xloadfontset(Font *f) {
        }
        
        void
       +xunloadfont(Font *f) {
       +        XftFontClose(xw.dpy, f->match);
       +        FcPatternDestroy(f->pattern);
       +        if(f->set)
       +                FcFontSetDestroy(f->set);
       +}
       +
       +void
        xunloadfonts(void) {
                int i, ip;
        
       @@ -2749,18 +2758,10 @@ xunloadfonts(void) {
                frccur = -1;
                frclen = 0;
        
       -        XftFontClose(xw.dpy, dc.font.match);
       -        FcPatternDestroy(dc.font.pattern);
       -        FcFontSetDestroy(dc.font.set);
       -        XftFontClose(xw.dpy, dc.bfont.match);
       -        FcPatternDestroy(dc.bfont.pattern);
       -        FcFontSetDestroy(dc.bfont.set);
       -        XftFontClose(xw.dpy, dc.ifont.match);
       -        FcPatternDestroy(dc.ifont.pattern);
       -        FcFontSetDestroy(dc.ifont.set);
       -        XftFontClose(xw.dpy, dc.ibfont.match);
       -        FcPatternDestroy(dc.ibfont.pattern);
       -        FcFontSetDestroy(dc.ibfont.set);
       +        xunloadfont(&dc.font);
       +        xunloadfont(&dc.bfont);
       +        xunloadfont(&dc.ifont);
       +        xunloadfont(&dc.ibfont);
        }
        
        void