There are some values where git can reasonably guess at an optimal value. For such occasions, this is a nifty addendum to the config api, letting the caller specify a magic string and a magic setting to return if the value of the variable matches the magic string. An example would be for threads, where 0 = auto is overly voodoo-ish for some consumers, and typing "auto" is much nicer and more immediately obvious. Signed-off-by: Andreas Ericsson <ae@xxxxxx> --- cache.h | 1 + config.c | 9 +++++++++ 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/cache.h b/cache.h index 3867ba7..1b923ad 100644 --- a/cache.h +++ b/cache.h @@ -623,6 +623,7 @@ extern int git_config(config_fn_t fn); extern int git_parse_long(const char *, long *); extern int git_parse_ulong(const char *, unsigned long *); extern int git_config_int(const char *, const char *); +extern int git_config_magic_int(const char *, const char *, const char *, int); extern unsigned long git_config_ulong(const char *, const char *); extern int git_config_bool(const char *, const char *); extern int git_config_set(const char *, const char *); diff --git a/config.c b/config.c index 3e72778..635d92b 100644 --- a/config.c +++ b/config.c @@ -288,6 +288,15 @@ int git_config_int(const char *name, const char *value) return ret; } +int git_config_magic_int(const char *name, const char *value, + const char *magic_value, int magic_setting) +{ + if (value && !strcasecmp(value, magic_value)) + return magic_setting; + + return git_config_int(name, value); +} + unsigned long git_config_ulong(const char *name, const char *value) { unsigned long ret; -- 1.5.4.rc5.11.g0eab8 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html