From: Avinal Kumar Date: Tue, 5 May 2026 15:11:40 +0000 (+0530) Subject: intl: Remove IN_LIBGLOCALE dead code X-Git-Tag: glibc-2.44~236 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6f837cdeddb2b2e4e9260b659a9e69e1e4c9f79a;p=thirdparty%2Fglibc.git intl: Remove IN_LIBGLOCALE dead code Remove all IN_LIBGLOCALE conditional blocks from intl/. libglocale was a proposed API from 2005 that was never completed or shipped. The macro is never defined in glibc or in current GNU gettext, making every #ifdef IN_LIBGLOCALE block dead code. GNU gettext removed these in commits starting from 2023. Removing them from glibc reduces noise and eases future syncs with gettext. Imported from GNU gettext commit d6a6801c1. Original author: Bruno Haible Signed-off-by: Avinal Kumar Reviewed-by: Adhemerval Zanella --- diff --git a/intl/dcigettext.c b/intl/dcigettext.c index fb948c1092..d738e485f3 100644 --- a/intl/dcigettext.c +++ b/intl/dcigettext.c @@ -81,9 +81,6 @@ extern int errno; #ifdef _LIBC # include #else -# ifdef IN_LIBGLOCALE -# include -# endif # include "libgnuintl.h" #endif #include "hash-string.h" @@ -214,7 +211,7 @@ static void *mempcpy (void *dest, const void *src, size_t n); #endif /* Whether to support different locales in different threads. */ -#if defined _LIBC || HAVE_USELOCALE || defined IN_LIBGLOCALE +#if defined _LIBC || HAVE_USELOCALE # define HAVE_PER_THREAD_LOCALE #endif @@ -233,11 +230,6 @@ struct known_translation_t const char *localename; #endif -#ifdef IN_LIBGLOCALE - /* The character encoding. */ - const char *encoding; -#endif - /* State of the catalog counter at the point the string was found. */ int counter; @@ -285,10 +277,6 @@ transcmp (const void *p1, const void *p2) if (result == 0) #endif { -#ifdef IN_LIBGLOCALE - result = strcmp (s1->encoding, s2->encoding); - if (result == 0) -#endif /* We compare the category last (though this is the cheapest operation) since it is hopefully always the same (namely LC_MESSAGES). */ @@ -304,11 +292,9 @@ transcmp (const void *p1, const void *p2) textdomain(3). The default value for this is "messages". */ const char _nl_default_default_domain[] attribute_hidden = "messages"; -#ifndef IN_LIBGLOCALE /* Value used as the default domain for gettext(3). */ const char *_nl_current_default_domain attribute_hidden = _nl_default_default_domain; -#endif /* Contains the default location of the message catalogs. */ #if defined __EMX__ @@ -324,25 +310,17 @@ libc_hidden_data_def (_nl_default_dirname) # endif #endif -#ifndef IN_LIBGLOCALE /* List with bindings of specific domains created by bindtextdomain() calls. */ struct binding *_nl_domain_bindings; -#endif /* Prototypes for local functions. */ static char *plural_lookup (struct loaded_l10nfile *domain, unsigned long int n, const char *translation, size_t translation_len); -#ifdef IN_LIBGLOCALE -static const char *guess_category_value (int category, - const char *categoryname, - const char *localename); -#else static const char *guess_category_value (int category, const char *categoryname); -#endif #ifdef _LIBC # include "../locale/localeinfo.h" @@ -350,7 +328,7 @@ static const char *guess_category_value (int category, #else static const char *category_to_name (int category); #endif -#if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE +#if (defined _LIBC || HAVE_ICONV) static const char *get_output_charset (struct binding *domainbinding); #endif @@ -429,18 +407,9 @@ static int enable_secure; /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale and, if PLURAL is nonzero, search over string depending on the plural form determined by N. */ -#ifdef IN_LIBGLOCALE -char * -gl_dcigettext (const char *domainname, - const char *msgid1, const char *msgid2, - int plural, unsigned long int n, - int category, - const char *localename, const char *encoding) -#else char * DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, int plural, unsigned long int n, int category) -#endif { struct loaded_l10nfile *domain; struct binding *binding; @@ -455,7 +424,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, int saved_errno; struct known_translation_t search; struct known_translation_t **foundp = NULL; -#if defined HAVE_PER_THREAD_LOCALE && !defined IN_LIBGLOCALE +#if defined HAVE_PER_THREAD_LOCALE const char *localename; #endif size_t domainname_len; @@ -502,21 +471,16 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, search.domainname = domainname; search.category = category; #ifdef HAVE_PER_THREAD_LOCALE -# ifndef IN_LIBGLOCALE -# ifdef _LIBC +# ifdef _LIBC localename = __current_locale_name (category); -# else +# else categoryname = category_to_name (category); -# define CATEGORYNAME_INITIALIZED +# define CATEGORYNAME_INITIALIZED localename = _nl_locale_name_thread_unsafe (category, categoryname); if (localename == NULL) localename = ""; -# endif # endif search.localename = localename; -# ifdef IN_LIBGLOCALE - search.encoding = encoding; -# endif /* Since tfind/tsearch manage a balanced tree, concurrent tfind and tsearch calls can be fatal. */ @@ -548,12 +512,6 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, DETERMINE_SECURE; /* First find matching binding. */ -#ifdef IN_LIBGLOCALE - /* We can use a trivial binding, since _nl_find_msg will ignore it anyway, - and _nl_load_domain and _nl_find_domain just pass it through. */ - binding = NULL; - dirname = bindtextdomain (domainname, NULL); -#else for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); @@ -573,7 +531,6 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, else { dirname = binding->dirname; -#endif if (!IS_ABSOLUTE_PATH (dirname)) { /* We have a relative path. Make it absolute now. */ @@ -589,20 +546,13 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, goto return_untranslated; dirname = xdirname; } -#ifndef IN_LIBGLOCALE } -#endif /* Now determine the symbolic name of CATEGORY and its value. */ #ifndef CATEGORYNAME_INITIALIZED categoryname = category_to_name (category); #endif -#ifdef IN_LIBGLOCALE - categoryvalue = guess_category_value (category, categoryname, localename); -#else categoryvalue = guess_category_value (category, categoryname); -#endif - domainname_len = strlen (domainname); xdomainname = (char *) malloc (strlen (categoryname) + domainname_len + 5); @@ -661,11 +611,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, if (domain != NULL) { -#if defined IN_LIBGLOCALE - retval = _nl_find_msg (domain, binding, encoding, msgid1, &retlen); -#else retval = _nl_find_msg (domain, binding, msgid1, 1, &retlen); -#endif if (retval == NULL) { @@ -673,13 +619,8 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) { -#if defined IN_LIBGLOCALE - retval = _nl_find_msg (domain->successor[cnt], binding, - encoding, msgid1, &retlen); -#else retval = _nl_find_msg (domain->successor[cnt], binding, msgid1, 1, &retlen); -#endif /* Resource problems are not fatal, instead we return no translation. */ @@ -740,9 +681,6 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, newp->category = category; #ifdef HAVE_PER_THREAD_LOCALE newp->localename = new_localename; -#endif -#ifdef IN_LIBGLOCALE - newp->encoding = encoding; #endif newp->counter = _nl_msg_cat_cntr; newp->domain = domain; @@ -823,17 +761,10 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, in case of a memory allocation failure during conversion (only if ENCODING != NULL resp. CONVERT == true). */ char * -#ifdef IN_LIBGLOCALE -_nl_find_msg (struct loaded_l10nfile *domain_file, - struct binding *domainbinding, const char *encoding, - const char *msgid, - size_t *lengthp) -#else _nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, int convert, size_t *lengthp) -#endif { struct loaded_domain *domain; nls_uint32 nstrings; @@ -939,16 +870,10 @@ _nl_find_msg (struct loaded_l10nfile *domain_file, } #if defined _LIBC || HAVE_ICONV -# ifdef IN_LIBGLOCALE - if (encoding != NULL) -# else if (convert) -# endif { /* We are supposed to do a conversion. */ -# ifndef IN_LIBGLOCALE const char *encoding = get_output_charset (domainbinding); -# endif size_t nconversions; struct converted_domain *convd; size_t i; @@ -1042,12 +967,7 @@ _nl_find_msg (struct loaded_l10nfile *domain_file, reallocate domain->conversions because we pass encoding = NULL or convert = 0, respectively. */ nullentry = -# ifdef IN_LIBGLOCALE - _nl_find_msg (domain_file, domainbinding, NULL, "", - &nullentrylen); -# else _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); -# endif /* Resource problems are fatal. If we continue onwards we will only attempt to calloc a new conv_tab and fail later. */ @@ -1461,21 +1381,13 @@ category_to_name (int category) /* Guess value of current locale from value of the environment variables or system-dependent defaults. */ static const char * -#ifdef IN_LIBGLOCALE -guess_category_value (int category, const char *categoryname, - const char *locale) - -#else guess_category_value (int category, const char *categoryname) -#endif { const char *language; -#ifndef IN_LIBGLOCALE const char *locale; -# ifndef _LIBC +#ifndef _LIBC const char *language_default; int locale_defaulted; -# endif #endif /* We use the settings in the following order: @@ -1492,18 +1404,17 @@ guess_category_value (int category, const char *categoryname) - If the system provides both a list of languages and a default locale, the former is used. */ -#ifndef IN_LIBGLOCALE /* Fetch the locale name, through the POSIX method of looking to `LC_ALL', `LC_xxx', and `LANG'. On some systems this can be done by the `setlocale' function itself. */ -# ifdef _LIBC +#ifdef _LIBC locale = __current_locale_name (category); -# else +#else locale_defaulted = 0; -# if HAVE_USELOCALE +# if HAVE_USELOCALE locale = _nl_locale_name_thread_unsafe (category, categoryname); if (locale == NULL) -# endif +# endif { locale = _nl_locale_name_posix (category, categoryname); if (locale == NULL) @@ -1512,7 +1423,6 @@ guess_category_value (int category, const char *categoryname) locale_defaulted = 1; } } -# endif #endif /* Ignore LANGUAGE and its system-dependent analogon if the locale is set @@ -1538,7 +1448,7 @@ guess_category_value (int category, const char *categoryname) language = getenv ("LANGUAGE"); if (language != NULL && language[0] != '\0') return language; -#if !defined IN_LIBGLOCALE && !defined _LIBC +#ifndef _LIBC /* The next priority value is the locale name, if not defaulted. */ if (locale_defaulted) { @@ -1552,7 +1462,7 @@ guess_category_value (int category, const char *categoryname) return locale; } -#if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE +#if (defined _LIBC || HAVE_ICONV) /* Returns the output charset. */ static const char * get_output_charset (struct binding *domainbinding) diff --git a/intl/gettextP.h b/intl/gettextP.h index 9de46847ef..bc007e40e2 100644 --- a/intl/gettextP.h +++ b/intl/gettextP.h @@ -70,18 +70,10 @@ extern void _nl_unload_domain (struct loaded_domain *__domain) # undef _INTL_REDIRECT_MACROS # define _INTL_REDIRECT_MACROS # include "libgnuintl.h" -# ifdef IN_LIBGLOCALE -extern char *gl_dcigettext (const char *__domainname, - const char *__msgid1, const char *__msgid2, - int __plural, unsigned long int __n, - int __category, - const char *__localename, const char *__encoding); -# else extern char *libintl_dcigettext (const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category); -# endif #endif #include "loadinfo.h" @@ -216,12 +208,7 @@ struct binding /* A counter which is incremented each time some previous translations become invalid. This variable is part of the external ABI of the GNU libintl. */ -#ifdef IN_LIBGLOCALE -# include -extern LIBGLOCALE_DLL_EXPORTED int _nl_msg_cat_cntr; -#else extern LIBINTL_DLL_EXPORTED int _nl_msg_cat_cntr; -#endif #ifndef _LIBC extern const char *_nl_language_preferences_default (void); @@ -258,18 +245,10 @@ void _nl_load_domain (struct loaded_l10nfile *__domain, struct binding *__domainbinding) attribute_hidden; -#ifdef IN_LIBGLOCALE -char *_nl_find_msg (struct loaded_l10nfile *domain_file, - struct binding *domainbinding, const char *encoding, - const char *msgid, - size_t *lengthp) - attribute_hidden; -#else char *_nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, int convert, size_t *lengthp) attribute_hidden; -#endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c index f0afa37363..2bb339f3b9 100644 --- a/intl/loadmsgcat.c +++ b/intl/loadmsgcat.c @@ -1256,12 +1256,7 @@ _nl_load_domain (struct loaded_l10nfile *domain_file, #endif /* Get the header entry and look for a plural specification. */ -#ifdef IN_LIBGLOCALE - nullentry = - _nl_find_msg (domain_file, domainbinding, NULL, "", &nullentrylen); -#else nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); -#endif if (__builtin_expect (nullentry == (char *) -1, 0)) { #ifdef _LIBC diff --git a/intl/localealias.c b/intl/localealias.c index 5ab48d317d..fbb26d9efd 100644 --- a/intl/localealias.c +++ b/intl/localealias.c @@ -294,14 +294,7 @@ read_alias_file (const char *fname, int fname_len) else if (cp[0] != '\0') *cp++ = '\0'; -#ifdef IN_LIBGLOCALE - /* glibc's locale.alias contains entries for ja_JP and ko_KR - that make it impossible to use a Japanese or Korean UTF-8 - locale under the name "ja_JP" or "ko_KR". Ignore these - entries. */ - if (strchr (alias, '_') == NULL) -#endif - { + { size_t alias_len; size_t value_len; diff --git a/intl/plural-exp.h b/intl/plural-exp.h index e2e0c30563..2259c07ab7 100644 --- a/intl/plural-exp.h +++ b/intl/plural-exp.h @@ -128,8 +128,8 @@ struct eval_result }; -#if !defined (_LIBC) && !defined (IN_LIBINTL) && !defined (IN_LIBGLOCALE) -extern struct eval_result plural_eval (const struct expression *pexp, +#if !defined (_LIBC) && !defined (IN_LIBINTL) +extern unsigned long int plural_eval (const struct expression *pexp, unsigned long int n); #endif