X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/b48fa3f101d2805882ab6a2a095e541b0cfe83f6..2ce50a9cada450b0538bb12f0424005652fc1355:/dwm.c

diff --git a/dwm.c b/dwm.c
index 3d993c5..dc14bfd 100644
--- a/dwm.c
+++ b/dwm.c
@@ -202,7 +202,7 @@ static void zoom(const Arg *arg);
 /* variables */
 static char stext[256];
 static int screen;
-static int sx, sy, sw, sh; /* display geometry x, y, width, height */ 
+static int sx, sy, sw, sh; /* X display screen geometry x, y, width, height */ 
 static int by, bh, blw;    /* bar geometry y, height and layout symbol width */
 static int wx, wy, ww, wh; /* window area geometry x, y, width, height, bar excluded */
 static unsigned int seltags = 0, sellt = 0;
@@ -568,24 +568,23 @@ drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) {
 
 void
 drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
+	char buf[256];
 	int i, x, y, h, len, olen;
 	XRectangle r = { dc.x, dc.y, dc.w, dc.h };
-	char buf[256];
 
 	XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
 	XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
 	if(!text)
 		return;
 	olen = strlen(text);
-	len = MIN(olen, sizeof buf);
-	memcpy(buf, text, len);
 	h = dc.font.ascent + dc.font.descent;
 	y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
 	x = dc.x + (h / 2);
 	/* shorten text if necessary */
-	for(; len && (i = textnw(buf, len)) > dc.w - h; len--);
+	for(len = MIN(olen, sizeof buf); len && textnw(buf, len) > dc.w - h; len--);
 	if(!len)
 		return;
+	memcpy(buf, text, len);
 	if(len < olen)
 		for(i = len; i && i > len - 3; buf[--i] = '.');
 	XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
@@ -866,7 +865,7 @@ killclient(const Arg *arg) {
 void
 manage(Window w, XWindowAttributes *wa) {
 	Client *c, *t = NULL;
-	Window trans = 0;
+	Window trans = None;
 	XWindowChanges wc;
 
 	if(!(c = calloc(1, sizeof(Client))))
@@ -910,7 +909,7 @@ manage(Window w, XWindowAttributes *wa) {
 	else
 		applyrules(c);
 	if(!c->isfloating)
-		c->isfloating = trans || c->isfixed;
+		c->isfloating = trans != None || c->isfixed;
 	if(c->isfloating)
 		XRaiseWindow(dpy, c->win);
 	attach(c);
@@ -1247,10 +1246,9 @@ run(void) {
 void
 scan(void) {
 	unsigned int i, num;
-	Window *wins, d1, d2;
+	Window d1, d2, *wins = NULL;
 	XWindowAttributes wa;
 
-	wins = NULL;
 	if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
 		for(i = 0; i < num; i++) {
 			if(!XGetWindowAttributes(dpy, wins[i], &wa)
@@ -1266,9 +1264,9 @@ scan(void) {
 			&& (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
 				manage(wins[i], &wa);
 		}
+		if(wins)
+			XFree(wins);
 	}
-	if(wins)
-		XFree(wins);
 }
 
 void
@@ -1640,10 +1638,10 @@ updatewmhints(Client *c) {
 
 void
 view(const Arg *arg) {
-	if(arg && (arg->ui & TAGMASK) == tagset[seltags])
+	if((arg->ui & TAGMASK) == tagset[seltags])
 		return;
 	seltags ^= 1; /* toggle sel tagset */
-	if(arg && (arg->ui & TAGMASK))
+	if(arg->ui & TAGMASK)
 		tagset[seltags] = arg->ui & TAGMASK;
 	clearurgent();
 	arrange();