]> git.deb.at Git - pkg/abook.git/blobdiff - intl/gettextP.h
Merge remote-tracking branch 'upstream/master' into upstream
[pkg/abook.git] / intl / gettextP.h
index c8418a3ef17ec4e476417af5011e4ba3de337549..d73b3e1834292c3d940ca7785a0c26a965ae7dea 100644 (file)
@@ -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 <drepper@cygnus.com>, 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
 # endif
 #endif
 
-/* Handle multi-threaded applications.  */
-#ifdef _LIBC
-# include <bits/libc-lock.h>
-# 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 <glocale/config.h>
-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  */