From: Junio C Hamano Date: Tue, 05 Feb 2008 00:03:34 GMT Subject: Re: [bug] generic issue with git_config handlers Message-ID: <7vk5lki815.fsf@gitster.siamese.dyndns.org> In-Reply-To: <200802050013.20335.chriscool@tuxfamily.org> Christian Couder writes: > Very unfortunate. > > I finally had the following patch that passed all tests (it changed only one > test), in case someone wants to suggest that we change git_config_bool, > hint, hint! Sorry, I do not get what you are hinting at. The fact that you passed all the tests suggests that we have a gap in the test coverage for these two, so you are inviting more tests from others? > diff --git a/config.c b/config.c > index 526a3f4..a2c7214 100644 > --- a/config.c > +++ b/config.c > @@ -131,7 +131,7 @@ static int get_value(config_fn_t fn, char *name, > unsigned in > while (c == ' ' || c == '\t') > c = get_next_char(); > > - value = NULL; > + value = ""; > if (c != '\n') { > if (c != '=') > return -1; As long as you have this, I do not think you can avoid breaking existing repositories that have: [core] autocrlf filemode = and expect git to say "Ah, core.autocrlf is set to true, and filemode is not trustable, so I need to do a MS-DOG". $ git config --bool core.autocrlf true $ git config --bool core.filemode false Your "builtin-config.c" patch looks better than before (which would segfault), but I think $ git config --bool --list could pay attention to the "type" thing set earlier, just like show_config() does.