# st

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

| Log | Files | Refs | README | LICENSE

    commit 20e0da7f14cc5f30863e0b8014fa223fbaff1e30
    parent 403c57ebb5b3745ff93e49b87e526c49dc59a5b9
    Author: Devin J. Pohly <djpohly@gmail.com>
    Date:   Sat, 24 Feb 2018 17:09:13 -0600

    General cleanup

    Simplifies logic in a couple places and removes a redundant function
    call.

    Signed-off-by: Devin J. Pohly <djpohly@gmail.com>

    Diffstat:
    Mst.c | 1-
    Mx.c | 46+++++++++++++++++++++-------------------------

    2 files changed, 21 insertions(+), 26 deletions(-)
    diff --git a/st.c b/st.c
    @@ -1693,7 +1693,6 @@ csihandle(void)
     		tputtab(csiescseq.arg[0]);
     		break;
     	case 'J': /* ED -- Clear screen */
    -		selclear();
     		switch (csiescseq.arg[0]) {
     		case 0: /* below */
     			tclearregion(term.c.x, term.c.y, term.col-1, term.c.y);
    diff --git a/x.c b/x.c
    @@ -149,8 +149,8 @@ static void xunloadfont(Font *);
     static void xunloadfonts(void);
     static void xsetenv(void);
     static void xseturgency(int);
    -static int x2col(int);
    -static int y2row(int);
    +static int evcol(XEvent *);
    +static int evrow(XEvent *);

     static void expose(XEvent *);
     static void visibility(XEvent *);
    @@ -308,17 +308,17 @@ zoomreset(const Arg *arg)
     }

     int
    -x2col(int x)
    +evcol(XEvent *e)
     {
    -	x -= borderpx;
    +	int x = e->xbutton.x - borderpx;
     	LIMIT(x, 0, win.tw - 1);
     	return x / win.cw;
     }

     int
    -y2row(int y)
    +evrow(XEvent *e)
     {
    -	y -= borderpx;
    +	int y = e->xbutton.y - borderpx;
     	LIMIT(y, 0, win.th - 1);
     	return y / win.ch;
     }
    @@ -335,7 +335,7 @@ mousesel(XEvent *e, int done)
     			break;
     		}
     	}
    -	selextend(x2col(e->xbutton.x), y2row(e->xbutton.y), seltype, done);
    +	selextend(evcol(e), evrow(e), seltype, done);
     	if (done)
     		setsel(getsel(), e->xbutton.time);
     }
    @@ -343,9 +343,8 @@ mousesel(XEvent *e, int done)
     void
     mousereport(XEvent *e)
     {
    -	int x = x2col(e->xbutton.x), y = y2row(e->xbutton.y),
    -	    button = e->xbutton.button, state = e->xbutton.state,
    -	    len;
    +	int len, x = evcol(e), y = evrow(e),
    +	    button = e->xbutton.button, state = e->xbutton.state;
     	char buf[40];
     	static int ox, oy;

    @@ -440,7 +439,7 @@ bpress(XEvent *e)
     		xsel.tclick2 = xsel.tclick1;
     		xsel.tclick1 = now;

    -		selstart(x2col(e->xbutton.x), y2row(e->xbutton.y), snap);
    +		selstart(evcol(e), evrow(e), snap);
     	}
     }

    @@ -464,18 +463,16 @@ selnotify(XEvent *e)
     	ulong nitems, ofs, rem;
     	int format;
     	uchar *data, *last, *repl;
    -	Atom type, incratom, property;
    +	Atom type, incratom, property = None;

     	incratom = XInternAtom(xw.dpy, "INCR", 0);

     	ofs = 0;
    -	if (e->type == SelectionNotify) {
    +	if (e->type == SelectionNotify)
     		property = e->xselection.property;
    -	} else if(e->type == PropertyNotify) {
    +	else if (e->type == PropertyNotify)
     		property = e->xproperty.atom;
    -	} else {
    -		return;
    -	}
    +
     	if (property == None)
     		return;

    @@ -625,7 +622,7 @@ setsel(char *str, Time t)

     	XSetSelectionOwner(xw.dpy, XA_PRIMARY, xw.win, t);
     	if (XGetSelectionOwner(xw.dpy, XA_PRIMARY) != xw.win)
    -		selclear_(NULL);
    +		selclear();
     }

     void
    @@ -1407,12 +1404,13 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
     		og.mode ^= ATTR_REVERSE;
     	xdrawglyph(og, ox, oy);

    +	if (IS_SET(MODE_HIDE))
    +		return;
    +
     	/*
     	 * Select the right color for the right mode.
     	 */
     	g.mode &= ATTR_BOLD|ATTR_ITALIC|ATTR_UNDERLINE|ATTR_STRUCK|ATTR_WIDE;
    -	g.fg = defaultbg;
    -	g.bg = defaultcs;

     	if (IS_SET(MODE_REVERSE)) {
     		g.mode |= ATTR_REVERSE;
    @@ -1426,17 +1424,15 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
     		}
     	} else {
     		if (selected(cx, cy)) {
    -			drawcol = dc.col[defaultrcs];
     			g.fg = defaultfg;
     			g.bg = defaultrcs;
     		} else {
    -			drawcol = dc.col[defaultcs];
    +			g.fg = defaultbg;
    +			g.bg = defaultcs;
     		}
    +		drawcol = dc.col[g.bg];
     	}

    -	if (IS_SET(MODE_HIDE))
    -		return;
    -
     	/* draw the new one */
     	if (IS_SET(MODE_FOCUSED)) {
     		switch (win.cursor) {