Tweak the fix for bug #51847 to still call libintl_setlocale

when libintl has done that redefine.
This commit is contained in:
Rasmus Lerdorf 2010-06-02 19:24:36 +00:00
parent 2fd5a6a188
commit 2c342f16c1

View File

@ -36,10 +36,18 @@
#ifdef HAVE_MONETARY_H #ifdef HAVE_MONETARY_H
# include <monetary.h> # include <monetary.h>
#endif #endif
/*
* This define is here because some versions of libintl redefine setlocale
* to point to libintl_setlocale. That's a ridiculous thing to do as far
* as * I am concerned, but with this define and the subsequent undef we
* limit * the damage to just the actual setlocale() call in this file
* without * turning zif_setlocale into zif_libintl_setlocale. -Rasmus
*/
#define php_my_setlocale setlocale
#ifdef HAVE_LIBINTL #ifdef HAVE_LIBINTL
# include <libintl.h> /* For LC_MESSAGES */ # include <libintl.h> /* For LC_MESSAGES */
#ifdef setlocale #ifdef setlocale
# undef setlocale /* Uh, libintl, don't F* our symbols please */ # undef setlocale
#endif #endif
#endif #endif
@ -4095,7 +4103,7 @@ PHP_FUNCTION(setlocale)
} }
} }
retval = setlocale(cat, loc); retval = php_my_setlocale(cat, loc);
zend_update_current_locale(); zend_update_current_locale();
if (retval) { if (retval) {
/* Remember if locale was changed */ /* Remember if locale was changed */