diff options
| -rw-r--r-- | dmenu.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| @@ -208,7 +208,7 @@ match(void)  	char buf[sizeof text], *s;  	int i, tokc = 0; -	size_t len; +	size_t len, textsize;  	struct item *item, *lprefix, *lsubstr, *prefixend, *substrend;  	strcpy(buf, text); @@ -219,6 +219,7 @@ match(void)  	len = tokc ? strlen(tokv[0]) : 0;  	matches = lprefix = lsubstr = matchend = prefixend = substrend = NULL; +	textsize = strlen(text) + 1;  	for (item = items; item && item->text; item++) {  		for (i = 0; i < tokc; i++)  			if (!fstrstr(item->text, tokv[i])) @@ -226,7 +227,7 @@ match(void)  		if (i != tokc) /* not all tokens match */  			continue;  		/* exact matches go first, then prefixes, then substrings */ -		if (!tokc || !fstrncmp(tokv[0], item->text, len + 1)) +		if (!tokc || !fstrncmp(text, item->text, textsize))  			appenditem(item, &matches, &matchend);  		else if (!fstrncmp(tokv[0], item->text, len))  			appenditem(item, &lprefix, &prefixend); | 
