summaryrefslogtreecommitdiff
path: root/mg.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-03-16 23:11:11 +0000
committerNicholas Clark <nick@ccl4.org>2006-03-16 23:11:11 +0000
commite07ea26af5fdde170ce4e4e0a797a364c6a185e6 (patch)
tree7d0009f2fe30f4472e8e4ed56660210b01eb8813 /mg.c
parentc1ab7b38fcd3bc8e1433bc0b361e5e875c51124e (diff)
downloadperl-e07ea26af5fdde170ce4e4e0a797a364c6a185e6.tar.gz
Add a new per-interpeter variable PL_utf8cache, which will be used to
control the UTF-8 offset caching code. Make this visible as ${^UTF8CACHE} p4raw-id: //depot/perl@27525
Diffstat (limited to 'mg.c')
-rw-r--r--mg.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/mg.c b/mg.c
index 8cc9d85f43..d82e9f0df6 100644
--- a/mg.c
+++ b/mg.c
@@ -790,11 +790,13 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
? (PL_taint_warn || PL_unsafe ? -1 : 1)
: 0);
break;
- case '\025': /* $^UNICODE, $^UTF8LOCALE */
+ case '\025': /* $^UNICODE, $^UTF8LOCALE, $^UTF8CACHE */
if (strEQ(remaining, "NICODE"))
sv_setuv(sv, (UV) PL_unicode);
else if (strEQ(remaining, "TF8LOCALE"))
sv_setuv(sv, (UV) PL_utf8locale);
+ else if (strEQ(remaining, "TF8CACHE"))
+ sv_setiv(sv, (IV) PL_utf8cache);
break;
case '\027': /* ^W & $^WARNING_BITS */
if (nextchar == '\0')
@@ -2232,6 +2234,11 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
PL_basetime = (Time_t)(SvIOK(sv) ? SvIVX(sv) : sv_2iv(sv));
#endif
break;
+ case '\025': /* ^UTF8CACHE */
+ if (strEQ(mg->mg_ptr+1, "TF8CACHE")) {
+ PL_utf8cache = (signed char) sv_2iv(sv);
+ }
+ break;
case '\027': /* ^W & $^WARNING_BITS */
if (*(mg->mg_ptr+1) == '\0') {
if ( ! (PL_dowarn & G_WARN_ALL_MASK)) {