Browse Source

applied ido-matching to dmenu

master
arg@f00b4r 18 years ago
parent
commit
11cb2e7dcc
  1. 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;
@ -201,6 +209,19 @@ match(char *pattern) {
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
j->right = i;
i->left = j;
i->right = NULL;
j = i;
nitem++;
}
curr = prev = next = sel = item;
calcoffsets();
}

Loading…
Cancel
Save