From: Bruno Haible Date: Tue, 14 Mar 2006 14:11:15 +0000 (+0000) Subject: Make it work on MacOS X. X-Git-Tag: v0.15~294 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=adb38f4a3e5bc2ca831b97145ff48e1bd709403c;p=thirdparty%2Fgettext.git Make it work on MacOS X. --- diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index 23b693528..429afb77d 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,11 @@ +2006-03-11 Bruno Haible + + 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 * msgmerge-compendium-5: New file. diff --git a/gettext-tools/tests/gettext-4-prg.c b/gettext-tools/tests/gettext-4-prg.c index db2c847a6..67a9bb8e7 100644 --- a/gettext-tools/tests/gettext-4-prg.c +++ b/gettext-tools/tests/gettext-4-prg.c @@ -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 #include #include -#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; }