Move zoom functions into x.c - 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 d5275012b45149a2a6e94679609aacca478221ad
 (DIR) parent 3518dba2a5fb57f601b74528ddeb67f173e4024b
 (HTM) Author: Devin J. Pohly <djpohly@gmail.com>
       Date:   Tue, 10 Oct 2017 11:30:36 -0500
       
       Move zoom functions into x.c
       
       This makes x(un)loadfonts internal to x.c.  Needed to reorder includes
       and move a typedef to keep the compiler happy.
       
       Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
       
       Diffstat:
         M st.c                                |      36 +------------------------------
         M st.h                                |       1 +
         M win.h                               |       7 +++----
         M x.c                                 |      35 ++++++++++++++++++++++++++++++-
       
       4 files changed, 39 insertions(+), 40 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -31,8 +31,8 @@
        #define Glyph Glyph_
        #define Font Font_
        
       -#include "win.h"
        #include "st.h"
       +#include "win.h"
        
        #if   defined(__linux)
         #include <pty.h>
       @@ -128,9 +128,6 @@ static void clipcopy(const Arg *);
        static void clippaste(const Arg *);
        static void numlock(const Arg *);
        static void selpaste(const Arg *);
       -static void zoom(const Arg *);
       -static void zoomabs(const Arg *);
       -static void zoomreset(const Arg *);
        static void printsel(const Arg *);
        static void printscreen(const Arg *) ;
        static void iso14755(const Arg *);
       @@ -2574,37 +2571,6 @@ tresize(int col, int row)
        }
        
        void
       -zoom(const Arg *arg)
       -{
       -        Arg larg;
       -
       -        larg.f = usedfontsize + arg->f;
       -        zoomabs(&larg);
       -}
       -
       -void
       -zoomabs(const Arg *arg)
       -{
       -        xunloadfonts();
       -        xloadfonts(usedfont, arg->f);
       -        cresize(0, 0);
       -        ttyresize();
       -        redraw();
       -        xhints();
       -}
       -
       -void
       -zoomreset(const Arg *arg)
       -{
       -        Arg larg;
       -
       -        if (defaultfontsize > 0) {
       -                larg.f = defaultfontsize;
       -                zoomabs(&larg);
       -        }
       -}
       -
       -void
        resettitle(void)
        {
                xsettitle(opt_title ? opt_title : "st");
 (DIR) diff --git a/st.h b/st.h
       @@ -100,6 +100,7 @@ typedef struct {
        } Glyph;
        
        typedef Glyph *Line;
       +typedef XftGlyphFontSpec GlyphFontSpec;
        
        typedef struct {
                Glyph attr; /* current char attributes */
 (DIR) diff --git a/win.h b/win.h
       @@ -5,8 +5,6 @@
        #define XK_NO_MOD     0
        #define XK_SWITCH_MOD (1<<13)
        
       -typedef XftGlyphFontSpec GlyphFontSpec;
       -
        void draw(void);
        void drawregion(int, int, int, int);
        
       @@ -16,11 +14,12 @@ void xclippaste(void);
        void xhints(void);
        void xloadcols(void);
        int xsetcolorname(int, const char *);
       -void xloadfonts(char *, double);
        void xsettitle(char *);
        void xsetpointermotion(int);
        void xseturgency(int);
       -void xunloadfonts(void);
        void xresize(int, int);
        void xselpaste(void);
        void xsetsel(char *, Time);
       +void zoom(const Arg *);
       +void zoomabs(const Arg *);
       +void zoomreset(const Arg *);
 (DIR) diff --git a/x.c b/x.c
       @@ -21,8 +21,8 @@ static char *argv0;
        #define Glyph Glyph_
        #define Font Font_
        
       -#include "win.h"
        #include "st.h"
       +#include "win.h"
        
        /* XEMBED messages */
        #define XEMBED_FOCUS_IN  4
       @@ -90,7 +90,9 @@ static void xdrawcursor(void);
        static int xgeommasktogravity(int);
        static void xinit(void);
        static int xloadfont(Font *, FcPattern *);
       +static void xloadfonts(char *, double);
        static void xunloadfont(Font *);
       +static void xunloadfonts(void);
        static void xsetenv(void);
        
        static void expose(XEvent *);
       @@ -165,6 +167,37 @@ static Fontcache frc[16];
        static int frclen = 0;
        
        void
       +zoom(const Arg *arg)
       +{
       +        Arg larg;
       +
       +        larg.f = usedfontsize + arg->f;
       +        zoomabs(&larg);
       +}
       +
       +void
       +zoomabs(const Arg *arg)
       +{
       +        xunloadfonts();
       +        xloadfonts(usedfont, arg->f);
       +        cresize(0, 0);
       +        ttyresize();
       +        redraw();
       +        xhints();
       +}
       +
       +void
       +zoomreset(const Arg *arg)
       +{
       +        Arg larg;
       +
       +        if (defaultfontsize > 0) {
       +                larg.f = defaultfontsize;
       +                zoomabs(&larg);
       +        }
       +}
       +
       +void
        getbuttoninfo(XEvent *e)
        {
                int type;