| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -145,11 +145,11 @@ static void configurerequest(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void destroynotify(XEvent *e); | 
																 | 
																 | 
																static void destroynotify(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void detach(Client *c); | 
																 | 
																 | 
																static void detach(Client *c); | 
															
														
														
													
														
															
																 | 
																 | 
																static void detachstack(Client *c); | 
																 | 
																 | 
																static void detachstack(Client *c); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void die(const char *errstr, ...); | 
															
														
														
													
														
															
																 | 
																 | 
																static void drawbar(void); | 
																 | 
																 | 
																static void drawbar(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void drawsquare(Bool filled, Bool empty, Bool invert, ulong col[ColLast]); | 
																 | 
																 | 
																static void drawsquare(Bool filled, Bool empty, Bool invert, ulong col[ColLast]); | 
															
														
														
													
														
															
																 | 
																 | 
																static void drawtext(const char *text, ulong col[ColLast], Bool invert); | 
																 | 
																 | 
																static void drawtext(const char *text, ulong col[ColLast], Bool invert); | 
															
														
														
													
														
															
																 | 
																 | 
																static void enternotify(XEvent *e); | 
																 | 
																 | 
																static void enternotify(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void eprint(const char *errstr, ...); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static void expose(XEvent *e); | 
																 | 
																 | 
																static void expose(XEvent *e); | 
															
														
														
													
														
															
																 | 
																 | 
																static void focus(Client *c); | 
																 | 
																 | 
																static void focus(Client *c); | 
															
														
														
													
														
															
																 | 
																 | 
																static void focusin(XEvent *e); | 
																 | 
																 | 
																static void focusin(XEvent *e); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -343,7 +343,7 @@ checkotherwm(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask); | 
																 | 
																 | 
																	XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask); | 
															
														
														
													
														
															
																 | 
																 | 
																	XSync(dpy, False); | 
																 | 
																 | 
																	XSync(dpy, False); | 
															
														
														
													
														
															
																 | 
																 | 
																	if(otherwm) | 
																 | 
																 | 
																	if(otherwm) | 
															
														
														
													
														
															
																 | 
																 | 
																		eprint("dwm: another window manager is already running\n"); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		die("dwm: another window manager is already running\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																	XSetErrorHandler(NULL); | 
																 | 
																 | 
																	XSetErrorHandler(NULL); | 
															
														
														
													
														
															
																 | 
																 | 
																	xerrorxlib = XSetErrorHandler(xerror); | 
																 | 
																 | 
																	xerrorxlib = XSetErrorHandler(xerror); | 
															
														
														
													
														
															
																 | 
																 | 
																	XSync(dpy, False); | 
																 | 
																 | 
																	XSync(dpy, False); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -473,6 +473,16 @@ detachstack(Client *c) { | 
															
														
														
													
														
															
																 | 
																 | 
																	*tc = c->snext; | 
																 | 
																 | 
																	*tc = c->snext; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																die(const char *errstr, ...) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	va_list ap; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	va_start(ap, errstr); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	vfprintf(stderr, errstr, ap); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	va_end(ap); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	exit(EXIT_FAILURE); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																drawbar(void) { | 
																 | 
																 | 
																drawbar(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	int i, x; | 
																 | 
																 | 
																	int i, x; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -580,16 +590,6 @@ enternotify(XEvent *e) { | 
															
														
														
													
														
															
																 | 
																 | 
																		focus(NULL); | 
																 | 
																 | 
																		focus(NULL); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																eprint(const char *errstr, ...) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	va_list ap; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	va_start(ap, errstr); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	vfprintf(stderr, errstr, ap); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	va_end(ap); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	exit(EXIT_FAILURE); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																expose(XEvent *e) { | 
																 | 
																 | 
																expose(XEvent *e) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XExposeEvent *ev = &e->xexpose; | 
																 | 
																 | 
																	XExposeEvent *ev = &e->xexpose; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -667,7 +667,7 @@ getcolor(const char *colstr) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XColor color; | 
																 | 
																 | 
																	XColor color; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color)) | 
																 | 
																 | 
																	if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color)) | 
															
														
														
													
														
															
																 | 
																 | 
																		eprint("error, cannot allocate color '%s'\n", colstr); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		die("error, cannot allocate color '%s'\n", colstr); | 
															
														
														
													
														
															
																 | 
																 | 
																	return color.pixel; | 
																 | 
																 | 
																	return color.pixel; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -793,7 +793,7 @@ initfont(const char *fontstr) { | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.font.xfont = NULL; | 
																 | 
																 | 
																		dc.font.xfont = NULL; | 
															
														
														
													
														
															
																 | 
																 | 
																		if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr)) | 
																 | 
																 | 
																		if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr)) | 
															
														
														
													
														
															
																 | 
																 | 
																		&& !(dc.font.xfont = XLoadQueryFont(dpy, "fixed"))) | 
																 | 
																 | 
																		&& !(dc.font.xfont = XLoadQueryFont(dpy, "fixed"))) | 
															
														
														
													
														
															
																 | 
																 | 
																			eprint("error, cannot load font: '%s'\n", fontstr); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			die("error, cannot load font: '%s'\n", fontstr); | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.font.ascent = dc.font.xfont->ascent; | 
																 | 
																 | 
																		dc.font.ascent = dc.font.xfont->ascent; | 
															
														
														
													
														
															
																 | 
																 | 
																		dc.font.descent = dc.font.xfont->descent; | 
																 | 
																 | 
																		dc.font.descent = dc.font.xfont->descent; | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -877,7 +877,7 @@ manage(Window w, XWindowAttributes *wa) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XWindowChanges wc; | 
																 | 
																 | 
																	XWindowChanges wc; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!(c = calloc(1, sizeof(Client)))) | 
																 | 
																 | 
																	if(!(c = calloc(1, sizeof(Client)))) | 
															
														
														
													
														
															
																 | 
																 | 
																		eprint("fatal: could not calloc() %u bytes\n", sizeof(Client)); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		die("fatal: could not calloc() %u bytes\n", sizeof(Client)); | 
															
														
														
													
														
															
																 | 
																 | 
																	c->win = w; | 
																 | 
																 | 
																	c->win = w; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	/* geometry */ | 
																 | 
																 | 
																	/* geometry */ | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1216,7 +1216,7 @@ run(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(select(xfd + 1, &rd, NULL, NULL, NULL) == -1) { | 
																 | 
																 | 
																		if(select(xfd + 1, &rd, NULL, NULL, NULL) == -1) { | 
															
														
														
													
														
															
																 | 
																 | 
																			if(errno == EINTR) | 
																 | 
																 | 
																			if(errno == EINTR) | 
															
														
														
													
														
															
																 | 
																 | 
																				continue; | 
																 | 
																 | 
																				continue; | 
															
														
														
													
														
															
																 | 
																 | 
																			eprint("select failed\n"); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			die("select failed\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																		if(FD_ISSET(STDIN_FILENO, &rd)) { | 
																 | 
																 | 
																		if(FD_ISSET(STDIN_FILENO, &rd)) { | 
															
														
														
													
														
															
																 | 
																 | 
																			switch((r = read(STDIN_FILENO, sbuf + offset, len - offset))) { | 
																 | 
																 | 
																			switch((r = read(STDIN_FILENO, sbuf + offset, len - offset))) { | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1695,15 +1695,15 @@ zoom(const Arg *arg) { | 
															
														
														
													
														
															
																 | 
																 | 
																int | 
																 | 
																 | 
																int | 
															
														
														
													
														
															
																 | 
																 | 
																main(int argc, char *argv[]) { | 
																 | 
																 | 
																main(int argc, char *argv[]) { | 
															
														
														
													
														
															
																 | 
																 | 
																	if(argc == 2 && !strcmp("-v", argv[1])) | 
																 | 
																 | 
																	if(argc == 2 && !strcmp("-v", argv[1])) | 
															
														
														
													
														
															
																 | 
																 | 
																		eprint("dwm-"VERSION", © 2006-2008 dwm engineers, see LICENSE for details\n"); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		die("dwm-"VERSION", © 2006-2008 dwm engineers, see LICENSE for details\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																	else if(argc != 1) | 
																 | 
																 | 
																	else if(argc != 1) | 
															
														
														
													
														
															
																 | 
																 | 
																		eprint("usage: dwm [-v]\n"); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		die("usage: dwm [-v]\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) | 
																 | 
																 | 
																	if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) | 
															
														
														
													
														
															
																 | 
																 | 
																		fprintf(stderr, "warning: no locale support\n"); | 
																 | 
																 | 
																		fprintf(stderr, "warning: no locale support\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!(dpy = XOpenDisplay(0))) | 
																 | 
																 | 
																	if(!(dpy = XOpenDisplay(0))) | 
															
														
														
													
														
															
																 | 
																 | 
																		eprint("dwm: cannot open display\n"); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		die("dwm: cannot open display\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	checkotherwm(); | 
																 | 
																 | 
																	checkotherwm(); | 
															
														
														
													
														
															
																 | 
																 | 
																	setup(); | 
																 | 
																 | 
																	setup(); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |