]> sourceware.org Git - glibc.git/commitdiff
* intl/dcigettext.c (DCIGETTEXT) [_LIBC]: Check for bogus CATEGORY.
authorRoland McGrath <roland@gnu.org>
Fri, 30 Aug 2002 19:36:12 +0000 (19:36 +0000)
committerRoland McGrath <roland@gnu.org>
Fri, 30 Aug 2002 19:36:12 +0000 (19:36 +0000)
[_LIBC] (category_to_name): Don't define the function.  Instead
define a macro using _nl_category_names.

ChangeLog
intl/dcigettext.c

index 1f484638fd3148955da6d833a4eb9829d728b8e1..8d9cf20a3690f9267a438b8123670064e76f190c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2002-08-30  Roland McGrath  <roland@redhat.com>
 
+       * intl/dcigettext.c (DCIGETTEXT) [_LIBC]: Check for bogus CATEGORY.
+       [_LIBC] (category_to_name): Don't define the function.  Instead
+       define a macro using _nl_category_names.
+
        * locale/xlocale.h (struct __locale_struct): New member `__names'.
        * locale/xlocale.c (_nl_C_locobj): Update initializer.
        * locale/global-locale.c (_nl_global_locale): Likewise.
index 2fb8a2f0485e95cd1db5387517092f0784594140..81bfdceb94c7e51b5a35e62196a5b910c9945837 100644 (file)
@@ -265,10 +265,15 @@ static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain,
                                    const char *translation,
                                    size_t translation_len))
      internal_function;
-static const char *category_to_name PARAMS ((int category)) internal_function;
 static const char *guess_category_value PARAMS ((int category,
                                                 const char *categoryname))
      internal_function;
+#ifdef _LIBC
+# include "../locale/localeinfo.h"
+# define category_to_name(category)    _nl_category_names[category]
+#else
+static const char *category_to_name PARAMS ((int category)) internal_function;
+#endif
 
 
 /* For those loosing systems which don't have `alloca' we have to add
@@ -391,6 +396,15 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
   if (msgid1 == NULL)
     return NULL;
 
+#ifdef _LIBC
+  if (category < 0 || category >= __LC_LAST || category == LC_ALL)
+    /* Bogus.  */
+    return (plural == 0
+           ? (char *) msgid1
+           /* Use the Germanic plural rule.  */
+           : n == 1 ? (char *) msgid1 : (char *) msgid2);
+#endif
+
   __libc_rwlock_rdlock (_nl_state_lock);
 
   /* If DOMAINNAME is NULL, we are interested in the default domain.  If
@@ -985,7 +999,7 @@ plural_lookup (domain, n, translation, translation_len)
   return (char *) p;
 }
 
-
+#ifndef _LIBC
 /* Return string representation of locale CATEGORY.  */
 static const char *
 internal_function
@@ -1045,6 +1059,7 @@ category_to_name (category)
 
   return retval;
 }
+#endif
 
 /* Guess value of current locale from value of the environment variables.  */
 static const char *
This page took 0.052999 seconds and 5 git commands to generate.