* locale/nl_langinfo.c [NL_CURRENT_INDIRECT]: Use a categories.def
authorRoland McGrath <roland@gnu.org>
Thu, 29 Aug 2002 02:18:11 +0000 (02:18 +0000)
committerRoland McGrath <roland@gnu.org>
Thu, 29 Aug 2002 02:18:11 +0000 (02:18 +0000)
iterator to refer to each category's _nl_current_LC_FOO symbol, so
we know they are all linked in.

ChangeLog
linuxthreads/ChangeLog
locale/nl_langinfo.c

index cd6fb77..d8455f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2002-08-28  Roland McGrath  <roland@redhat.com>
 
+       * locale/nl_langinfo.c [NL_CURRENT_INDIRECT]: Use a categories.def
+       iterator to refer to each category's _nl_current_LC_FOO symbol, so
+       we know they are all linked in.
+
        * NEWS: Added 2.2.6 text from 2.2 branch version.
 
        * time/strptime.c (strptime_internal): Remove spurious const.
index 1091ce6..2ae14e0 100644 (file)
@@ -1,3 +1,7 @@
+2002-08-28  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast.
+
 2002-08-28  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file.
@@ -7,7 +11,7 @@
 2002-08-28  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/pthread/timer_routines.c (thread_func): Change return
-       type to void and add casts in use to avoid warnings wit all gcc
+       type to void and add casts in use to avoid warnings with all gcc
        versions.
 
 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
index 7df2b30..2314b80 100644 (file)
@@ -47,6 +47,18 @@ nl_langinfo (item)
 
 #ifdef USE_IN_EXTENDED_LOCALE_MODEL
   data = l->__locales[category];
+#elif defined NL_CURRENT_INDIRECT
+  /* Make direct reference to every _nl_current_CATEGORY symbol,
+     since we know only at runtime which categories are used.  */
+  switch (category)
+    {
+# define DEFINE_CATEGORY(category, category_name, items, a) \
+      case category: data = *_nl_current_##category; break;
+# include "categories.def"
+# undef        DEFINE_CATEGORY
+    default:                   /* Should be impossible.  */
+      return (char *) "";
+    }
 #else
   data = _NL_CURRENT_DATA (category);
 #endif