diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | intl/loadmsgcat.c | 19 |
2 files changed, 17 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index 937362f5de..289530a991 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-04-30 Bruno Haible <bruno@clisp.org> + + * intl/loadmsgcat.c (_nl_init_domain_conv): Don't append //TRANSLIT to + the encoding if it already has slashes. + Reported by Perry Rapp <prapp@erols.com>. + 2002-12-11 Roland McGrath <roland@redhat.com> * csu/Makefile ($(objpfx)elf-init.oS): Remove target, braino. diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c index 7238ad3507..afcbd3c9fb 100644 --- a/intl/loadmsgcat.c +++ b/intl/loadmsgcat.c @@ -829,20 +829,23 @@ _nl_init_domain_conv (domain_file, domain, domainbinding) we want to use transliteration. */ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \ || _LIBICONV_VERSION >= 0x0105 - len = strlen (outcharset); - if (len < 10 || strcmp (outcharset + len - 9, "/TRANSLIT") != 0) + if (strchr (outcharset, '/') == NULL) { - char *tmp = (char *) alloca (len + 10 + 1); + char *tmp; + + len = strlen (outcharset); + tmp = (char *) alloca (len + 10 + 1); memcpy (tmp, outcharset, len); memcpy (tmp + len, "//TRANSLIT", 10 + 1); outcharset = tmp; + + domain->conv = iconv_open (outcharset, charset); + + freea (outcharset); } + else # endif - domain->conv = iconv_open (outcharset, charset); -# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \ - || _LIBICONV_VERSION >= 0x0105 - freea (outcharset); -# endif + domain->conv = iconv_open (outcharset, charset); # endif # endif |