Introduction
Introduction Statistics Contact Development Disclaimer Help
fix incorrect ordering of match results - dmenu - dynamic menu
git clone git://git.suckless.org/dmenu
Log
Files
Refs
README
LICENSE
---
commit acbf35a5e35b6f6a7dd3f8da49a6e5ec5ac075ce
parent 240a7810e492ec01075614729a1a1c45ef9f7af2
Author: Davide Del Zompo <[email protected]>
Date: Sun, 4 Oct 2015 14:01:22 +0200
fix incorrect ordering of match results
look for exact matches comparing the user input against the item text
Diffstat:
M dmenu.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/dmenu.c b/dmenu.c
@@ -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);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.