summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2010-10-18 17:59:50 -0700
committerFather Chrysostomos <sprout@cpan.org>2010-10-21 05:53:40 -0700
commit1e2159890b8bf881fbc717f671f87ba2dec1da46 (patch)
tree13eb0b5586141bec3d77958ac79459837b8d74be /op.c
parenta7aaec61655ef1580eb319cf234db0f3d5c9981e (diff)
downloadperl-1e2159890b8bf881fbc717f671f87ba2dec1da46.tar.gz
[perl #78072] use re '/xism';
Diffstat (limited to 'op.c')
-rw-r--r--op.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/op.c b/op.c
index 528ecac1dc..acffe22457 100644
--- a/op.c
+++ b/op.c
@@ -3734,6 +3734,19 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags)
else if ((! (PL_hints & HINT_BYTES)) && (PL_hints & HINT_UNI_8_BIT)) {
pmop->op_pmflags |= RXf_PMf_UNICODE;
}
+ if (PL_hints & HINT_RE_FLAGS) {
+ SV *reflags = Perl_refcounted_he_fetch(aTHX_
+ PL_compiling.cop_hints_hash, 0, STR_WITH_LEN("reflags"), 0, 0
+ );
+ if (reflags && SvOK(reflags)) pmop->op_pmflags |= SvIV(reflags);
+ reflags = Perl_refcounted_he_fetch(aTHX_
+ PL_compiling.cop_hints_hash, 0, STR_WITH_LEN("reflags_dul"), 0, 0
+ );
+ if (reflags && SvOK(reflags)) {
+ pmop->op_pmflags &= ~(RXf_PMf_LOCALE|RXf_PMf_UNICODE);
+ pmop->op_pmflags |= SvIV(reflags);
+ }
+ }
#ifdef USE_ITHREADS