/* $NetBSD: wcsncasecmp.c,v 1.2 2006/08/26 22:45:52 christos Exp $ */ /* * Copyright (C) 2006 Aleksey Cheusov * * This material is provided "as is", with absolutely no warranty expressed * or implied. Any use is at your own risk. * * Permission to use or copy this software for any purpose is hereby granted * without fee. Permission to modify the code and to distribute modified * code is also granted without any restrictions. */ #include #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: wcsncasecmp.c,v 1.2 2006/08/26 22:45:52 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" #include #include #include __weak_alias(wcsncasecmp,_wcsncasecmp) int wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n) { int lc1 = 0; int lc2 = 0; int diff = 0; _DIAGASSERT(s1); _DIAGASSERT(s2); while (n--) { lc1 = towlower (*s1); lc2 = towlower (*s2); diff = lc1 - lc2; if (diff) return diff; if (!lc1) return 0; ++s1; ++s2; } return 0; }