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