summaryrefslogtreecommitdiff
path: root/op_reg_common.h
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_reg_common.h
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_reg_common.h')
-rw-r--r--op_reg_common.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/op_reg_common.h b/op_reg_common.h
index d4e39873e1..ce12da542f 100644
--- a/op_reg_common.h
+++ b/op_reg_common.h
@@ -29,14 +29,15 @@
#define RXf_PMf_EXTENDED (1 << (RXf_PMf_STD_PMMOD_SHIFT+3)) /* /x */
#define RXf_PMf_KEEPCOPY (1 << (RXf_PMf_STD_PMMOD_SHIFT+4)) /* /p */
#define RXf_PMf_LOCALE (1 << (RXf_PMf_STD_PMMOD_SHIFT+5))
+#define RXf_PMf_UNICODE (1 << (RXf_PMf_STD_PMMOD_SHIFT+6))
/* Next available bit after the above. Name begins with '_' so won't be
* exported by B */
-#define _RXf_PMf_SHIFT_NEXT (RXf_PMf_STD_PMMOD_SHIFT+6)
+#define _RXf_PMf_SHIFT_NEXT (RXf_PMf_STD_PMMOD_SHIFT+7)
/* Mask of the above bits. These need to be transferred from op_pmflags to
* re->extflags during compilation */
-#define RXf_PMf_COMPILETIME (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_LOCALE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_KEEPCOPY)
+#define RXf_PMf_COMPILETIME (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_LOCALE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_KEEPCOPY|RXf_PMf_UNICODE)
/* These copies need to be numerical or defsubs_h.PL won't know about them. */
#define PMf_MULTILINE 1<<0