collcmp.c.patch   [plain text]


--- collcmp.c.bsdnew	2009-11-09 15:05:25.000000000 -0800
+++ collcmp.c	2009-11-09 15:23:31.000000000 -0800
@@ -27,18 +27,20 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/lib/libc/locale/collcmp.c,v 1.18 2005/02/27 14:54:23 phantom Exp $");
 
-#include <string.h>
+#include <xlocale.h>
+#include <wchar.h>
 #include "collate.h"
 
 /*
  * Compare two characters using collate
  */
 
-int __collate_range_cmp(int c1, int c2)
+__private_extern__ int
+__collate_range_cmp(wchar_t c1, wchar_t c2, locale_t loc)
 {
-	static char s1[2], s2[2];
+	static wchar_t s1[2], s2[2];
 
 	s1[0] = c1;
 	s2[0] = c2;
-	return (strcoll(s1, s2));
+	return (wcscoll_l(s1, s2, loc));
 }