summary refs log tree commit diff
path: root/intl/gettextP.h
diff options
context:
space:
mode:
Diffstat (limited to 'intl/gettextP.h')
-rw-r--r--intl/gettextP.h45
1 files changed, 19 insertions, 26 deletions
diff --git a/intl/gettextP.h b/intl/gettextP.h
index f18535a5b3..46b51e1008 100644
--- a/intl/gettextP.h
+++ b/intl/gettextP.h
@@ -1,5 +1,5 @@
 /* Header describing internals of libintl library.
-   Copyright (C) 1995-1999, 2000, 2001, 2004-2005 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000, 2001, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
@@ -88,26 +88,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
 {
@@ -143,9 +123,15 @@ 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;
+  int codeset_cntr;
+#ifdef _LIBC
+  __gconv_t conv;
+#else
+# if HAVE_ICONV
+  iconv_t conv;
+# endif
+#endif
+  char **conv_tab;
 
   struct expression *plural;
   unsigned long int nplurals;
@@ -165,6 +151,7 @@ struct binding
 {
   struct binding *next;
   char *dirname;
+  int codeset_cntr;	/* Incremented each time codeset changes.  */
   char *codeset;
   char domainname[ZERO];
 };
@@ -186,10 +173,16 @@ struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
 void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
 			      struct binding *__domainbinding))
      internal_function;
+const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
+					  struct loaded_domain *__domain,
+					  struct binding *__domainbinding))
+     internal_function;
+void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
+     internal_function;
 
 char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
-			    struct binding *domainbinding, const char *msgid,
-			    int convert, size_t *lengthp))
+			    struct binding *domainbinding,
+			    const char *msgid, size_t *lengthp))
      internal_function;
 
 #ifdef _LIBC