summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2022-10-03 08:33:55 -0600
committerKarl Williamson <khw@cpan.org>2022-10-18 06:22:16 -0600
commit6a4065f28f30d59e3a6cea6504be34bdb5e5eb8b (patch)
tree6f7ebbc29f3e2463dd19d5800b6f7e0b557fdef7 /perl.c
parent7de8159af380f738facd9db4aa5455f02ba5af04 (diff)
downloadperl-6a4065f28f30d59e3a6cea6504be34bdb5e5eb8b.tar.gz
locale: Create special variable to hold current LC_ALL
Some configurations require us to store the current locale for each category. Prior to this commit, this was done in the array PL_curlocales, with the entry for LC_ALL being in the highest element. Future commits will need just the value for LC_ALL in some other configurations, without needing the rest of the array. This commit splits off the LC_ALL element into its own per-interpreter variable to accommodate those. It always had to have special handling anyway beyond the rest of the array elements,
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/perl.c b/perl.c
index 9fae6874da..0a3ec39811 100644
--- a/perl.c
+++ b/perl.c
@@ -1140,6 +1140,17 @@ perl_destruct(pTHXx)
freelocale(old_locale);
}
}
+
+# ifdef USE_PL_CUR_LC_ALL
+
+ if (PL_cur_LC_ALL) {
+ DEBUG_L( PerlIO_printf(Perl_debug_log, "PL_cur_LC_ALL=%p\n", PL_cur_LC_ALL));
+ Safefree(PL_cur_LC_ALL);
+ PL_cur_LC_ALL = NULL;
+ }
+
+# endif
+
if (PL_scratch_locale_obj) {
freelocale(PL_scratch_locale_obj);
PL_scratch_locale_obj = NULL;