summaryrefslogtreecommitdiff
path: root/op_reg_common.h
diff options
context:
space:
mode:
authorKarl Williamson <khw@khw-desktop.(none)>2010-07-19 22:26:43 -0600
committerRafael Garcia-Suarez <rgs@consttype.org>2010-07-29 12:10:18 +0200
commit1850c8f94216e3e6bf08ca1f3121b4a91d01d1bf (patch)
tree3ca0eb84849e8b79f73a6ba5a5ad48c657386295 /op_reg_common.h
parente32a881648677e322dff2b672a89f19c7d31b263 (diff)
downloadperl-1850c8f94216e3e6bf08ca1f3121b4a91d01d1bf.tar.gz
Refactor common parts of op.h, regexp.h into new .h
op.h and regexp.h share common elements in their data structures. They have had to manually be kept in sync. This patch makes it easier by putting those common parts into a common header #included by the two. To do this, it seemed easiest to change the symbol definitions to use left shifts to generate the flag bits. But this meant that regcomp.pl and axt/B/defsubs_h.PL had to be taught to recognize those forms of expressions, done in separate commits
Diffstat (limited to 'op_reg_common.h')
-rw-r--r--op_reg_common.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/op_reg_common.h b/op_reg_common.h
new file mode 100644
index 0000000000..b0fd273b3d
--- /dev/null
+++ b/op_reg_common.h
@@ -0,0 +1,27 @@
+/* op_reg_common.h
+ *
+ * Definitions common to by op.h and regexp.h
+ *
+ * Copyright (C) 2010 by Larry Wall and others
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/* These defines are used in both op.h and regexp.h The definitions use the
+ * shift form so that ext/B/defsubs_h.PL will pick them up */
+#define RXf_PMf_MULTILINE (1 << 0) /* /m */
+#define PMf_MULTILINE (1 << 0) /* /m */
+#define RXf_PMf_SINGLELINE (1 << 1) /* /s */
+#define PMf_SINGLELINE (1 << 1) /* /s */
+#define RXf_PMf_FOLD (1 << 2) /* /i */
+#define PMf_FOLD (1 << 2) /* /i */
+#define RXf_PMf_EXTENDED (1 << 3) /* /x */
+#define PMf_EXTENDED (1 << 3) /* /x */
+#define RXf_PMf_KEEPCOPY (1 << 4) /* /p */
+#define PMf_KEEPCOPY (1 << 4) /* /p */
+#define RXf_PMf_LOCALE (1 << 5)
+#define PMf_LOCALE (1 << 5)
+
+#define _RXf_PMf_SHIFT 5 /* Begins with '_' so won't be exported by B */