mirror of
https://github.com/git/git.git
synced 2026-02-28 02:42:52 +00:00
config: use an enum for type
The --type=<X> option for 'git config' has previously been defined using macros, but using a typed enum is better for tracking the possible values. Move the definition up to make sure it is defined before a macro uses some of its terms. Update the initializer for config_display_options to explicitly set 'type' to TYPE_NONE even though this is implied by a zero value. This assists in knowing that the switch statement added in the previous change has a complete set of cases for a properly-valued enum. Signed-off-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
645f92a3e9
commit
096aa60998
@@ -86,6 +86,17 @@ struct config_location_options {
|
||||
.respect_includes_opt = -1, \
|
||||
}
|
||||
|
||||
enum config_type {
|
||||
TYPE_NONE = 0,
|
||||
TYPE_BOOL,
|
||||
TYPE_INT,
|
||||
TYPE_BOOL_OR_INT,
|
||||
TYPE_PATH,
|
||||
TYPE_EXPIRY_DATE,
|
||||
TYPE_COLOR,
|
||||
TYPE_BOOL_OR_STR,
|
||||
};
|
||||
|
||||
#define CONFIG_TYPE_OPTIONS(type) \
|
||||
OPT_GROUP(N_("Type")), \
|
||||
OPT_CALLBACK('t', "type", &type, N_("type"), N_("value is given this type"), option_parse_type), \
|
||||
@@ -111,7 +122,7 @@ struct config_display_options {
|
||||
int show_origin;
|
||||
int show_scope;
|
||||
int show_keys;
|
||||
int type;
|
||||
enum config_type type;
|
||||
char *default_value;
|
||||
/* Populated via `display_options_init()`. */
|
||||
int term;
|
||||
@@ -122,17 +133,9 @@ struct config_display_options {
|
||||
.term = '\n', \
|
||||
.delim = '=', \
|
||||
.key_delim = ' ', \
|
||||
.type = TYPE_NONE, \
|
||||
}
|
||||
|
||||
#define TYPE_NONE 0
|
||||
#define TYPE_BOOL 1
|
||||
#define TYPE_INT 2
|
||||
#define TYPE_BOOL_OR_INT 3
|
||||
#define TYPE_PATH 4
|
||||
#define TYPE_EXPIRY_DATE 5
|
||||
#define TYPE_COLOR 6
|
||||
#define TYPE_BOOL_OR_STR 7
|
||||
|
||||
#define OPT_CALLBACK_VALUE(s, l, v, h, i) { \
|
||||
.type = OPTION_CALLBACK, \
|
||||
.short_name = (s), \
|
||||
|
||||
Reference in New Issue
Block a user