]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Make it work on MacOS X.
authorBruno Haible <bruno@clisp.org>
Tue, 14 Mar 2006 14:11:15 +0000 (14:11 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:13:02 +0000 (12:13 +0200)
gettext-tools/tests/ChangeLog
gettext-tools/tests/gettext-4-prg.c

index 23b693528e23fa6ba8119c2b8857da26b5ac084d..429afb77d1f8d9977eec80937b6d299ef66e5c9e 100644 (file)
@@ -1,3 +1,11 @@
+2006-03-11  Bruno Haible  <bruno@clisp.org>
+
+       Make the gettext-4 test work on MacOS X.
+       * gettext-4-prg.c: Include xsetenv.h instead of setenv.h.
+       (main): Clear also the LC_ALL, LC_MESSAGES, LC_CTYPE, LANG environment
+       variables. Set LANGUAGE explicitly. Disable first test on MacOS X and
+       BeOS. Add a third test instead.
+
 2006-03-11  Bruno Haible  <bruno@clisp.org>
 
        * msgmerge-compendium-5: New file.
index db2c847a644aa7039729eff66e15a608e36d4ec7..67a9bb8e7e4af50e4d37781179f69e4e83c8290d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test program, used by the gettext-4 test.
-   Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2001, 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 General Public License as published by
@@ -26,7 +26,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include "setenv.h"
+#include "xsetenv.h"
 
 /* Make sure we use the included libintl, not the system's one. */
 #undef _LIBINTL_H
@@ -38,19 +38,33 @@ main (void)
   char *s;
   int result = 0;
 
+  /* Clean up environment.  */
   unsetenv ("LANGUAGE");
+  unsetenv ("LC_ALL");
+  unsetenv ("LC_MESSAGES");
+  unsetenv ("LC_CTYPE");
+  unsetenv ("LANG");
   unsetenv ("OUTPUT_CHARSET");
+
   setlocale (LC_ALL, "de_DE.ISO-8859-1");
+  /* Need to set LANGUAGE explicitly, because on MacOS X, when no LC_*
+     environment variable is set, LANGUAGE defaults to the value of
+     _nl_language_preferences_default (), which is not under our control.  */
+  xsetenv ("LANGUAGE", "de_DE", 1);
   textdomain ("codeset");
   bindtextdomain ("codeset", ".");
 
-  /* Here we expect output in ISO-8859-1.  */
+  /* Here we expect output in ISO-8859-1.
+     Except on Darwin 7 or newer and on BeOS, for which locale_charset ()
+     always returns "UTF-8" (see config.charset).  */
+#if !((defined __APPLE__ && defined __MACH__) || defined __BEOS__)
   s = gettext ("cheese");
   if (strcmp (s, "K\344se"))
     {
       fprintf (stderr, "call 1 returned: %s\n", s);
       result = 1;
     }
+#endif
 
   bind_textdomain_codeset ("codeset", "UTF-8");
 
@@ -62,5 +76,15 @@ main (void)
       result = 1;
     }
 
+  bind_textdomain_codeset ("codeset", "ISO-8859-1");
+
+  /* Here we expect output in ISO-8859-1.  */
+  s = gettext ("cheese");
+  if (strcmp (s, "K\344se"))
+    {
+      fprintf (stderr, "call 3 returned: %s\n", s);
+      result = 1;
+    }
+
   return result;
 }