Parcourir la source

applied ido-matching to dmenu

master
arg@f00b4r il y a 17 ans
Parent
révision
11cb2e7dcc
1 fichiers modifiés avec 21 ajouts et 0 suppressions
  1. +21
    -0
      main.c

+ 21
- 0
main.c Voir le fichier

@@ -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


Chargement…
Annuler
Enregistrer