--- 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)); }