diff --check: correct line numbers of new blank lines at EOF

The whitespace check printed the value of the wrong variable, i.e. the
beginning of the block of blank lines at the EOF (possibly absent) in the
old file.

As "git diff --check" is used by users to check their changes before
making a commit, we should point at the line number in the file after
the change.

Signed-off-by: Christoph Mallon <christoph.mallon@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christoph Mallon 2010-10-10 19:24:06 +02:00 committed by Junio C Hamano
parent 593ce2bea5
commit 8837d33595
2 changed files with 10 additions and 1 deletions

2
diff.c
View file

@ -1888,7 +1888,7 @@ static void builtin_checkdiff(const char *name_a, const char *name_b,
ecbdata.ws_rule = data.ws_rule;
check_blank_at_eof(&mf1, &mf2, &ecbdata);
blank_at_eof = ecbdata.blank_at_eof_in_preimage;
blank_at_eof = ecbdata.blank_at_eof_in_postimage;
if (blank_at_eof) {
static char *err;

View file

@ -178,6 +178,15 @@ test_expect_success 'trailing empty lines (2)' '
'
test_expect_success 'checkdiff shows correct line number for trailing blank lines' '
printf "a\nb\n" > G &&
git add G &&
printf "x\nx\nx\na\nb\nc\n\n" > G &&
[ "$(git diff --check -- G)" = "G:7: new blank line at EOF." ]
'
test_expect_success 'do not color trailing cr in context' '
git config --unset core.whitespace
rm -f .gitattributes &&