+2004-08-06 Jakub Jelinek <jakub@redhat.com>
+
+ * finddomain.c (free_mem): Rename to...
+ (_nl_finddomain_subfreeres): ... this. Add __libc_freeres_fn_section.
+ * loadmsgcat.c (_nl_unload_domain): Add __libc_freeres_fn_section.
+ * gettextP.h (_nl_unload_domain): Move into #ifdef _LIBC.
+ Add attribute_hidden.
+ (_nl_findomain_subfreeres): New prototype.
+
2005-05-05 Bruno Haible <bruno@clisp.org>
* dcigettext.c (_nl_find_msg) [_LIBC]: Update norm_add_slashes call.
/* Handle list of needed message catalogs
- Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1995-1999, 2000-2001, 2003-2004 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.org>, 1995.
This program is free software; you can redistribute it and/or modify it
#ifdef _LIBC
-libc_freeres_fn (free_mem)
+/* This is called from iconv/gconv_db.c's free_mem, as locales must
+ be freed before freeing gconv steps arrays. */
+void __libc_freeres_fn_section
+_nl_finddomain_subfreeres ()
{
struct loaded_l10nfile *runp = _nl_loaded_domains;
/* 1 if the hash table uses a different endianness than this machine. */
int must_swap_hash_tab;
- int codeset_cntr;
-
/* Cache of charset conversions of the translated strings. */
struct converted_domain *conversions;
size_t nconversions;
{
struct binding *next;
char *dirname;
- int codeset_cntr; /* Incremented each time codeset changes. */
char *codeset;
char domainname[ZERO];
};
void _nl_load_domain (struct loaded_l10nfile *__domain,
struct binding *__domainbinding)
internal_function;
-void _nl_unload_domain (struct loaded_domain *__domain)
- internal_function;
char *_nl_find_msg (struct loaded_l10nfile *domain_file,
struct binding *domainbinding, const char *msgid,
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. */
#ifdef _LIBC
void
-internal_function
+internal_function __libc_freeres_fn_section
_nl_unload_domain (struct loaded_domain *domain)
{
size_t i;