| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -22,12 +22,10 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																enum { ColFG, ColBG, ColLast }; | 
																 | 
																 | 
																enum { ColFG, ColBG, ColLast }; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																/* typedefs */ | 
																 | 
																 | 
																/* typedefs */ | 
															
														
														
													
														
															
																 | 
																 | 
																typedef unsigned int uint; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																typedef unsigned long ulong; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																typedef struct { | 
																 | 
																 | 
																typedef struct { | 
															
														
														
													
														
															
																 | 
																 | 
																	int x, y, w, h; | 
																 | 
																 | 
																	int x, y, w, h; | 
															
														
														
													
														
															
																 | 
																 | 
																	ulong norm[ColLast]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	ulong sel[ColLast]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned long norm[ColLast]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned long sel[ColLast]; | 
															
														
														
													
														
															
																 | 
																 | 
																	Drawable drawable; | 
																 | 
																 | 
																	Drawable drawable; | 
															
														
														
													
														
															
																 | 
																 | 
																	GC gc; | 
																 | 
																 | 
																	GC gc; | 
															
														
														
													
														
															
																 | 
																 | 
																	struct { | 
																 | 
																 | 
																	struct { | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -52,9 +50,9 @@ static void calcoffsets(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static char *cistrstr(const char *s, const char *sub); | 
																 | 
																 | 
																static char *cistrstr(const char *s, const char *sub); | 
															
														
														
													
														
															
																 | 
																 | 
																static void cleanup(void); | 
																 | 
																 | 
																static void cleanup(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void drawmenu(void); | 
																 | 
																 | 
																static void drawmenu(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void drawtext(const char *text, ulong col[ColLast]); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void drawtext(const char *text, unsigned long col[ColLast]); | 
															
														
														
													
														
															
																 | 
																 | 
																static void eprint(const char *errstr, ...); | 
																 | 
																 | 
																static void eprint(const char *errstr, ...); | 
															
														
														
													
														
															
																 | 
																 | 
																static ulong getcolor(const char *colstr); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static unsigned long getcolor(const char *colstr); | 
															
														
														
													
														
															
																 | 
																 | 
																static Bool grabkeyboard(void); | 
																 | 
																 | 
																static Bool grabkeyboard(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void initfont(const char *fontstr); | 
																 | 
																 | 
																static void initfont(const char *fontstr); | 
															
														
														
													
														
															
																 | 
																 | 
																static void kpress(XKeyEvent * e); | 
																 | 
																 | 
																static void kpress(XKeyEvent * e); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -62,7 +60,7 @@ static void match(char *pattern); | 
															
														
														
													
														
															
																 | 
																 | 
																static void readstdin(void); | 
																 | 
																 | 
																static void readstdin(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void run(void); | 
																 | 
																 | 
																static void run(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void setup(Bool topbar); | 
																 | 
																 | 
																static void setup(Bool topbar); | 
															
														
														
													
														
															
																 | 
																 | 
																static int textnw(const char *text, uint len); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static int textnw(const char *text, unsigned int len); | 
															
														
														
													
														
															
																 | 
																 | 
																static int textw(const char *text); | 
																 | 
																 | 
																static int textw(const char *text); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#include "config.h" | 
																 | 
																 | 
																#include "config.h" | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -75,8 +73,8 @@ static int cmdw = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																static int promptw = 0; | 
																 | 
																 | 
																static int promptw = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																static int ret = 0; | 
																 | 
																 | 
																static int ret = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																static int screen; | 
																 | 
																 | 
																static int screen; | 
															
														
														
													
														
															
																 | 
																 | 
																static uint mw, mh; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static uint numlockmask = 0; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static unsigned int mw, mh; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static unsigned int numlockmask = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																static Bool running = True; | 
																 | 
																 | 
																static Bool running = True; | 
															
														
														
													
														
															
																 | 
																 | 
																static Display *dpy; | 
																 | 
																 | 
																static Display *dpy; | 
															
														
														
													
														
															
																 | 
																 | 
																static DC dc = {0}; | 
																 | 
																 | 
																static DC dc = {0}; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -104,7 +102,7 @@ appenditem(Item *i, Item **list, Item **last) { | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																calcoffsets(void) { | 
																 | 
																 | 
																calcoffsets(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	int tw; | 
																 | 
																 | 
																	int tw; | 
															
														
														
													
														
															
																 | 
																 | 
																	uint w; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int w; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!curr) | 
																 | 
																 | 
																	if(!curr) | 
															
														
														
													
														
															
																 | 
																 | 
																		return; | 
																 | 
																 | 
																		return; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -131,7 +129,7 @@ calcoffsets(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																char * | 
																 | 
																 | 
																char * | 
															
														
														
													
														
															
																 | 
																 | 
																cistrstr(const char *s, const char *sub) { | 
																 | 
																 | 
																cistrstr(const char *s, const char *sub) { | 
															
														
														
													
														
															
																 | 
																 | 
																	int c, csub; | 
																 | 
																 | 
																	int c, csub; | 
															
														
														
													
														
															
																 | 
																 | 
																	uint len; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int len; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!sub) | 
																 | 
																 | 
																	if(!sub) | 
															
														
														
													
														
															
																 | 
																 | 
																		return (char *)s; | 
																 | 
																 | 
																		return (char *)s; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -213,10 +211,10 @@ drawmenu(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																drawtext(const char *text, ulong col[ColLast]) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																drawtext(const char *text, unsigned long col[ColLast]) { | 
															
														
														
													
														
															
																 | 
																 | 
																	int x, y, w, h; | 
																 | 
																 | 
																	int x, y, w, h; | 
															
														
														
													
														
															
																 | 
																 | 
																	static char buf[256]; | 
																 | 
																 | 
																	static char buf[256]; | 
															
														
														
													
														
															
																 | 
																 | 
																	uint len, olen; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int len, olen; | 
															
														
														
													
														
															
																 | 
																 | 
																	XRectangle r = { dc.x, dc.y, dc.w, dc.h }; | 
																 | 
																 | 
																	XRectangle r = { dc.x, dc.y, dc.w, dc.h }; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	XSetForeground(dpy, dc.gc, col[ColBG]); | 
																 | 
																 | 
																	XSetForeground(dpy, dc.gc, col[ColBG]); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -262,7 +260,7 @@ eprint(const char *errstr, ...) { | 
															
														
														
													
														
															
																 | 
																 | 
																	exit(EXIT_FAILURE); | 
																 | 
																 | 
																	exit(EXIT_FAILURE); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																ulong | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																unsigned long | 
															
														
														
													
														
															
																 | 
																 | 
																getcolor(const char *colstr) { | 
																 | 
																 | 
																getcolor(const char *colstr) { | 
															
														
														
													
														
															
																 | 
																 | 
																	Colormap cmap = DefaultColormap(dpy, screen); | 
																 | 
																 | 
																	Colormap cmap = DefaultColormap(dpy, screen); | 
															
														
														
													
														
															
																 | 
																 | 
																	XColor color; | 
																 | 
																 | 
																	XColor color; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -274,7 +272,7 @@ getcolor(const char *colstr) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																Bool | 
																 | 
																 | 
																Bool | 
															
														
														
													
														
															
																 | 
																 | 
																grabkeyboard(void) { | 
																 | 
																 | 
																grabkeyboard(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	uint len; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int len; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	for(len = 1000; len; len--) { | 
																 | 
																 | 
																	for(len = 1000; len; len--) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) | 
																 | 
																 | 
																		if(XGrabKeyboard(dpy, root, True, GrabModeAsync, GrabModeAsync, CurrentTime) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -330,7 +328,7 @@ void | 
															
														
														
													
														
															
																 | 
																 | 
																kpress(XKeyEvent * e) { | 
																 | 
																 | 
																kpress(XKeyEvent * e) { | 
															
														
														
													
														
															
																 | 
																 | 
																	char buf[32]; | 
																 | 
																 | 
																	char buf[32]; | 
															
														
														
													
														
															
																 | 
																 | 
																	int i, num; | 
																 | 
																 | 
																	int i, num; | 
															
														
														
													
														
															
																 | 
																 | 
																	uint len; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int len; | 
															
														
														
													
														
															
																 | 
																 | 
																	KeySym ksym; | 
																 | 
																 | 
																	KeySym ksym; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	len = strlen(text); | 
																 | 
																 | 
																	len = strlen(text); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -498,7 +496,7 @@ kpress(XKeyEvent * e) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																match(char *pattern) { | 
																 | 
																 | 
																match(char *pattern) { | 
															
														
														
													
														
															
																 | 
																 | 
																	uint plen; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int plen; | 
															
														
														
													
														
															
																 | 
																 | 
																	Item *i, *itemend, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend; | 
																 | 
																 | 
																	Item *i, *itemend, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!pattern) | 
																 | 
																 | 
																	if(!pattern) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -540,7 +538,7 @@ match(char *pattern) { | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																readstdin(void) { | 
																 | 
																 | 
																readstdin(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	char *p, buf[1024]; | 
																 | 
																 | 
																	char *p, buf[1024]; | 
															
														
														
													
														
															
																 | 
																 | 
																	uint len = 0, max = 0; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int len = 0, max = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																	Item *i, *new; | 
																 | 
																 | 
																	Item *i, *new; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	i = 0; | 
																 | 
																 | 
																	i = 0; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -659,7 +657,7 @@ setup(Bool topbar) { | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																int | 
																 | 
																 | 
																int | 
															
														
														
													
														
															
																 | 
																 | 
																textnw(const char *text, uint len) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																textnw(const char *text, unsigned int len) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XRectangle r; | 
																 | 
																 | 
																	XRectangle r; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(dc.font.set) { | 
																 | 
																 | 
																	if(dc.font.set) { | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -676,7 +674,7 @@ textw(const char *text) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																int | 
																 | 
																 | 
																int | 
															
														
														
													
														
															
																 | 
																 | 
																main(int argc, char *argv[]) { | 
																 | 
																 | 
																main(int argc, char *argv[]) { | 
															
														
														
													
														
															
																 | 
																 | 
																	uint i; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int i; | 
															
														
														
													
														
															
																 | 
																 | 
																	Bool topbar = True; | 
																 | 
																 | 
																	Bool topbar = True; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	/* command line args */ | 
																 | 
																 | 
																	/* command line args */ | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |