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