Make win variable internal to 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 323d38da20c8a1d295ab1dbc0fc7ce947ef824e1
 (DIR) parent 416dd257274fd334be082b1138338adffa3e2d5e
 (HTM) Author: Devin J. Pohly <djpohly@gmail.com>
       Date:   Mon,  6 Nov 2017 17:57:45 -0600
       
       Make win variable internal to x.c
       
       There was only a single reference to the `win` variable in st.c, so
       exporting that to x.c allows us to rid ourselves of another extern.
       
       Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
       
       Diffstat:
         M st.c                                |       6 +-----
         M st.h                                |       1 -
         M win.h                               |       1 +
         M x.c                                 |      11 +++++++++++
       
       4 files changed, 13 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -170,7 +170,6 @@ static char *base64dec(const char *);
        static ssize_t xwrite(int, const char *, size_t);
        
        /* Globals */
       -TermWindow win;
        Term term;
        Selection sel;
        int cmdfd;
       @@ -1683,11 +1682,8 @@ csihandle(void)
                case ' ':
                        switch (csiescseq.mode[1]) {
                        case 'q': /* DECSCUSR -- Set Cursor Style */
       -                        DEFAULT(csiescseq.arg[0], 1);
       -                        if (!BETWEEN(csiescseq.arg[0], 0, 6)) {
       +                        if (xsetcursor(csiescseq.arg[0]))
                                        goto unknown;
       -                        }
       -                        win.cursor = csiescseq.arg[0];
                                break;
                        default:
                                goto unknown;
 (DIR) diff --git a/st.h b/st.h
       @@ -201,7 +201,6 @@ void *xrealloc(void *, size_t);
        char *xstrdup(char *);
        
        /* Globals */
       -extern TermWindow win;
        extern Term term;
        extern Selection sel;
        extern int cmdfd;
 (DIR) diff --git a/win.h b/win.h
       @@ -14,5 +14,6 @@ void xhints(void);
        void xloadcols(void);
        int xsetcolorname(int, const char *);
        void xsettitle(char *);
       +int xsetcursor(int);
        void xsetpointermotion(int);
        void xsetsel(char *, Time);
 (DIR) diff --git a/x.c b/x.c
       @@ -187,6 +187,7 @@ static void (*handler[LASTEvent])(XEvent *) = {
        static DC dc;
        static XWindow xw;
        static XSelection xsel;
       +static TermWindow win;
        
        enum window_state {
                WIN_VISIBLE = 1,
       @@ -1615,6 +1616,16 @@ xsetpointermotion(int set)
                XChangeWindowAttributes(xw.dpy, xw.win, CWEventMask, &xw.attrs);
        }
        
       +int
       +xsetcursor(int cursor)
       +{
       +        DEFAULT(cursor, 1);
       +        if (!BETWEEN(cursor, 0, 6))
       +                return 1;
       +        win.cursor = cursor;
       +        return 0;
       +}
       +
        void
        xseturgency(int add)
        {