#ifdef _LIBC
# include <libintl.h>
#else
-# ifdef IN_LIBGLOCALE
-# include <libintl.h>
-# endif
# include "libgnuintl.h"
#endif
#include "hash-string.h"
#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
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;
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). */
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__
# 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"
#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
/* 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;
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;
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. */
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);
else
{
dirname = binding->dirname;
-#endif
if (!IS_ABSOLUTE_PATH (dirname))
{
/* We have a relative path. Make it absolute now. */
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);
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)
{
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. */
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;
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;
}
#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;
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. */
/* 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:
- 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)
locale_defaulted = 1;
}
}
-# endif
#endif
/* Ignore LANGUAGE and its system-dependent analogon if the locale is set
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)
{
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)
# 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"
/* 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 <glocale/config.h>
-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);
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