applied ido-matching to dmenu
This commit is contained in:
parent
07239bbddd
commit
11cb2e7dcc
21
main.c
21
main.c
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue