From 03222170f0449b3f2e9185ef2ef65ad58f54c2f5 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Thu, 22 Dec 2011 16:33:01 -0800 Subject: Add macros for checking individual features --- feature.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'feature.h') diff --git a/feature.h b/feature.h index 3ce6e85f09..a56ac8b51f 100644 --- a/feature.h +++ b/feature.h @@ -19,6 +19,68 @@ (PL_curcop == &PL_compiling ? PL_hints : PL_curcop->cop_hints) #define CURRENT_FEATURE_BUNDLE (CURRENT_HINTS >> HINT_FEATURE_SHIFT) +#define FEATURE_SAY_IS_ENABLED \ + ( \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_515) \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("say")) \ + ) + +#define FEATURE_STATE_IS_ENABLED \ + ( \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_515) \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("state")) \ + ) + +#define FEATURE_SWITCH_IS_ENABLED \ + ( \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_515) \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("switch")) \ + ) + +#define FEATURE_EVALBYTES_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_515 \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("evalbytes")) \ + ) + +#define FEATURE_ARYBASE_IS_ENABLED \ + ( \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_DEFAULT && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_511) \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED_d("arybase")) \ + ) + +#define FEATURE___SUB___IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_515 \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("__SUB__")) \ + ) + +#define FEATURE_UNIEVAL_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_515 \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("unieval")) \ + ) + +#define FEATURE_UNICODE_IS_ENABLED \ + ( \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_511 && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_515) \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("unicode")) \ + ) + + #endif /* PERL_CORE or PERL_EXT */ /* ex: set ro: */ -- cgit v1.2.1