Improve error messages when int/long cannot be parsed from config
authorShawn O. Pearce <spearce@spearce.org>
Tue, 25 Dec 2007 07:18:05 +0000 (02:18 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 26 Dec 2007 19:37:45 +0000 (11:37 -0800)
commitc8deb5a14686c9c2d0ca1e8f42aec8ed44d16954
treeae9c98bbc7b7d04448909a70ffafcf2af83b6749
parent3a969ef1d67e3b3a26c36cfbe94f6dba05d6dc69
Improve error messages when int/long cannot be parsed from config

If a config file has become mildly corrupted due to a missing LF
we may discover some other option joined up against the end of a
numeric value.  For example:

[section]
number = 1auto

where the "auto" flag was meant to occur on the next line, below
"number", but the missing LF has caused it to no longer be its
own option.  Instead the word "auto" is parsed as a 'unit factor'
for the value of "number".

Before this change we got the confusing error message:

  fatal: unknown unit: 'auto'

which told us nothing about where the problem appeared.  Now we get:

  fatal: bad config value for 'aninvalid.unit'

which at least points the user in the right direction of where to
search for the incorrectly formatted configuration file.

Noticed by erikh on #git, which received the original error from
a simple `git checkout -b` due to a midly corrupted config.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
config.c
t/t1300-repo-config.sh