Loading...
string/FreeBSD/wcsncasecmp.c.patch /dev/null Libc-763.13
--- /dev/null
+++ Libc/Libc-763.13/string/FreeBSD/wcsncasecmp.c.patch
@@ -0,0 +1,37 @@
+--- 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());
++}
++