tapplied Sanders patch - dmenu - Dmenu fork with xft fonts.
 (HTM) git clone git://r-36.net/dmenu
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 38b866ba3453e2a7567b084a353e50a36ed92221
 (DIR) parent 540a78761b26b2af4f47e46d27ad6406548c8a1c
 (HTM) Author: anselm@anselm1 <unknown>
       Date:   Wed, 12 Mar 2008 21:37:43 +0000
       
       applied Sanders patch
       Diffstat:
         LICENSE                             |       2 +-
         dmenu.c                             |      14 ++++++--------
       
       2 files changed, 7 insertions(+), 9 deletions(-)
       ---
 (DIR) diff --git a/LICENSE b/LICENSE
       t@@ -1,7 +1,7 @@
        MIT/X Consortium License
        
        © 2006-2008 Anselm R. Garbe <garbeam at gmail dot com>
       -© 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
       +© 2006-2008 Sander van Dijk <a dot h dot vandijk at gmail dot com>
        © 2006-2007 Michał Janeczek <janeczek at gmail dot com>
        
        Permission is hereby granted, free of charge, to any person obtaining a
 (DIR) diff --git a/dmenu.c b/dmenu.c
       t@@ -37,7 +37,6 @@ struct Item {
                Item *next;                /* traverses all items */
                Item *left, *right;        /* traverses items matching current search pattern */
                char *text;
       -        Bool matched;
        };
        
        /* forward declarations */
       t@@ -89,6 +88,7 @@ Item *next = NULL;
        Item *prev = NULL;
        Item *curr = NULL;
        Window root, win;
       +int (*fstrncmp)(const char *, const char *, size_t n) = strncmp;
        char *(*fstrstr)(const char *, const char *) = strstr;
        
        Item *
       t@@ -97,7 +97,6 @@ appenditem(Item *i, Item *last) {
                        item = i;
                else
                        last->right = i;
       -        i->matched = True;
                i->left = last;
                i->right = NULL;
                last = i;
       t@@ -505,13 +504,10 @@ match(char *pattern) {
                plen = strlen(pattern);
                item = j = NULL;
                nitem = 0;
       -        for(i = allitems; i; i=i->next)
       -                i->matched = False;
                for(i = allitems; i; i = i->next)
       -                if(!i->matched && !strncasecmp(pattern, i->text, plen))
       +                if(!fstrncmp(pattern, i->text, plen))
                                j = appenditem(i, j);
       -        for(i = allitems; i; i = i->next)
       -                if(!i->matched && fstrstr(i->text, pattern))
       +                else if(fstrstr(i->text, pattern))
                                j = appenditem(i, j);
                curr = prev = next = sel = item;
                calcoffsets();
       t@@ -662,8 +658,10 @@ main(int argc, char *argv[]) {
        
                /* command line args */
                for(i = 1; i < argc; i++)
       -                if(!strcmp(argv[i], "-i"))
       +                if(!strcmp(argv[i], "-i")) {
       +                        fstrncmp = strncasecmp;
                                fstrstr = cistrstr;
       +                }
                        else if(!strcmp(argv[i], "-fn")) {
                                if(++i < argc) font = argv[i];
                        }