X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/6389c77752f6ccdaf7373d97ae65079e9f58d270..bd299e299a2e44d6d10ecebc24b6b6267e7db073:/feature.h diff --git a/feature.h b/feature.h index 2d06450..215a4d5 100644 --- a/feature.h +++ b/feature.h @@ -17,15 +17,25 @@ #define CURRENT_HINTS \ (PL_curcop == &PL_compiling ? PL_hints : PL_curcop->cop_hints) -#define CURRENT_FEATURE_BUNDLE (CURRENT_HINTS >> HINT_FEATURE_SHIFT) +#define CURRENT_FEATURE_BUNDLE \ + ((CURRENT_HINTS & HINT_FEATURE_MASK) >> HINT_FEATURE_SHIFT) +/* Avoid using ... && Perl_feature_is_enabled(...) as that triggers a bug in + the HP-UX cc on PA-RISC */ #define FEATURE_IS_ENABLED(name) \ ((CURRENT_HINTS \ & HINT_LOCALIZE_HH) \ - && Perl_feature_is_enabled(aTHX_ STR_WITH_LEN(name))) + ? Perl_feature_is_enabled(aTHX_ STR_WITH_LEN(name)) : FALSE) /* The longest string we pass in. */ #define MAX_FEATURE_LEN (sizeof("evalbytes")-1) +#define FEATURE_FC_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_515 \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("fc")) \ + ) + #define FEATURE_SAY_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \ @@ -71,6 +81,12 @@ FEATURE_IS_ENABLED("__SUB__")) \ ) +#define FEATURE_LEXSUBS_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED("lexsubs") \ + ) + #define FEATURE_UNIEVAL_IS_ENABLED \ ( \ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_515 \