X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=intl%2FgettextP.h;h=d73b3e1834292c3d940ca7785a0c26a965ae7dea;hb=69a912c0db0ac135fff332db4f0b05ad9ed2eec6;hp=c8418a3ef17ec4e476417af5011e4ba3de337549;hpb=ee5170ade20748797fdde09e370fbb07e585fc9a;p=pkg%2Fabook.git diff --git a/intl/gettextP.h b/intl/gettextP.h index c8418a3..d73b3e1 100644 --- a/intl/gettextP.h +++ b/intl/gettextP.h @@ -1,5 +1,5 @@ /* Header describing internals of libintl library. - Copyright (C) 1995-1999, 2000-2007, 2009-2010 Free Software Foundation, Inc. + Copyright (C) 1995-1999, 2000-2005 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it @@ -14,7 +14,7 @@ You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GETTEXTP_H @@ -30,60 +30,6 @@ # endif #endif -/* Handle multi-threaded applications. */ -#ifdef _LIBC -# include -# define gl_rwlock_define __libc_rwlock_define -#else -# include "lock.h" -#endif - -#ifdef _LIBC -extern char *__gettext (const char *__msgid); -extern char *__dgettext (const char *__domainname, const char *__msgid); -extern char *__dcgettext (const char *__domainname, const char *__msgid, - int __category); -extern char *__ngettext (const char *__msgid1, const char *__msgid2, - unsigned long int __n); -extern char *__dngettext (const char *__domainname, - const char *__msgid1, const char *__msgid2, - unsigned long int n); -extern char *__dcngettext (const char *__domainname, - const char *__msgid1, const char *__msgid2, - unsigned long int __n, int __category); -extern char *__dcigettext (const char *__domainname, - const char *__msgid1, const char *__msgid2, - int __plural, unsigned long int __n, - int __category); -extern char *__textdomain (const char *__domainname); -extern char *__bindtextdomain (const char *__domainname, - const char *__dirname); -extern char *__bind_textdomain_codeset (const char *__domainname, - const char *__codeset); -extern void _nl_finddomain_subfreeres (void) attribute_hidden; -extern void _nl_unload_domain (struct loaded_domain *__domain) - internal_function attribute_hidden; -#else -/* Declare the exported libintl_* functions, in a way that allows us to - call them under their real name. */ -# undef _INTL_REDIRECT_INLINE -# 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" #include "gmo.h" /* Get nls_uint32. */ @@ -114,12 +60,8 @@ extern char *libintl_dcigettext (const char *__domainname, # define SWAP(i) bswap_32 (i) #else static inline nls_uint32 -# ifdef __cplusplus -SWAP (nls_uint32 i) -# else SWAP (i) nls_uint32 i; -# endif { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } @@ -135,26 +77,6 @@ struct sysdep_string_desc const char *pointer; }; -/* Cache of translated strings after charset conversion. - Note: The strings are converted to the target encoding only on an as-needed - basis. */ -struct converted_domain -{ - /* The target encoding name. */ - const char *encoding; - /* The descriptor for conversion from the message catalog's encoding to - this target encoding. */ -#ifdef _LIBC - __gconv_t conv; -#else -# if HAVE_ICONV - iconv_t conv; -# endif -#endif - /* The table of translated strings after charset conversion. */ - char **conv_tab; -}; - /* The representation of an opened message catalog. */ struct loaded_domain { @@ -190,12 +112,17 @@ struct loaded_domain /* 1 if the hash table uses a different endianness than this machine. */ int must_swap_hash_tab; - /* Cache of charset conversions of the translated strings. */ - struct converted_domain *conversions; - size_t nconversions; - gl_rwlock_define (, conversions_lock) + int codeset_cntr; +#ifdef _LIBC + __gconv_t conv; +#else +# if HAVE_ICONV + iconv_t conv; +# endif +#endif + char **conv_tab; - const struct expression *plural; + struct expression *plural; unsigned long int nplurals; }; @@ -213,6 +140,7 @@ struct binding { struct binding *next; char *dirname; + int codeset_cntr; /* Incremented each time codeset changes. */ char *codeset; char domainname[ZERO]; }; @@ -220,38 +148,13 @@ 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 +extern int _nl_msg_cat_cntr; #ifndef _LIBC -extern const char *_nl_language_preferences_default (void); -# define gl_locale_name_canonicalize _nl_locale_name_canonicalize -extern void _nl_locale_name_canonicalize (char *name); -# define gl_locale_name_from_win32_LANGID _nl_locale_name_from_win32_LANGID -/* extern const char *_nl_locale_name_from_win32_LANGID (LANGID langid); */ -# define gl_locale_name_from_win32_LCID _nl_locale_name_from_win32_LCID -/* extern const char *_nl_locale_name_from_win32_LCID (LCID lcid); */ -# define gl_locale_name_thread_unsafe _nl_locale_name_thread_unsafe -extern const char *_nl_locale_name_thread_unsafe (int category, - const char *categoryname); -# define gl_locale_name_thread _nl_locale_name_thread -/* extern const char *_nl_locale_name_thread (int category, - const char *categoryname); */ -# define gl_locale_name_posix _nl_locale_name_posix -extern const char *_nl_locale_name_posix (int category, - const char *categoryname); -# define gl_locale_name_environ _nl_locale_name_environ -extern const char *_nl_locale_name_environ (int category, - const char *categoryname); -# define gl_locale_name_default _nl_locale_name_default -extern const char *_nl_locale_name_default (void); -# define gl_locale_name _nl_locale_name -/* extern const char *_nl_locale_name (int category, - const char *categoryname); */ +const char *_nl_language_preferences_default (void); +const char *_nl_locale_name_posix (int category, const char *categoryname); +const char *_nl_locale_name_default (void); +const char *_nl_locale_name (int category, const char *categoryname); #endif struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale, @@ -261,51 +164,55 @@ struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale, void _nl_load_domain (struct loaded_l10nfile *__domain, struct binding *__domainbinding) internal_function; - -#ifdef IN_LIBGLOCALE -char *_nl_find_msg (struct loaded_l10nfile *domain_file, - struct binding *domainbinding, const char *encoding, - const char *msgid, - size_t *lengthp) +void _nl_unload_domain (struct loaded_domain *__domain) internal_function; -#else +const char *_nl_init_domain_conv (struct loaded_l10nfile *__domain_file, + struct loaded_domain *__domain, + struct binding *__domainbinding) + internal_function; +void _nl_free_domain_conv (struct loaded_domain *__domain) + internal_function; + char *_nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, - int convert, size_t *lengthp) + size_t *lengthp) internal_function; -#endif - -/* The internal variables in the standalone libintl.a must have different - names than the internal variables in GNU libc, otherwise programs - using libintl.a cannot be linked statically. */ -#if !defined _LIBC -# define _nl_default_dirname libintl_nl_default_dirname -# define _nl_domain_bindings libintl_nl_domain_bindings -#endif -/* Contains the default location of the message catalogs. */ -extern const char _nl_default_dirname[]; #ifdef _LIBC -libc_hidden_proto (_nl_default_dirname) -#endif - -/* List with bindings of specific domains. */ -extern struct binding *_nl_domain_bindings; - -/* The internal variables in the standalone libintl.a must have different - names than the internal variables in GNU libc, otherwise programs - using libintl.a cannot be linked statically. */ -#if !defined _LIBC -# define _nl_default_default_domain libintl_nl_default_default_domain -# define _nl_current_default_domain libintl_nl_current_default_domain +extern char *__gettext (const char *__msgid); +extern char *__dgettext (const char *__domainname, const char *__msgid); +extern char *__dcgettext (const char *__domainname, const char *__msgid, + int __category); +extern char *__ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n); +extern char *__dngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int n); +extern char *__dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category); +extern char *__dcigettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + int __plural, unsigned long int __n, + int __category); +extern char *__textdomain (const char *__domainname); +extern char *__bindtextdomain (const char *__domainname, + const char *__dirname); +extern char *__bind_textdomain_codeset (const char *__domainname, + const char *__codeset); +#else +/* Declare the exported libintl_* functions, in a way that allows us to + call them under their real name. */ +# undef _INTL_REDIRECT_INLINE +# undef _INTL_REDIRECT_MACROS +# define _INTL_REDIRECT_MACROS +# include "libgnuintl.h" +extern char *libintl_dcigettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + int __plural, unsigned long int __n, + int __category); #endif -/* Name of the default text domain. */ -extern const char _nl_default_default_domain[] attribute_hidden; - -/* Default text domain in which entries for gettext(3) are to be found. */ -extern const char *_nl_current_default_domain attribute_hidden; - /* @@ begin of epilog @@ */ #endif /* gettextP.h */