runetype.c.patch   [plain text]


--- runetype.c.orig	2004-11-25 11:38:19.000000000 -0800
+++ runetype.c	2005-02-16 22:43:53.000000000 -0800
@@ -37,20 +37,25 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/lib/libc/locale/runetype.c,v 1.11 2004/07/29 06:16:19 tjr Exp $");
 
+#include "xlocale_private.h"
+
 #include <stdio.h>
 #include <runetype.h>
 
 unsigned long
-___runetype(c)
+___runetype_l(c, loc)
 	__ct_rune_t c;
+	locale_t loc;
 {
 	size_t lim;
-	_RuneRange *rr = &_CurrentRuneLocale->__runetype_ext;
+	_RuneRange *rr;
 	_RuneEntry *base, *re;
 
 	if (c < 0 || c == EOF)
 		return(0L);
 
+	NORMALIZE_LOCALE(loc);
+	rr = &loc->__lc_ctype->_CurrentRuneLocale.__runetype_ext;
 	/* Binary search -- see bsearch.c for explanation. */
 	base = rr->__ranges;
 	for (lim = rr->__nranges; lim != 0; lim >>= 1) {
@@ -68,3 +73,10 @@
 
 	return(0L);
 }
+
+unsigned long
+___runetype(c)
+	__ct_rune_t c;
+{
+	return ___runetype_l(c, __current_locale());
+}