Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 29 Apr 2002 02:53:27 +0000 (02:53 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 29 Apr 2002 02:53:27 +0000 (02:53 +0000)
2002-04-28  Ulrich Drepper  <drepper@redhat.com>

* intl/loadmsgcat.c [!_LIBC] (_nl_init_domain_conv): Don't add
//TRANSLIT twice.

ChangeLog
intl/loadmsgcat.c

index efd5a82..f3e302a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-04-28  Ulrich Drepper  <drepper@redhat.com>
+
+       * intl/loadmsgcat.c [!_LIBC] (_nl_init_domain_conv): Don't add
+       //TRANSLIT twice.
+
 2002-04-27  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/ia64/fxstat.c: Fix a few issues with the
index 41f5650..db6e7ea 100644 (file)
@@ -1,5 +1,5 @@
 /* Load needed message catalogs.
-   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -201,12 +201,13 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
 #   if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
        || _LIBICONV_VERSION >= 0x0105
          len = strlen (outcharset);
-         {
-           char *tmp = (char *) alloca (len + 10 + 1);
-           memcpy (tmp, outcharset, len);
-           memcpy (tmp + len, "//TRANSLIT", 10 + 1);
-           outcharset = tmp;
-         }
+         if (len < 10 || strcmp (outcharset + len - 9, "/TRANSLIT") != 0)
+           {
+             char *tmp = (char *) alloca (len + 10 + 1);
+             memcpy (tmp, outcharset, len);
+             memcpy (tmp + len, "//TRANSLIT", 10 + 1);
+             outcharset = tmp;
+           }
 #   endif
          domain->conv = iconv_open (outcharset, charset);
 #   if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \