summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2010-09-20 18:57:24 -0600
committerFather Chrysostomos <sprout@cpan.org>2010-09-22 22:54:23 -0700
commit9de15fec376a8ff90a38fad0ff322c72c2995765 (patch)
tree95729b4e82e14d795b481df7902da07be8c9ab67 /op.c
parent4c2c679ff9fc18054795b9b7b28e37453e57d146 (diff)
downloadperl-9de15fec376a8ff90a38fad0ff322c72c2995765.tar.gz
Add /d, /l, /u (infixed) regex modifiers
This patch adds recognition of these modifiers, with appropriate action for d and l. u does nothing useful yet. This allows for the interpolation of a regex into another one without losing the character set semantics that it was compiled with, as for the first time, the semantics is now specified in the stringification as one of these modifiers. To this end, it allocates an unused bit in the structures. The off- sets change so as to not disturb other bits.
Diffstat (limited to 'op.c')
-rw-r--r--op.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/op.c b/op.c
index db91cdb913..983bf3d1c6 100644
--- a/op.c
+++ b/op.c
@@ -3649,8 +3649,12 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags)
if (PL_hints & HINT_RE_TAINT)
pmop->op_pmflags |= PMf_RETAINT;
- if (PL_hints & HINT_LOCALE)
+ if (PL_hints & HINT_LOCALE) {
pmop->op_pmflags |= PMf_LOCALE;
+ }
+ else if ((! (PL_hints & HINT_BYTES)) && (PL_hints & HINT_UNI_8_BIT)) {
+ pmop->op_pmflags |= RXf_PMf_UNICODE;
+ }
#ifdef USE_ITHREADS