On Thu, Nov 18, 2010 at 09:00:13AM -0800, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > I don't think it is worth closing the hole for no reason on other config > > options, but I am certainly fine with breaking it in the case of > > pager.*. > > Hmm, I guess that is fine, but will we hear "Why does it behave > differently only for pager.*" down the line, just like the issue your > patch 1/2 addressed, which was "Why does it behave differently only for > log.decorate?" Perhaps, but the difference is that for log.decorate I had no answer (because it was not behaving as indicated by the documentation), whereas with this I can with a good conscious say "go away, you are relying ridiculous undocumented behavior". That being said, it is much easier than I expected to make it Just Work the same way, so perhaps we should do this on top: -- >8 -- Subject: [PATCH] handle arbitrary ints in git_config_maybe_bool This function recently gained the ability to recognize the documented "0" and "1" values as false/true. However, unlike regular git_config_bool, it did not treat arbitrary numbers as true. While this is undocumented and probably ridiculous for somebody to rely on, it is safer to behave exactly as git_config_bool would. Because git_config_maybe_bool can be used to retrofit new non-bool values onto existings bool options, not behaving in exactly the same way is technically a regression. Signed-off-by: Jeff King <peff@xxxxxxxx> --- It even saves 2 lines, so it _must_ be better. :) config.c | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) diff --git a/config.c b/config.c index d3fa953..299ae80 100644 --- a/config.c +++ b/config.c @@ -429,13 +429,11 @@ static int git_config_maybe_bool_text(const char *name, const char *value) int git_config_maybe_bool(const char *name, const char *value) { - int v = git_config_maybe_bool_text(name, value); + long v = git_config_maybe_bool_text(name, value); if (0 <= v) return v; - if (!strcmp(value, "0")) - return 0; - if (!strcmp(value, "1")) - return 1; + if (git_parse_long(value, &v)) + return !!v; return -1; } -- 1.7.3.2.510.g24900 -- 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