diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c index 1ae8195e023..3f785b1e8d5 100644 --- a/src/pl/plperl/plperl.c +++ b/src/pl/plperl/plperl.c @@ -298,9 +298,11 @@ static char *strip_trailing_ws(const char *msg); static OP *pp_require_safe(pTHX); static void activate_interpreter(plperl_interp_desc *interp_desc); -#ifdef WIN32 +#if defined(WIN32) && PERL_VERSION_LT(5, 28, 0) static char *setlocale_perl(int category, char *locale); -#endif +#else +#define setlocale_perl(a,b) Perl_setlocale(a,b) +#endif /* defined(WIN32) && PERL_VERSION_LT(5, 28, 0) */ /* * Decrement the refcount of the given SV within the active Perl interpreter @@ -4130,8 +4132,10 @@ plperl_inline_callback(void *arg) /* * Perl's own setlocale(), copied from POSIX.xs * (needed because of the calls to new_*()) + * + * Starting in 5.28, perl exposes Perl_setlocale to do so. */ -#ifdef WIN32 +#if defined(WIN32) && PERL_VERSION_LT(5, 28, 0) static char * setlocale_perl(int category, char *locale) { @@ -4199,5 +4203,4 @@ setlocale_perl(int category, char *locale) return RETVAL; } - -#endif /* WIN32 */ +#endif /* defined(WIN32) && PERL_VERSION_LT(5, 28, 0) */