[CONTACT]

[ABOUT]

[POLICY]

git clone dmenu dmenu Log gph

Found at: gopher.r-36.net:70/scm/dmenu/commit/acbf35a5e35b6f6a7dd3f8da49a6e5ec5ac075ce.gph

tfix incorrect ordering of match results - dmenu - Dmenu fork with xft fonts.

git clone git://r-36.net/dmenu

Log

Files

Refs

README

LICENSE

---

commit acbf35a5e35b6f6a7dd3f8da49a6e5ec5ac075ce

parent 240a7810e492ec01075614729a1a1c45ef9f7af2

Author: Davide Del Zompo

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:
  dmenu.c                             |       5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
---

diff --git a/dmenu.c b/dmenu.c

t@@ -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);
t@@ -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]))
t@@ -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);
.


AD: