/* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ` */
int strcasecmp(const char *s1, const char *s2)
/* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ` */
int strcasecmp(const char *s1, const char *s2)
{
	const unsigned char *us1 = (const unsigned char *)s1,
			*us2 = (const unsigned char *)s2;
	while (tolower((int) *us1) == tolower((int) *us2++))
		if (*us1++ == '\0')
			return (0);
	return (tolower((int) *us1) - tolower((int) *--us2));
}