if (b == NULL && a)
return 1;
- for (; *a || *b; a++, b++)
+ for (; *a && *b; a++, b++)
{
if ((i = ascii_tolower (*a) - ascii_tolower (*b)))
return i;
}
-
- return 0;
+
+ return ascii_tolower (*a) - ascii_tolower (*b);
}
int ascii_strncasecmp (const char *a, const char *b, int n)
if (b == NULL && a)
return 1;
- for (j = 0; (*a || *b) && j < n; a++, b++, j++)
+ for (j = 0; (*a && *b) && j < n; a++, b++, j++)
{
if ((i = ascii_tolower (*a) - ascii_tolower (*b)))
return i;
}
-
- return 0;
+ if (j < n)
+ return ascii_tolower (*a) - ascii_tolower (*b);
+ else
+ return 0;
}