Subject: [PATCH] Show the correct line number, when git diff --check detects a blank line at EOF.

From: Christoph Mallon <[email-masked]>
Date: Sun, 10 Oct 2010 19:24:06 +0200

The whitespace check printed the value of the wrong variable, i.e. the line number of the hunk in the old file.

Signed-off-by: Christoph Mallon <[email-masked]>
---
The bug was introduced in d68fe26f3e03b230ac9bbbcf002a9acdc4bebde9. The patch is on top of this commit and can be applied to master (c752e7f3e8d96a9673ad248addc9418164bd3ce6), too.

 diff.c                  |    2 +-
 t/t4019-diff-wserror.sh |    9 +++++++++
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/diff.c b/diff.c
index 63a3bfc..3a3b404 100644
--- a/diff.c
+++ b/diff.c
@@ -1730,7 +1730,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;
diff --git a/t/t4019-diff-wserror.sh b/t/t4019-diff-wserror.sh
index 3a3663f..61119e6 100755
--- a/t/t4019-diff-wserror.sh
+++ b/t/t4019-diff-wserror.sh
@@ -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 &&
-- 
1.7.3