| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -104,6 +104,9 @@ cleanup(void) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XUngrabKey(dpy, AnyKey, AnyModifier, root); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for (i = 0; i < SchemeLast; i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							free(scheme[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for (i = 0; items && items[i].text; ++i) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							free(items[i].text); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						free(items); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						drw_free(drw); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XSync(dpy, False); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XCloseDisplay(dpy); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -239,7 +242,7 @@ match(void) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* separate input text into tokens to be matched individually */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for (s = strtok(buf, " "); s; tokv[tokc - 1] = s, s = strtok(NULL, " ")) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (++tokc > tokn && !(tokv = realloc(tokv, ++tokn * sizeof *tokv))) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								die("cannot realloc %u bytes:", tokn * sizeof *tokv); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								die("cannot realloc %zu bytes:", tokn * sizeof *tokv); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						len = tokc ? strlen(tokv[0]) : 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						matches = lprefix = lsubstr = matchend = prefixend = substrend = NULL; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -553,11 +556,11 @@ readstdin(void) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for (i = 0; fgets(buf, sizeof buf, stdin); i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (i + 1 >= size / sizeof *items) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if (!(items = realloc(items, (size += BUFSIZ)))) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									die("cannot realloc %u bytes:", size); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									die("cannot realloc %zu bytes:", size); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ((p = strchr(buf, '\n'))) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								*p = '\0'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!(items[i].text = strdup(buf))) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								die("cannot strdup %u bytes:", strlen(buf) + 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								die("cannot strdup %zu bytes:", strlen(buf) + 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							items[i].out = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if (items) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |