1#include <wchar.h>
2#include <wctype.h>
3
4int wcsncasecmp(const wchar_t* l, const wchar_t* r, size_t n) {
5    if (!n--)
6        return 0;
7    for (; *l && *r && n && (*l == *r || towlower(*l) == towlower(*r)); l++, r++, n--)
8        ;
9    return towlower(*l) - towlower(*r);
10}
11