Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit c89f409

Browse files
committed
plperl: windows: Use Perl_setlocale on 5.28+, fixing compile failure.
For older versions we need our own copy of perl's setlocale(), because it was not exposed (why we need the setlocale in the first place is explained in plperl_init_interp) . The copy stopped working in 5.28, as some of the used macros are not public anymore. But Perl_setlocale is available in 5.28, so use that. Author: Victor Wagner <vitus@wagner.pp.ru> Reviewed-By: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> Discussion: https://postgr.es/m/20200501134711.08750c5f@antares.wagner.home Backpatch: all versions
1 parent d10e41d commit c89f409

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/pl/plperl/plperl.c

+8-5
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,11 @@ static char *strip_trailing_ws(const char *msg);
298298
static OP *pp_require_safe(pTHX);
299299
static void activate_interpreter(plperl_interp_desc *interp_desc);
300300

301-
#ifdef WIN32
301+
#if defined(WIN32) && PERL_VERSION_LT(5, 28, 0)
302302
static char *setlocale_perl(int category, char *locale);
303-
#endif
303+
#else
304+
#define setlocale_perl(a,b) Perl_setlocale(a,b)
305+
#endif /* defined(WIN32) && PERL_VERSION_LT(5, 28, 0) */
304306

305307
/*
306308
* Decrement the refcount of the given SV within the active Perl interpreter
@@ -4130,8 +4132,10 @@ plperl_inline_callback(void *arg)
41304132
/*
41314133
* Perl's own setlocale(), copied from POSIX.xs
41324134
* (needed because of the calls to new_*())
4135+
*
4136+
* Starting in 5.28, perl exposes Perl_setlocale to do so.
41334137
*/
4134-
#ifdef WIN32
4138+
#if defined(WIN32) && PERL_VERSION_LT(5, 28, 0)
41354139
static char *
41364140
setlocale_perl(int category, char *locale)
41374141
{
@@ -4199,5 +4203,4 @@ setlocale_perl(int category, char *locale)
41994203

42004204
return RETVAL;
42014205
}
4202-
4203-
#endif /* WIN32 */
4206+
#endif /* defined(WIN32) && PERL_VERSION_LT(5, 28, 0) */

0 commit comments

Comments
 (0)