aboutsummaryrefslogtreecommitdiff
path: root/intl
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-30 19:36:12 +0000
committerRoland McGrath <roland@gnu.org>2002-08-30 19:36:12 +0000
commit2b71beea82aa55d2e5aa8efa36013e0b6cc0d280 (patch)
treebefe97bcba912922c949c4673febdd0c011d891f /intl
parent1ce8aaaedbf549702c607e8a944bcb06b2c37544 (diff)
downloadglibc-2b71beea82aa55d2e5aa8efa36013e0b6cc0d280.zip
glibc-2b71beea82aa55d2e5aa8efa36013e0b6cc0d280.tar.gz
glibc-2b71beea82aa55d2e5aa8efa36013e0b6cc0d280.tar.bz2
* 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.
Diffstat (limited to 'intl')
-rw-r--r--intl/dcigettext.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index 2fb8a2f..81bfdce 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -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 *