summaryrefslogtreecommitdiffstats
path: root/lib/libc/locale/collcmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/locale/collcmp.c')
-rw-r--r--lib/libc/locale/collcmp.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/libc/locale/collcmp.c b/lib/libc/locale/collcmp.c
index aa17afd..ce71a71 100644
--- a/lib/libc/locale/collcmp.c
+++ b/lib/libc/locale/collcmp.c
@@ -33,20 +33,31 @@
__FBSDID("$FreeBSD$");
#include <string.h>
-#include <xlocale.h>
+#include <wchar.h>
#include "collate.h"
/*
* Compare two characters using collate
*/
-int __collate_range_cmp(struct xlocale_collate *table, int c1, int c2)
+int __collate_range_cmp(char c1, char c2)
{
- static char s1[2], s2[2];
+ char s1[2], s2[2];
s1[0] = c1;
+ s1[1] = '\0';
s2[0] = c2;
- struct _xlocale l = {{0}};
- l.components[XLC_COLLATE] = (struct xlocale_component *)table;
- return (strcoll_l(s1, s2, &l));
+ s2[1] = '\0';
+ return (strcoll(s1, s2));
+}
+
+int __wcollate_range_cmp(wchar_t c1, wchar_t c2)
+{
+ wchar_t s1[2], s2[2];
+
+ s1[0] = c1;
+ s1[1] = L'\0';
+ s2[0] = c2;
+ s2[1] = L'\0';
+ return (wcscoll(s1, s2));
}
OpenPOWER on IntegriCloud