void run(void);
void setup(Bool bottom);
int strcaseido(const char *text, const char *pattern);
+char *cistrstr(const char *s, const char *sub);
unsigned int textnw(const char *text, unsigned int len);
unsigned int textw(const char *text);
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))
j = appenditem(i, j);
-
- for (i = allitems; i; i = i->next)
- if(!i->matched && strcasestr(i->text, pattern))
+ for(i = allitems; i; i = i->next)
+ if(!i->matched && cistrstr(i->text, pattern))
j = appenditem(i, j);
-
if(idomatch)
- for (i = allitems; i; i = i->next)
+ for(i = allitems; i; i = i->next)
if(!i->matched && strcaseido(i->text, pattern))
j = appenditem(i, j);
-
curr = prev = next = sel = item;
calcoffsets();
}
int
strcaseido(const char *text, const char *pattern) {
for(; *text && *pattern; text++)
- if (tolower(*text) == tolower(*pattern))
+ if(tolower((int)*text) == tolower((int)*pattern))
pattern++;
return !*pattern;
}
+char *
+cistrstr(const char *s, const char *sub) {
+ int c, csub;
+ unsigned int len;
+
+ if(!sub)
+ return (char *)s;
+ if((c = *sub++) != 0) {
+ c = tolower(c);
+ len = strlen(sub);
+ do {
+ do {
+ if((csub = *s++) == 0)
+ return (NULL);
+ }
+ while(tolower(csub) != c);
+ }
+ while(strncasecmp(s, sub, len) != 0);
+ s--;
+ }
+ return (char *)s;
+}
+
unsigned int
textnw(const char *text, unsigned int len) {
XRectangle r;