tolower_l
_XLOCALE_INLINE int tolower_l(int, locale_t);
while (tolower_l(*us1, locale) == tolower_l(*us2++, locale))
return (tolower_l(*us1, locale) - tolower_l(*--us2, locale));
if (tolower_l(*us1, locale) != tolower_l(*us2++, locale))
return (tolower_l(*us1, locale) - tolower_l(*--us2, locale));
c = tolower_l((unsigned char)c, locale);
} while ((char)tolower_l((unsigned char)sc, locale) != c);