Fix compile problem
authorUlrich Drepper <drepper@gmail.com>
Sat, 13 Aug 2011 16:21:10 +0000 (12:21 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 13 Aug 2011 16:21:10 +0000 (12:21 -0400)
l10nflist compiles for localedef now.  Optimize a bit.

ChangeLog
intl/l10nflist.c
locale/Makefile

index a5ad9e36cfc4b3c374f535ccf08dfb2f684fbd59..c4abdcc1a78f87a2aeca9800ee60565dcadc2063 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-08-13  Ulrich Drepper  <drepper@gmail.com>
+
+       * intl/l10nflist.c (_nl_normalize_codeset): Make it compile outside
+       of libc.  Make tolower call locale-independent.  Optimize a bit by
+       using isdigit instead of isalnum.
+       * locale/Makefile (locale-CPPFLAGS): Add -DNOT_IN_libc.
+
 2011-08-12  Ulrich Drepper  <drepper@gmail.com>
 
        * elf/dl-load.c (_dl_map_object): Show in debug output whether a DSO
index 82af2633b50356cf5abce3f4983c2a19916b398e..df91f3decaf91161803fe0837537703e28122220 100644 (file)
@@ -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';
index 2dbd8dc6a5b88b4b13a2a871735a1ff2f5218bb6..87c29a55a9231725b89296223771610505ed49ee 100644 (file)
@@ -1,4 +1,5 @@
-# Copyright (C) 1991,1992,1995-2003,2005,2009 Free Software Foundation, Inc.
+# Copyright (C) 1991,1992,1995-2003,2005,2009,2011
+# Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -96,7 +97,7 @@ locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \
                   -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
                   -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
                   -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \
-                  -Iprograms
+                  -Iprograms -DNOT_IN_libc
 
 CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
 CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts