summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--intl/loadmsgcat.c19
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