postgres.git / summary / log / commit / refs

commit    ff18de81123a8412c1bcce94106d2ccca69aa193
Author:   Magnus Hagander <magnus@hagander.net>
Date:     Tue Feb 01 12:19:18 2011 +0000

    Undefine setlocale() macro on Win32
    
    New versions of libintl redefine setlocale() to a macro
    which causes problems when the backend and libintl are
    linked against different versions of the runtime, which
    is often the case in msvc builds.
    
    Hiroshi Inoue, slightly updated comment by me


src/include/port.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/include/port.h b/src/include/port.h index f139367064f..f2d751f33a9 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -165,6 +165,15 @@ extern unsigned char pg_tolower(unsigned char ch); #ifdef printf #undef printf #endif +/* + * Versions of libintl >= 0.18? try to replace setlocale() with a macro + * to their own versions. Remove the macro, if it exists, because it + * ends up calling the wrong version when the backend and libintl use + * different versions of msvcrt. + */ +#if defined(setlocale) && defined(WIN32) +#undef setlocale +#endif extern int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args); extern int [parent: 2da967380fac]