wcsncasecmp.c.patch [plain text]
--- wcsncasecmp.c.orig 2009-12-16 12:51:30.000000000 -0800
+++ wcsncasecmp.c 2009-12-16 13:02:55.000000000 -0800
@@ -27,19 +27,21 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD: src/lib/libc/string/wcsncasecmp.c,v 1.1 2009/02/28 06:00:58 das Exp $");
+#include "xlocale_private.h"
+
#include <wchar.h>
#include <wctype.h>
int
-wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n)
+wcsncasecmp_l(const wchar_t *s1, const wchar_t *s2, size_t n, locale_t loc)
{
wchar_t c1, c2;
if (n == 0)
return (0);
for (; *s1; s1++, s2++) {
- c1 = towlower(*s1);
- c2 = towlower(*s2);
+ c1 = towlower_l(*s1, loc);
+ c2 = towlower_l(*s2, loc);
if (c1 != c2)
return ((int)c1 - c2);
if (--n == 0)
@@ -47,3 +49,9 @@ wcsncasecmp(const wchar_t *s1, const wch
}
return (-*s2);
}
+
+int
+wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n) {
+ return wcsncasecmp_l(s1, s2, n, __current_locale());
+}
+