From 9b9e0be404d6f68cd08f64332ec2cf911d35f432 Mon Sep 17 00:00:00 2001 From: Vincent Pit Date: Tue, 31 Aug 2010 13:10:26 +0200 Subject: [PATCH 1/1] Add two missing break in Perl_magic_set's big switch This fixes $^A being reset when $1..$2 are localized before any regexp match happened. --- mg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mg.c b/mg.c index a674e43..8b283d9 100644 --- a/mg.c +++ b/mg.c @@ -2369,7 +2369,6 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) setparen: if (PL_curpm && (rx = PM_GETRE(PL_curpm))) { CALLREG_NUMBUF_STORE((REGEXP * const)rx,paren,sv); - break; } else { /* Croak with a READONLY error when a numbered match var is * set without a previous pattern match. Unless it's C @@ -2378,6 +2377,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) Perl_croak_no_modify(aTHX); } } + break; case '\001': /* ^A */ sv_setsv(PL_bodytarget, sv); break; @@ -2476,6 +2476,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) } else if (strEQ(remaining, "OSTMATCH")) { /* $^POSTMATCH */ goto do_postmatch; } + break; case '\024': /* ^T */ #ifdef BIG_TIME PL_basetime = (Time_t)(SvNOK(sv) ? SvNVX(sv) : sv_2nv(sv)); -- 1.8.3.1