# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 323d38da20c8a1d295ab1dbc0fc7ce947ef824e1
    parent 416dd257274fd334be082b1138338adffa3e2d5e
    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:
    Mst.c | 6+-----
    Mst.h | 1-
    Mwin.h | 1+
    Mx.c | 11+++++++++++

    4 files changed, 13 insertions(+), 6 deletions(-)
    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;
    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;
    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);
    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)
     {