diff options
| -rw-r--r-- | main.c | 21 | 
1 files changed, 21 insertions, 0 deletions
| @@ -168,6 +168,14 @@ initfont(const char *fontstr) {  	dc.font.height = dc.font.ascent + dc.font.descent;  } +static int +strido(const char *text, const char *pattern) { +	for(; *text && *pattern; text++) +		if (*text == *pattern) +			pattern++; +	return !*pattern; +}                                   +  static void  match(char *pattern) {  	unsigned int plen; @@ -192,6 +200,19 @@ match(char *pattern) {  	for(i = allitems; i; i=i->next)  		if(plen && strncmp(pattern, i->text, plen)  				&& strstr(i->text, pattern)) { +			if(!j)                                +				item = i;                               +			else                                      +				j->right = i;                           +			i->left = j;       +			i->right = NULL;                          +			j = i;                                       +			nitem++;                                        +		}                                               +	for(i = allitems; i; i=i->next)                             +		if(plen && strncmp(pattern, i->text, plen)              +				&& !strstr(i->text, pattern)           +				&& strido(i->text,pattern)) {   			if(!j)  				item = i;  			else | 
