-+ uchar ch1, ch2;
-+ ch1 = islower(*c1) ? toupper(*c1) : *c1;
-+ ch2 = islower(*c2) ? toupper(*c2) : *c2;
-+ c1++, c2++;
-+ if ((dif = (int)ch1 - (int)ch2) != 0)
-+ break;
-+ } else if ((dif = (int)*c1++ - (int)*c2++) != 0)
- break;
- if (!*c1) {
- switch (state1) {
---- orig/lib/wildmatch.c 2006-01-14 08:14:31
-+++ lib/wildmatch.c 2006-01-03 17:29:11
++ if (isupper(ch1))
++ ch1 = tolower(ch1);
++ if (isupper(ch2))
++ ch2 = tolower(ch2);
++ }
++ } while ((dif = (int)ch1 - (int)ch2) == 0);
+
+ return dif;
+ }
+--- old/ifuncs.h
++++ new/ifuncs.h
+@@ -98,3 +98,38 @@ toUpper(const char *ptr)
+ {
+ return toupper(*(unsigned char *)ptr);
+ }
++
++static inline int
++strEQ(const char *s1, const char *s2)
++{
++ return strcmp(s1, s2) == 0;
++}
++
++static inline int
++strnEQ(const char *s1, const char *s2, size_t n)
++{
++ return strncmp(s1, s2, n) == 0;
++}
++
++static inline int
++ic_strEQ(const char *s1, const char *s2)
++{
++ extern int ignore_case;
++ if (ignore_case)
++ return strcasecmp(s1, s2) == 0;
++ return strcmp(s1, s2) == 0;
++}
++
++static inline int
++ic_strnEQ(const char *s1, const char *s2, size_t n)
++{
++ extern int ignore_case;
++ if (ignore_case)
++ return strncasecmp(s1, s2, n) == 0;
++ return strncmp(s1, s2, n) == 0;
++}
++
++#define strNE(s1,s2) (!strEQ(s1,s2))
++#define strnNE(s1,s2,n) (!strnEQ(s1,s2,n))
++#define ic_strNE(s1,s2) (!ic_strEQ(s1,s2))
++#define ic_strnNE(s1,s2) (!ic_strnEQ(s1,s2,n))
+--- old/lib/wildmatch.c
++++ new/lib/wildmatch.c