From: Andreas Ericsson Date: Tue, 12 Feb 2008 08:21:21 GMT Subject: [PATCH 1/2] config api: Add git_config_magic_int() Message-ID: <47B15701.8040803@op5.se> 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 --- 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