Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/translit.po
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/translit.po	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/translit.po	(revision 1818)
@@ -0,0 +1,9 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+
+msgid "test"
+msgstr "«© Æß»"
+
+msgid "onemore"
+msgstr "œ*œ=Œ"
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-codeset.c
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-codeset.c	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-codeset.c	(revision 1818)
@@ -0,0 +1,58 @@
+/* Test of bind_textdomain_codeset.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Bruno Haible <haible@clisp.cons.org>, 2001.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main (void)
+{
+  char *s;
+  int result = 0;
+
+  unsetenv ("LANGUAGE");
+  unsetenv ("OUTPUT_CHARSET");
+  setlocale (LC_ALL, "de_DE.ISO-8859-1");
+  textdomain ("codeset");
+  bindtextdomain ("codeset", OBJPFX "domaindir");
+
+  /* Here we expect output in ISO-8859-1.  */
+  s = gettext ("cheese");
+  if (strcmp (s, "K\344se"))
+    {
+      printf ("call 1 returned: %s\n", s);
+      result = 1;
+    }
+
+  bind_textdomain_codeset ("codeset", "UTF-8");
+
+  /* Here we expect output in UTF-8.  */
+  s = gettext ("cheese");
+  if (strcmp (s, "K\303\244se"))
+    {
+      printf ("call 2 returned: %s\n", s);
+      result = 1;
+    }
+
+  return result;
+}
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-codeset.sh
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-codeset.sh	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-codeset.sh	(revision 1818)
@@ -0,0 +1,44 @@
+#! /bin/sh
+# Test of bind_textdomain_codeset.
+# Copyright (C) 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
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
+
+common_objpfx=$1
+objpfx=$2
+
+LC_ALL=C
+export LC_ALL
+
+# Generate the test data.
+test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
+# Create the domain directories.
+test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
+test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
+# Populate them.
+msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
+
+GCONV_PATH=${common_objpfx}iconvdata
+export GCONV_PATH
+LOCPATH=${common_objpfx}localedata
+export LOCPATH
+
+${common_objpfx}elf/ld.so --library-path $common_objpfx \
+${objpfx}tst-codeset > ${objpfx}tst-codeset.out
+
+exit $?
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext.c
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext.c	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext.c	(revision 1818)
@@ -0,0 +1,369 @@
+/* Test of the gettext functions.
+   Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <libintl.h>
+#include <locale.h>
+#include <mcheck.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <error.h>
+#include <errno.h>
+
+
+const struct
+{
+  const char *msgid;
+  const char *msgstr;
+} msgs[] =
+{
+#define INPUT(Str) { Str,
+#define OUTPUT(Str) Str },
+#include TESTSTRS_H
+};
+
+const char *catname[] =
+{
+  [LC_MESSAGES] = "LC_MESSAGES",
+  [LC_TIME] = "LC_TIME",
+  [LC_NUMERIC] = "LC_NUMERIC"
+};
+
+
+static int positive_gettext_test (void);
+static int negative_gettext_test (void);
+static int positive_dgettext_test (const char *domain);
+static int positive_dcgettext_test (const char *domain, int category);
+static int negative_dcgettext_test (const char *domain, int category);
+
+
+#define check_setlocale(cat, name) do {					      \
+    if (setlocale (cat, name) == NULL)					      \
+      {									      \
+	printf ("%s:%u: setlocale (%s, \"%s\"): %m\n",			      \
+		__FILE__, __LINE__, #cat, name);			      \
+	result = 1;							      \
+      }									      \
+  } while (0)
+
+int
+main (int argc, char *argv[])
+{
+  int result = 0;
+
+  /* For debugging.  */
+  mtrace ();
+
+  /* This is the place where the .mo files are placed.  */
+  if (argc > 1)
+    {
+      bindtextdomain ("existing-domain", argv[1]);
+      bindtextdomain ("existing-time-domain", argv[1]);
+      bindtextdomain ("non-existing-domain", argv[1]);
+    }
+
+  /* The locale the catalog is created for is "existing-category".  Now
+     set the various variables in question to this value and run the
+     test.  */
+  setenv ("LANGUAGE", "existing-locale", 1);
+  setenv ("LC_ALL", "non-existing-locale", 1);
+  setenv ("LC_MESSAGES", "non-existing-locale", 1);
+  setenv ("LC_CTYPE", "non-existing-locale", 1);
+  setenv ("LANG", "non-existing-locale", 1);
+  check_setlocale (LC_CTYPE, "de_DE.UTF-8");
+  check_setlocale (LC_MESSAGES, "de_DE.UTF-8");
+  unsetenv ("OUTPUT_CHARSET");
+  /* This is the name of the existing domain with a catalog for the
+     LC_MESSAGES category.  */
+  textdomain ("existing-domain");
+  puts ("test `gettext' with LANGUAGE set");
+  if (positive_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  /* This is the name of a non-existing domain with a catalog for the
+     LC_MESSAGES category.  We leave this value set for the `dgettext'
+     and `dcgettext' tests.  */
+  textdomain ("non-existing-domain");
+  puts ("test `gettext' with LANGUAGE set");
+  if (negative_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  puts ("test `dgettext' with LANGUAGE set");
+  if (positive_dgettext_test ("existing-domain") != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+
+  /* Now the same tests with LC_ALL deciding.  */
+  unsetenv ("LANGUAGE");
+  setenv ("LC_ALL", "existing-locale", 1);
+  check_setlocale (LC_ALL, "");
+  puts ("test `gettext' with LC_ALL set");
+  /* This is the name of the existing domain with a catalog for the
+     LC_MESSAGES category.  */
+  textdomain ("existing-domain");
+  if (positive_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  /* This is the name of a non-existing domain with a catalog for the
+     LC_MESSAGES category.  We leave this value set for the `dgettext'
+     and `dcgettext' tests.  */
+  textdomain ("non-existing-domain");
+  puts ("test `gettext' with LC_ALL deciding");
+  if (negative_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  puts ("test `dgettext' with LC_ALL deciding");
+  if (positive_dgettext_test ("existing-domain") != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+
+  /* Now the same tests with LC_MESSAGES deciding.  */
+  unsetenv ("LC_ALL");
+  setenv ("LC_MESSAGES", "existing-locale", 1);
+  check_setlocale (LC_MESSAGES, "");
+  setenv ("LC_TIME", "existing-locale", 1);
+  check_setlocale (LC_TIME, "");
+  setenv ("LC_NUMERIC", "non-existing-locale", 1);
+  char *what = setlocale (LC_NUMERIC, "");
+  if (what != NULL)
+    {
+      printf ("setlocale succeeded (%s), expected failure\n", what);
+      result = 1;
+    }
+
+  puts ("test `gettext' with LC_MESSAGES set");
+  /* This is the name of the existing domain with a catalog for the
+     LC_MESSAGES category.  */
+  textdomain ("existing-domain");
+  if (positive_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  /* This is the name of a non-existing domain with a catalog for the
+     LC_MESSAGES category.  We leave this value set for the `dgettext'
+     and `dcgettext' tests.  */
+  textdomain ("non-existing-domain");
+  puts ("test `gettext' with LC_MESSAGES deciding");
+  if (negative_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  puts ("test `dgettext' with LC_MESSAGES deciding");
+  if (positive_dgettext_test ("existing-domain") != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  puts ("test `dcgettext' with category == LC_MESSAGES");
+  if (positive_dcgettext_test ("existing-domain", LC_MESSAGES) != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  /* Try a different category.  For this we also switch the domain.  */
+  puts ("test `dcgettext' with LANGUAGE == LC_TIME");
+  if (positive_dcgettext_test ("existing-time-domain", LC_TIME) != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  /* This time use a category for which there is no catalog.  */
+  puts ("test `dcgettext' with LANGUAGE == LC_NUMERIC");
+  if (negative_dcgettext_test ("existing-domain", LC_NUMERIC) != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+
+  /* Now the same tests with LANG deciding.  */
+  unsetenv ("LC_MESSAGES");
+  unsetenv ("LC_CTYPE");
+  unsetenv ("LC_TIME");
+  unsetenv ("LC_NUMERIC");
+  setenv ("LANG", "existing-locale", 1);
+  check_setlocale (LC_ALL, "");
+  /* This is the name of the existing domain with a catalog for the
+     LC_MESSAGES category.  */
+  textdomain ("existing-domain");
+  puts ("test `gettext' with LANG set");
+  if (positive_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  /* This is the name of a non-existing domain with a catalog for the
+     LC_MESSAGES category.  We leave this value set for the `dgettext'
+     and `dcgettext' tests.  */
+  textdomain ("non-existing-domain");
+  puts ("test `gettext' with LANG set");
+  if (negative_gettext_test () != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+  puts ("test `dgettext' with LANG set");
+  if (positive_dgettext_test ("existing-domain") != 0)
+    {
+      puts ("FAILED");
+      result = 1;
+    }
+
+  check_setlocale (LC_ALL, "C");
+
+  return result;
+}
+
+
+static int
+positive_gettext_test (void)
+{
+  size_t cnt;
+  int result = 0;
+
+  for (cnt = 0; cnt < sizeof (msgs) / sizeof (msgs[0]); ++cnt)
+    {
+      const char *found = gettext (msgs[cnt].msgid);
+
+      if (found == NULL
+	  || (msgs[cnt].msgstr[0] != '\0'
+	      && strcmp (found, msgs[cnt].msgstr) != 0))
+	{
+	  /* Oops, shouldn't happen.  */
+	  printf ("\
+  gettext (\"%s\") failed, returned \"%s\", expected \"%s\"\n",
+		  msgs[cnt].msgid, found, msgs[cnt].msgstr);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+
+static int
+negative_gettext_test (void)
+{
+  size_t cnt;
+  int result = 0;
+
+  for (cnt = 0; cnt < sizeof (msgs) / sizeof (msgs[0]); ++cnt)
+    {
+      const char *found = gettext (msgs[cnt].msgid);
+
+      if (found != msgs[cnt].msgid)
+	{
+	  /* Oops, shouldn't happen.  */
+	  printf ("  gettext (\"%s\") failed\n", msgs[cnt].msgid);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+
+static int
+positive_dgettext_test (const char *domain)
+{
+  size_t cnt;
+  int result = 0;
+
+  for (cnt = 0; cnt < sizeof (msgs) / sizeof (msgs[0]); ++cnt)
+    {
+      const char *found = dgettext (domain, msgs[cnt].msgid);
+
+      if (found == NULL
+	  || (msgs[cnt].msgstr[0] != '\0'
+	      && strcmp (found, msgs[cnt].msgstr) != 0))
+	{
+	  /* Oops, shouldn't happen.  */
+	  printf ("\
+  dgettext (\"%s\", \"%s\") failed, returned \"%s\", expected \"%s\"\n",
+		  domain, msgs[cnt].msgid, found, msgs[cnt].msgstr);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+
+static int
+positive_dcgettext_test (const char *domain, int category)
+{
+  size_t cnt;
+  int result = 0;
+
+  for (cnt = 0; cnt < sizeof (msgs) / sizeof (msgs[0]); ++cnt)
+    {
+      const char *found = dcgettext (domain, msgs[cnt].msgid, category);
+
+      if (found == NULL
+	  || (msgs[cnt].msgstr[0] != '\0'
+	      && strcmp (found, msgs[cnt].msgstr) != 0))
+	{
+	  /* Oops, shouldn't happen.  */
+	  printf ("\
+  dcgettext (\"%s\", \"%s\", %s) failed, returned \"%s\", expected \"%s\"\n",
+		  domain, msgs[cnt].msgid, catname[category], found,
+		  msgs[cnt].msgstr);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+
+static int
+negative_dcgettext_test (const char *domain, int category)
+{
+  size_t cnt;
+  int result = 0;
+
+  for (cnt = 0; cnt < sizeof (msgs) / sizeof (msgs[0]); ++cnt)
+    {
+      const char *found = dcgettext (domain, msgs[cnt].msgid, category);
+
+      if (found != msgs[cnt].msgid)
+	{
+	  /* Oops, shouldn't happen.  */
+	  printf ("  dcgettext (\"%s\", \"%s\", %s) failed\n",
+		  domain, msgs[cnt].msgid, catname[category]);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext.sh
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext.sh	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext.sh	(revision 1818)
@@ -0,0 +1,59 @@
+#! /bin/sh
+# Test of gettext functions.
+# Copyright (C) 2000, 2002, 2004 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
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
+
+common_objpfx=$1
+objpfx=$2
+malloc_trace=$3
+
+LC_ALL=C
+export LC_ALL
+
+# Generate the test data.
+
+# Create the locale directories.
+mkdir -p ${objpfx}localedir/existing-locale/LC_MESSAGES
+for f in ADDRESS COLLATE CTYPE IDENTIFICATION MEASUREMENT MONETARY NAME NUMERIC PAPER TELEPHONE TIME; do
+  cp -f ${common_objpfx}localedata/de_DE.UTF-8/LC_$f \
+        ${objpfx}localedir/existing-locale
+done
+cp -f ${common_objpfx}localedata/de_DE.UTF-8/LC_MESSAGES/SYS_LC_MESSAGES \
+      ${objpfx}localedir/existing-locale/LC_MESSAGES
+
+# Create the domain directories.
+mkdir -p ${objpfx}domaindir/existing-locale/LC_MESSAGES
+mkdir -p ${objpfx}domaindir/existing-locale/LC_TIME
+# Populate them.
+msgfmt -o ${objpfx}domaindir/existing-locale/LC_MESSAGES/existing-domain.mo \
+       -f ../po/de.po
+msgfmt -o ${objpfx}domaindir/existing-locale/LC_TIME/existing-time-domain.mo \
+       -f ../po/de.po
+
+GCONV_PATH=${common_objpfx}iconvdata
+export GCONV_PATH
+LOCPATH=${common_objpfx}localedata
+export LOCPATH
+
+# Now run the test.
+MALLOC_TRACE=$malloc_trace LOCPATH=${objpfx}localedir:$LOCPATH \
+${common_objpfx}elf/ld.so --library-path $common_objpfx \
+${objpfx}tst-gettext > ${objpfx}tst-gettext.out ${objpfx}domaindir
+
+exit $?
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext2.c
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext2.c	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext2.c	(revision 1818)
@@ -0,0 +1,73 @@
+/* Test of the gettext functions.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Thorsten Kukuk <kukuk@suse.de> and
+   Andreas Jaeger <aj@suse.de>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+
+#include <locale.h>
+#include <libintl.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+struct data_t
+{
+  const char *selection;
+  const char *description;
+};
+
+int data_cnt = 2;
+struct data_t strings[] =
+{
+  { "String1", N_("First string for testing.") },
+  { "String2", N_("Another string for testing.") }
+};
+
+const int lang_cnt = 3;
+const char *lang[] = {"lang1", "lang2", "lang3"};
+
+int
+main (void)
+{
+  int i;
+
+  /* Clean up environment.  */
+  unsetenv ("LANGUAGE");
+  unsetenv ("LC_ALL");
+  unsetenv ("LC_MESSAGES");
+  unsetenv ("LC_CTYPE");
+  unsetenv ("LANG");
+  unsetenv ("OUTPUT_CHARSET");
+
+  textdomain ("tstlang");
+
+  for (i = 0; i < lang_cnt; ++i)
+    {
+      int j;
+
+      if (setlocale (LC_ALL, lang[i]) == NULL)
+	setlocale (LC_ALL, "C");
+      bindtextdomain ("tstlang", OBJPFX "domaindir");
+
+      for (j = 0; j < data_cnt; ++j)
+	printf ("%s - %s\n", strings[j].selection,
+		gettext (strings[j].description));
+    }
+
+  return 0;
+}
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext2.sh
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext2.sh	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-gettext2.sh	(revision 1818)
@@ -0,0 +1,80 @@
+#! /bin/sh
+# Test of gettext functions.
+# Copyright (C) 2000, 2003 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
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
+
+common_objpfx=$1
+objpfx=$2
+
+LC_ALL=C
+export LC_ALL
+
+# Generate the test data.
+test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
+# Create the locale directories.
+test -d ${objpfx}domaindir/lang1 || {
+  mkdir ${objpfx}domaindir/lang1
+  for f in ADDRESS COLLATE CTYPE IDENTIFICATION MEASUREMENT MONETARY NAME NUMERIC PAPER TELEPHONE TIME; do
+    cp ${common_objpfx}localedata/de_DE.ISO-8859-1/LC_$f \
+       ${objpfx}domaindir/lang1
+  done
+}
+test -d ${objpfx}domaindir/lang2 || {
+  mkdir ${objpfx}domaindir/lang2
+  for f in ADDRESS COLLATE CTYPE IDENTIFICATION MEASUREMENT MONETARY NAME NUMERIC PAPER TELEPHONE TIME; do
+    cp ${common_objpfx}localedata/de_DE.ISO-8859-1/LC_$f \
+       ${objpfx}domaindir/lang2
+  done
+}
+test -d ${objpfx}domaindir/lang1/LC_MESSAGES || {
+  mkdir ${objpfx}domaindir/lang1/LC_MESSAGES
+  cp ${common_objpfx}localedata/de_DE.ISO-8859-1/LC_MESSAGES/SYS_LC_MESSAGES \
+     ${objpfx}domaindir/lang1/LC_MESSAGES
+}
+test -d ${objpfx}domaindir/lang2/LC_MESSAGES || {
+  mkdir ${objpfx}domaindir/lang2/LC_MESSAGES
+  cp ${common_objpfx}localedata/de_DE.ISO-8859-1/LC_MESSAGES/SYS_LC_MESSAGES \
+     ${objpfx}domaindir/lang2/LC_MESSAGES
+}
+
+# Populate them.
+msgfmt -o ${objpfx}domaindir/lang1/LC_MESSAGES/tstlang.mo \
+       tstlang1.po
+
+msgfmt -o ${objpfx}domaindir/lang2/LC_MESSAGES/tstlang.mo \
+       tstlang2.po
+
+GCONV_PATH=${common_objpfx}iconvdata
+export GCONV_PATH
+LOCPATH=${objpfx}domaindir
+export LOCPATH
+
+# Now run the test.
+${common_objpfx}elf/ld.so --library-path $common_objpfx \
+${objpfx}tst-gettext2 > ${objpfx}tst-gettext2.out ${objpfx}domaindir &&
+cmp ${objpfx}tst-gettext2.out - <<EOF
+String1 - Lang1: 1st string
+String2 - Lang1: 2nd string
+String1 - Lang2: 1st string
+String2 - Lang2: 2nd string
+String1 - First string for testing.
+String2 - Another string for testing.
+EOF
+
+exit $?
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-ngettext.c
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-ngettext.c	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-ngettext.c	(revision 1818)
@@ -0,0 +1,66 @@
+/* Test of the ngettext functions.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <langinfo.h>
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+int
+main (void)
+{
+  const char *strs[2] = { "singular", "plural" };
+  unsigned long int i;
+  int res = 0;
+
+  /* We don't want any translation here.  */
+  setenv ("LANGUAGE", "C", 1);
+  unsetenv ("OUTPUT_CHARSET");
+
+  for (i = 0; i < 30; ++i)
+    {
+      char *tr;
+
+      tr = ngettext (strs[0], strs[1], i);
+#define TEST \
+      do								      \
+	if (tr != strs[i != 1])						      \
+	  {								      \
+	    if (strcmp (tr, strs[i != 1]) == 0)				      \
+	      printf ("%lu: correct string, wrong pointer (%s)\n", i, tr);    \
+	    else							      \
+	      printf ("%lu: wrong result (%s)\n", i, tr);		      \
+	    res = 1;							      \
+	  }								      \
+      while (0)
+      TEST;
+
+      tr = dngettext ("messages", strs[0], strs[1], i);
+      TEST;
+
+      tr = dcngettext ("messages", strs[0], strs[1], i, LC_MESSAGES);
+      TEST;
+    }
+
+  return res;
+}
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-translit.c
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-translit.c	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-translit.c	(revision 1818)
@@ -0,0 +1,52 @@
+/* Test of translitation in the gettext functions.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+int
+main (void)
+{
+  int result = 0;
+  const char *s;
+
+  setenv ("LANGUAGE", "existing-locale", 1);
+  unsetenv ("OUTPUT_CHARSET");
+  setlocale (LC_ALL, "en_US.ANSI_X3.4-1968");
+  textdomain ("translit");
+  bindtextdomain ("translit", OBJPFX "domaindir");
+
+#define TEST(in, exp) \
+  s = gettext (in);							      \
+  puts (s);								      \
+  result |= strcmp (s, exp) != 0;
+
+  TEST ("test", "<<(C) AEss>>");
+  TEST ("test", "<<(C) AEss>>");
+  TEST ("onemore", " 1/2 * 1/2 = 1/4 ");
+  TEST ("onemore", " 1/2 * 1/2 = 1/4 ");
+  TEST ("test", "<<(C) AEss>>");
+
+  return result;
+}
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-translit.sh
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-translit.sh	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tst-translit.sh	(revision 1818)
@@ -0,0 +1,39 @@
+#! /bin/sh
+# Test of transliteration in gettext functions.
+# Copyright (C) 2000, 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
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
+
+common_objpfx=$1
+objpfx=$2
+
+LC_ALL=C
+export LC_ALL
+
+msgfmt -o ${objpfx}domaindir/existing-locale/LC_MESSAGES/translit.mo \
+       translit.po
+
+GCONV_PATH=${common_objpfx}iconvdata
+export GCONV_PATH
+LOCPATH=${common_objpfx}localedata
+export LOCPATH
+
+${common_objpfx}elf/ld.so --library-path $common_objpfx \
+${objpfx}tst-translit > ${objpfx}tst-translit.out ${objpfx}domaindir
+
+exit $?
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tstcodeset.po
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tstcodeset.po	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tstcodeset.po	(revision 1818)
@@ -0,0 +1,8 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "cheese"
+msgstr "Käse"
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tstlang1.po
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tstlang1.po	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tstlang1.po	(revision 1818)
@@ -0,0 +1,13 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: 7-bit\n"
+
+#: tst-gettext2.c:33
+msgid "First string for testing."
+msgstr "Lang1: 1st string"
+
+#: tst-gettext2.c:34
+msgid "Another string for testing."
+msgstr "Lang1: 2nd string"
Index: /branches/GNU/src/emx/testcase/libc/glibc/intl/tstlang2.po
===================================================================
--- /branches/GNU/src/emx/testcase/libc/glibc/intl/tstlang2.po	(revision 1818)
+++ /branches/GNU/src/emx/testcase/libc/glibc/intl/tstlang2.po	(revision 1818)
@@ -0,0 +1,13 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: 7-bit\n"
+
+#: tst-gettext2.c:33
+msgid "First string for testing."
+msgstr "Lang2: 1st string"
+
+#: tst-gettext2.c:34
+msgid "Another string for testing."
+msgstr "Lang2: 2nd string"
