* To understand everything else, start reading main().
*/
#include <errno.h>
-#include <locale.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
/* variables */
static char stext[256];
-static int screen, sx, sy, sw, sh;
-static int by, bh, blw, wx, wy, ww, wh;
+static int screen;
+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;
static int (*xerrorxlib)(Display *, XErrorEvent *);
static unsigned int numlockmask = 0;
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]);
void
manage(Window w, XWindowAttributes *wa) {
Client *c, *t = NULL;
- Window trans;
+ Window trans = 0;
XWindowChanges wc;
if(!(c = calloc(1, sizeof(Client))))
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();
else if(argc != 1)
die("usage: dwm [-v]\n");
- if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
+ if(!XSupportsLocale())
fprintf(stderr, "warning: no locale support\n");
if(!(dpy = XOpenDisplay(0)))