summaryrefslogtreecommitdiff
path: root/feature.h
diff options
context:
space:
mode:
Diffstat (limited to 'feature.h')
-rw-r--r--feature.h35
1 files changed, 24 insertions, 11 deletions
diff --git a/feature.h b/feature.h
index 08061e12c8..900a1b990e 100644
--- a/feature.h
+++ b/feature.h
@@ -22,16 +22,17 @@
#define FEATURE_FC_BIT 0x0080
#define FEATURE_INDIRECT_BIT 0x0100
#define FEATURE_ISA_BIT 0x0200
-#define FEATURE_MULTIDIMENSIONAL_BIT 0x0400
-#define FEATURE_POSTDEREF_QQ_BIT 0x0800
-#define FEATURE_REFALIASING_BIT 0x1000
-#define FEATURE_SAY_BIT 0x2000
-#define FEATURE_SIGNATURES_BIT 0x4000
-#define FEATURE_STATE_BIT 0x8000
-#define FEATURE_SWITCH_BIT 0x10000
-#define FEATURE_TRY_BIT 0x20000
-#define FEATURE_UNIEVAL_BIT 0x40000
-#define FEATURE_UNICODE_BIT 0x80000
+#define FEATURE_MODULE_TRUE_BIT 0x0400
+#define FEATURE_MULTIDIMENSIONAL_BIT 0x0800
+#define FEATURE_POSTDEREF_QQ_BIT 0x1000
+#define FEATURE_REFALIASING_BIT 0x2000
+#define FEATURE_SAY_BIT 0x4000
+#define FEATURE_SIGNATURES_BIT 0x8000
+#define FEATURE_STATE_BIT 0x10000
+#define FEATURE_SWITCH_BIT 0x20000
+#define FEATURE_TRY_BIT 0x40000
+#define FEATURE_UNIEVAL_BIT 0x80000
+#define FEATURE_UNICODE_BIT 0x100000
#define FEATURE_BUNDLE_DEFAULT 0
#define FEATURE_BUNDLE_510 1
@@ -151,6 +152,13 @@
FEATURE_IS_ENABLED_MASK(FEATURE___SUB___BIT)) \
)
+#define FEATURE_MODULE_TRUE_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_537 \
+ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED_MASK(FEATURE_MODULE_TRUE_BIT)) \
+ )
+
#define FEATURE_REFALIASING_IS_ENABLED \
( \
CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
@@ -333,7 +341,12 @@ S_magic_sethint_feature(pTHX_ SV *keysv, const char *keypv, STRLEN keylen,
return;
case 'm':
- if (keylen == sizeof("feature_more_delims")-1
+ if (keylen == sizeof("feature_module_true")-1
+ && memcmp(subf+1, "odule_true", keylen - sizeof("feature_")) == 0) {
+ mask = FEATURE_MODULE_TRUE_BIT;
+ break;
+ }
+ else if (keylen == sizeof("feature_more_delims")-1
&& memcmp(subf+1, "ore_delims", keylen - sizeof("feature_")) == 0) {
mask = FEATURE_MORE_DELIMS_BIT;
break;