mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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
1 changed files with 9 additions and 8 deletions
17
ruby.c
17
ruby.c
|
@ -64,11 +64,15 @@ char *getenv();
|
|||
#endif
|
||||
|
||||
#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 {
|
||||
feature_gems,
|
||||
feature_did_you_mean,
|
||||
feature_rubyopt,
|
||||
feature_frozen_string_literal,
|
||||
EACH_FEATURES(DEFINE_FEATURE)
|
||||
feature_debug_frozen_string_literal,
|
||||
feature_flag_count
|
||||
};
|
||||
|
@ -754,10 +758,7 @@ feature_option(const char *str, int len, void *arg, const unsigned int enable)
|
|||
unsigned int mask = ~0U;
|
||||
#define SET_FEATURE(bit) \
|
||||
if (NAME_MATCH_P(#bit, str, len)) {mask = FEATURE_BIT(bit); goto found;}
|
||||
SET_FEATURE(gems);
|
||||
SET_FEATURE(did_you_mean);
|
||||
SET_FEATURE(rubyopt);
|
||||
SET_FEATURE(frozen_string_literal);
|
||||
EACH_FEATURES(SET_FEATURE);
|
||||
if (NAME_MATCH_P("all", str, len)) {
|
||||
found:
|
||||
*argp = (*argp & ~mask) | (mask & enable);
|
||||
|
|
Loading…
Add table
Reference in a new issue