X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=dwm.c;h=dcd6e317b89ad081ad2aa167cfd500b364594759;hb=087a55f8d35f72560c5a266ee0eb91417e6f58fc;hp=7d9939020a42cd1267b29d4aecbaff87257d423f;hpb=9f3a5cb7540df6628c9c8a8bd7a8667a73f08fb1;p=dwm.git diff --git a/dwm.c b/dwm.c index 7d99390..dcd6e31 100644 --- a/dwm.c +++ b/dwm.c @@ -569,23 +569,22 @@ drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) { void drawtext(const char *text, unsigned long col[ColLast], Bool invert) { int i, x, y, h, len, olen; - XRectangle r = { dc.x, dc.y, dc.w, dc.h }; char buf[256]; + XRectangle r = { dc.x, dc.y, dc.w, dc.h }; 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]); @@ -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();