[PATCH 1/3] git_config_*: don't assume we are parsing a config file
- From
Jeff King <peff@peff.net>
- Date
- Feb 21, 2008, 00:00 UTC
- Message-ID
- <20080221000032.GA6429@coredump.intra.peff.net>
- In-Reply-To
- <20080220235944.GA6278@coredump.intra.peff.net>
These functions get called by other code, including parsing config options from the command line. In that case, config_file_name is NULL, leading to an ugly message or even a segfault on some implementations of printf.
Signed-off-by: Jeff King <peff@peff.net> --- config.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/config.c b/config.c index 8064cae..cba2bcf 100644 --- a/config.c +++ b/config.c @@ -280,11 +280,18 @@ int git_parse_ulong(const char *value, unsigned long *ret) return 0; } +static void die_bad_config(const char *name) +{ + if (config_file_name) + die("bad config value for '%s' in %s", name, config_file_name); + die("bad config value for '%s'", name); +} + int git_config_int(const char *name, const char *value) { long ret; if (!git_parse_long(value, &ret)) - die("bad config value for '%s' in %s", name, config_file_name); + die_bad_config(name); return ret; } @@ -292,7 +299,7 @@ unsigned long git_config_ulong(const char *name, const char *value) { unsigned long ret; if (!git_parse_ulong(value, &ret)) - die("bad config value for '%s' in %s", name, config_file_name); + die_bad_config(name); return ret; }
-- 1.5.4.2.247.g107bd