ruby.c: EACH_FEATURES
* ruby.c (EACH_FEATURES): define the list of feature names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e40d117339
commit
2c9274eff2
17
ruby.c
17
ruby.c
@ -64,11 +64,15 @@ char *getenv();
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define FEATURE_BIT(bit) (1U << feature_##bit)
|
#define FEATURE_BIT(bit) (1U << feature_##bit)
|
||||||
|
#define EACH_FEATURES(X) \
|
||||||
|
X(gems) \
|
||||||
|
X(did_you_mean) \
|
||||||
|
X(rubyopt) \
|
||||||
|
X(frozen_string_literal) \
|
||||||
|
/* END OF FEATURES */
|
||||||
|
#define DEFINE_FEATURE(bit) feature_##bit,
|
||||||
enum feature_flag_bits {
|
enum feature_flag_bits {
|
||||||
feature_gems,
|
EACH_FEATURES(DEFINE_FEATURE)
|
||||||
feature_did_you_mean,
|
|
||||||
feature_rubyopt,
|
|
||||||
feature_frozen_string_literal,
|
|
||||||
feature_debug_frozen_string_literal,
|
feature_debug_frozen_string_literal,
|
||||||
feature_flag_count
|
feature_flag_count
|
||||||
};
|
};
|
||||||
@ -754,10 +758,7 @@ feature_option(const char *str, int len, void *arg, const unsigned int enable)
|
|||||||
unsigned int mask = ~0U;
|
unsigned int mask = ~0U;
|
||||||
#define SET_FEATURE(bit) \
|
#define SET_FEATURE(bit) \
|
||||||
if (NAME_MATCH_P(#bit, str, len)) {mask = FEATURE_BIT(bit); goto found;}
|
if (NAME_MATCH_P(#bit, str, len)) {mask = FEATURE_BIT(bit); goto found;}
|
||||||
SET_FEATURE(gems);
|
EACH_FEATURES(SET_FEATURE);
|
||||||
SET_FEATURE(did_you_mean);
|
|
||||||
SET_FEATURE(rubyopt);
|
|
||||||
SET_FEATURE(frozen_string_literal);
|
|
||||||
if (NAME_MATCH_P("all", str, len)) {
|
if (NAME_MATCH_P("all", str, len)) {
|
||||||
found:
|
found:
|
||||||
*argp = (*argp & ~mask) | (mask & enable);
|
*argp = (*argp & ~mask) | (mask & enable);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user