X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=dwm.c;h=d903e9a28337a2ffe9dbb92ba452715205051a50;hb=97699e5b1b8d50d2ec332c4643d69d666348d7e9;hp=3d993c55c2d67e10ac6ffdfa2f837d2f24828dee;hpb=b48fa3f101d2805882ab6a2a095e541b0cfe83f6;p=dwm.git diff --git a/dwm.c b/dwm.c index 3d993c5..d903e9a 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; @@ -577,15 +577,14 @@ drawtext(const char *text, unsigned long col[ColLast], Bool invert) { 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 && (i = 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]); @@ -1640,10 +1639,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();