+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.
/* 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
#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
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");
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;
}