postgres.git / summary / log / commit / refs

commit    082764a0c901e34abe2f68b3f2f368f41b858da4
Author:   Noah Misch <noah@leadboat.com>
Date:     Fri Jan 16 06:27:31 2015 +0000

    Update "pg_regress --no-locale" for Darwin and Windows.
    
    Commit 894459e59ffa5c7fee297b246c17e1f72564db1d revealed this option to
    be broken for NLS builds on Darwin, but "make -C contrib/unaccent check"
    and the buildfarm client rely on it.  Fix that configuration by
    redefining the option to imply LANG=C on Darwin.  In passing, use LANG=C
    instead of LANG=en on Windows; since only postmaster startup uses that
    value, testers are unlikely to notice the change.  Back-patch to 9.0,
    like the predecessor commit.


src/test/regress/pg_regress.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index 6afef7bc816..92c5ff6530c 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -793,9 +793,17 @@ initialize_environment(void) unsetenv("LC_NUMERIC"); unsetenv("LC_TIME"); unsetenv("LANG"); - /* On Windows the default locale cannot be English, so force it */ -#if defined(WIN32) || defined(__CYGWIN__) - putenv("LANG=en"); + + /* + * Most platforms have adopted the POSIX locale as their + * implementation-defined default locale. Exceptions include native + * Windows, Darwin with --enable-nls, and Cygwin with --enable-nls. + * (Use of --enable-nls matters because libintl replaces setlocale().) + * Also, PostgreSQL does not support Darwin with locale environment + * variables unset; see PostmasterMain(). + */ +#if defined(WIN32) || defined(__CYGWIN__) || defined(__darwin__) + putenv("LANG=C"); #endif } [parent: 5308e085b649]