summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gv.c6
-rw-r--r--mg.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gv.c b/gv.c
index 413ce991c5..4b34bd484a 100644
--- a/gv.c
+++ b/gv.c
@@ -926,9 +926,11 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
if (strEQ(name2, "AINT"))
goto ro_magicalize;
break;
- case '\025': /* $^UNICODE */
+ case '\025': /* ${^UNICODE}, ${^UTF8LOCALE} */
if (strEQ(name2, "NICODE"))
goto ro_magicalize;
+ if (strEQ(name2, "TF8LOCALE"))
+ goto ro_magicalize;
break;
case '\027': /* $^WARNING_BITS */
if (strEQ(name2, "ARNING_BITS"))
@@ -1863,6 +1865,8 @@ Perl_is_gv_magical(pTHX_ char *name, STRLEN len, U32 flags)
case '\025': /* ${^UNICODE} */
if (strEQ(name1, "NICODE"))
goto yes;
+ if (strEQ(name1, "TF8LOCALE"))
+ goto yes;
break;
case '\027': /* ${^WARNING_BITS} */
if (strEQ(name1, "ARNING_BITS"))
diff --git a/mg.c b/mg.c
index b5a9290923..64d4d254d3 100644
--- a/mg.c
+++ b/mg.c
@@ -715,9 +715,11 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
? (PL_taint_warn || PL_unsafe ? -1 : 1)
: 0);
break;
- case '\025': /* $^UNICODE */
+ case '\025': /* $^UNICODE, $^UTF8LOCALE */
if (strEQ(mg->mg_ptr, "\025NICODE"))
sv_setuv(sv, (UV) PL_unicode);
+ else if (strEQ(mg->mg_ptr, "\025TF8LOCALE"))
+ sv_setuv(sv, (UV) PL_utf8locale);
break;
case '\027': /* ^W & $^WARNING_BITS */
if (*(mg->mg_ptr+1) == '\0')