@ -28,14 +28,13 @@  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* enums */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					enum  {  SchemeNorm ,  SchemeSel ,  SchemeOut ,  SchemeLast  } ;  /* color schemes */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					typedef  struct  Item  Item ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					struct  Item  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					struct  item  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						char  * text ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						I tem  * left ,  * right ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						struct  i tem  * left ,  * right ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						bool  out ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  appenditem ( Item  * ,  Item  * * ,  I tem  * * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  appenditem ( struct  item  * ,  struct  item  * * ,  struct  i tem  * * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  calcoffsets ( void ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  * cistrstr ( const  char  * ,  const  char  * ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  cleanup ( void ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -56,9 +55,9 @@ static int bh, mw, mh;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  sw ,  sh ;  /* X display screen geometry width, height */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  inputw ,  promptw ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  size_t  cursor ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  I tem  * items  =  NULL ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  I tem  * matches ,  * matchend ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  I tem  * prev ,  * curr ,  * next ,  * sel ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  struct  i tem  * items  =  NULL ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  struct  i tem  * matches ,  * matchend ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  struct  i tem  * prev ,  * curr ,  * next ,  * sel ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  mon  =  - 1 ,  screen ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  Atom  clip ,  utf8 ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -75,7 +74,7 @@ static int (*fstrncmp)(const char *, const char *, size_t) = strncmp;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  * ( * fstrstr ) ( const  char  * ,  const  char  * )  =  strstr ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					appenditem ( I tem  * item ,  I tem  * * list ,  I tem  * * last )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					appenditem ( struct  i tem  * item ,  struct  i tem  * * list ,  struct  i tem  * * last )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if  ( * last )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							( * last ) - > right  =  item ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -135,7 +134,7 @@ static void  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					drawmenu ( void )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  curpos ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						I tem  * item ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						struct  i tem  * item ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  x  =  0 ,  y  =  0 ,  h  =  bh ,  w ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						drw_setscheme ( drw ,  & scheme [ SchemeNorm ] ) ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -408,7 +407,7 @@ match(void)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						char  buf [ sizeof  text ] ,  * s ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						int  i ,  tokc  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						size_t  len ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						I tem  * item ,  * lprefix ,  * lsubstr ,  * prefixend ,  * substrend ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						struct  i tem  * item ,  * lprefix ,  * lsubstr ,  * prefixend ,  * substrend ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						strcpy ( buf ,  text ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						/* separate input text into tokens to be matched individually */