about summary refs log tree commit diff
path: root/intl/l10nflist.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-08-13 12:21:10 -0400
committerUlrich Drepper <drepper@gmail.com>2011-08-13 12:21:10 -0400
commitf9ddf089f124279836930692b9cd7bc807e60088 (patch)
treec5a1524c7bbfb3bebed9ee23f702c69f4375d979 /intl/l10nflist.c
parent07df30d99565f1b4dd6d9abf4a1c169bbd9aa3be (diff)
downloadglibc-f9ddf089f124279836930692b9cd7bc807e60088.tar.gz
glibc-f9ddf089f124279836930692b9cd7bc807e60088.tar.xz
glibc-f9ddf089f124279836930692b9cd7bc807e60088.zip
Fix compile problem
l10nflist compiles for localedef now.  Optimize a bit.
Diffstat (limited to 'intl/l10nflist.c')
-rw-r--r--intl/l10nflist.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/intl/l10nflist.c b/intl/l10nflist.c
index 82af2633b5..df91f3deca 100644
--- a/intl/l10nflist.c
+++ b/intl/l10nflist.c
@@ -334,13 +334,18 @@ _nl_normalize_codeset (codeset, name_len)
   char *retval;
   char *wp;
   size_t cnt;
+#ifdef NOT_IN_libc
+  locale_t locale = newlocale (0, "C", NULL);
+#else
+# define locale _nl_C_locobj_ptr
+#endif
 
   for (cnt = 0; cnt < name_len; ++cnt)
-    if (__isalnum_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr))
+    if (__isalnum_l ((unsigned char) codeset[cnt], locale))
       {
 	++len;
 
-	if (__isalpha_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr))
+	if (! __isdigit_l ((unsigned char) codeset[cnt], locale))
 	  only_digit = 0;
       }
 
@@ -348,15 +353,14 @@ _nl_normalize_codeset (codeset, name_len)
 
   if (retval != NULL)
     {
+      wp = retval;
       if (only_digit)
-	wp = stpcpy (retval, "iso");
-      else
-	wp = retval;
+	wp = stpcpy (wp, "iso");
 
       for (cnt = 0; cnt < name_len; ++cnt)
-	if (__isalpha_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr))
-	  *wp++ = tolower ((unsigned char) codeset[cnt]);
-	else if (__isdigit_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr))
+	if (__isalpha_l ((unsigned char) codeset[cnt], locale))
+	  *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale);
+	else if (__isdigit_l ((unsigned char) codeset[cnt], locale))
 	  *wp++ = codeset[cnt];
 
       *wp = '\0';