diff options
author | Roland McGrath <roland@gnu.org> | 2002-08-30 19:36:12 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-08-30 19:36:12 +0000 |
commit | 2b71beea82aa55d2e5aa8efa36013e0b6cc0d280 (patch) | |
tree | befe97bcba912922c949c4673febdd0c011d891f /intl/dcigettext.c | |
parent | 1ce8aaaedbf549702c607e8a944bcb06b2c37544 (diff) | |
download | glibc-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/dcigettext.c')
-rw-r--r-- | intl/dcigettext.c | 19 |
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 * |