diff options
author | Pedro J. Ruiz Lopez <holzplatten@es.gnu.org> | 2007-02-18 19:35:04 +0000 |
---|---|---|
committer | Pedro J. Ruiz Lopez <holzplatten@es.gnu.org> | 2007-02-18 19:35:04 +0000 |
commit | d49b34302a70ad948ce9cbf5778b1b39adb4286d (patch) | |
tree | d67ad1453f9380f549d880e5ffbc43df8ba63828 /intl/bindtextdom.c | |
parent | 80f3bd30c7521091c1dea118603b20a76c2a180c (diff) | |
download | idutils-d49b34302a70ad948ce9cbf5778b1b39adb4286d.tar.gz idutils-d49b34302a70ad948ce9cbf5778b1b39adb4286d.tar.bz2 idutils-d49b34302a70ad948ce9cbf5778b1b39adb4286d.zip |
Upgrade to gettext 0.16.1
Diffstat (limited to 'intl/bindtextdom.c')
-rw-r--r-- | intl/bindtextdom.c | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c index 7a26062..d1b1f90 100644 --- a/intl/bindtextdom.c +++ b/intl/bindtextdom.c @@ -1,5 +1,5 @@ /* Implementation of the bindtextdomain(3) function - Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc. + Copyright (C) 1995-1998, 2000-2003, 2005-2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published @@ -24,21 +24,21 @@ #include <stdlib.h> #include <string.h> +#include "gettextP.h" #ifdef _LIBC # include <libintl.h> #else # include "libgnuintl.h" #endif -#include "gettextP.h" +/* Handle multi-threaded applications. */ #ifdef _LIBC -/* We have to handle multi-threaded applications. */ # include <bits/libc-lock.h> +# define gl_rwlock_define __libc_rwlock_define +# define gl_rwlock_wrlock __libc_rwlock_wrlock +# define gl_rwlock_unlock __libc_rwlock_unlock #else -/* Provide dummy implementation if this is outside glibc. */ -# define __libc_rwlock_define(CLASS, NAME) -# define __libc_rwlock_wrlock(NAME) -# define __libc_rwlock_unlock(NAME) +# include "lock.h" #endif /* The internal variables in the standalone libintl.a must have different @@ -59,16 +59,14 @@ /* Contains the default location of the message catalogs. */ extern const char _nl_default_dirname[]; #ifdef _LIBC -extern const char _nl_default_dirname_internal[] attribute_hidden; -#else -# define INTUSE(name) name +libc_hidden_proto (_nl_default_dirname) #endif /* List with bindings of specific domains. */ extern struct binding *_nl_domain_bindings; /* Lock variable to protect the global data in the gettext implementation. */ -__libc_rwlock_define (extern, _nl_state_lock attribute_hidden) +gl_rwlock_define (extern, _nl_state_lock attribute_hidden) /* Names for the libintl functions are a problem. They must not clash @@ -109,7 +107,7 @@ set_binding_values (const char *domainname, return; } - __libc_rwlock_wrlock (_nl_state_lock); + gl_rwlock_wrlock (_nl_state_lock); modified = 0; @@ -144,8 +142,8 @@ set_binding_values (const char *domainname, char *result = binding->dirname; if (strcmp (dirname, result) != 0) { - if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0) - result = (char *) INTUSE(_nl_default_dirname); + if (strcmp (dirname, _nl_default_dirname) == 0) + result = (char *) _nl_default_dirname; else { #if defined _LIBC || defined HAVE_STRDUP @@ -160,7 +158,7 @@ set_binding_values (const char *domainname, if (__builtin_expect (result != NULL, 1)) { - if (binding->dirname != INTUSE(_nl_default_dirname)) + if (binding->dirname != _nl_default_dirname) free (binding->dirname); binding->dirname = result; @@ -201,7 +199,6 @@ set_binding_values (const char *domainname, free (binding->codeset); binding->codeset = result; - binding->codeset_cntr++; modified = 1; } } @@ -214,7 +211,7 @@ set_binding_values (const char *domainname, { /* Simply return the default values. */ if (dirnamep) - *dirnamep = INTUSE(_nl_default_dirname); + *dirnamep = _nl_default_dirname; if (codesetp) *codesetp = NULL; } @@ -236,11 +233,11 @@ set_binding_values (const char *domainname, if (dirname == NULL) /* The default value. */ - dirname = INTUSE(_nl_default_dirname); + dirname = _nl_default_dirname; else { - if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0) - dirname = INTUSE(_nl_default_dirname); + if (strcmp (dirname, _nl_default_dirname) == 0) + dirname = _nl_default_dirname; else { char *result; @@ -263,9 +260,7 @@ set_binding_values (const char *domainname, } else /* The default value. */ - new_binding->dirname = (char *) INTUSE(_nl_default_dirname); - - new_binding->codeset_cntr = 0; + new_binding->dirname = (char *) _nl_default_dirname; if (codesetp) { @@ -287,7 +282,6 @@ set_binding_values (const char *domainname, memcpy (result, codeset, len); #endif codeset = result; - new_binding->codeset_cntr++; } *codesetp = codeset; new_binding->codeset = (char *) codeset; @@ -319,7 +313,7 @@ set_binding_values (const char *domainname, if (0) { failed_codeset: - if (new_binding->dirname != INTUSE(_nl_default_dirname)) + if (new_binding->dirname != _nl_default_dirname) free (new_binding->dirname); failed_dirname: free (new_binding); @@ -335,7 +329,7 @@ set_binding_values (const char *domainname, if (modified) ++_nl_msg_cat_cntr; - __libc_rwlock_unlock (_nl_state_lock); + gl_rwlock_unlock (_nl_state_lock); } /* Specify that the DOMAINNAME message catalog will be found |