| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -108,6 +108,13 @@ drawmenu(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XFlush(dpy); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					grabkeyboard(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(XGrabKeyboard(dpy, root, True, GrabModeAsync, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								 GrabModeAsync, CurrentTime) != GrabSuccess) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							usleep(1000); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static unsigned long | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					initcolor(const char *colstr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Colormap cmap = DefaultColormap(dpy, screen); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -418,12 +425,6 @@ main(int argc, char *argv[]) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XModifierKeymap *modmap; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSetWindowAttributes wa; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(argc == 2 && !strncmp("-v", argv[1], 3)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							eprint("dmenu-"VERSION", (C)opyright MMVI-MMVII Anselm R. Garbe\n"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else if(isatty(STDIN_FILENO)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							fputs("error: dmenu can't run in an interactive shell\n", stdout); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							usage(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* command line args */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = 1; i < argc; i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(!strncmp(argv[i], "-b", 3)) { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -447,6 +448,8 @@ main(int argc, char *argv[]) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else if(!strncmp(argv[i], "-sf", 4)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(++i < argc) selfg = argv[i]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else if(!strncmp(argv[i], "-v", 3)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								eprint("dmenu-"VERSION", (C)opyright MMVI-MMVII Anselm R. Garbe\n"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								usage(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						setlocale(LC_CTYPE, ""); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -455,10 +458,14 @@ main(int argc, char *argv[]) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							eprint("dmenu: cannot open display\n"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						screen = DefaultScreen(dpy); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						root = RootWindow(dpy, screen); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(XGrabKeyboard(dpy, root, True, GrabModeAsync, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								 GrabModeAsync, CurrentTime) != GrabSuccess) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							usleep(1000); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						maxname = readstdin(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(isatty(STDIN_FILENO)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							maxname = readstdin(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							grabkeyboard(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						else { /* prevent keypress loss */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							grabkeyboard(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							maxname = readstdin(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* init modifier map */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						modmap = XGetModifierMapping(dpy); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for (i = 0; i < 8; i++) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |