Skip to content

Commit

Permalink
apply --whitespace: warn blank but not necessarily empty lines at EOF
Browse files Browse the repository at this point in the history
The whitespace error of adding blank lines at the end of file should
trigger if you added a non-empty line at the end, if the contents of the
line is full of whitespaces.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Sep 4, 2009
1 parent 77b15bb commit 94ea026
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
6 changes: 4 additions & 2 deletions builtin-apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -1957,7 +1957,8 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
is_blank_context = 1;
break;
case ' ':
if (plen && patch[1] == '\n')
if (plen && (ws_rule & WS_BLANK_AT_EOF) &&
ws_blank_line(patch + 1, plen, ws_rule))
is_blank_context = 1;
case '-':
memcpy(old, patch + 1, plen);
Expand Down Expand Up @@ -1985,7 +1986,8 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
(first == '+' ? 0 : LINE_COMMON));
new += added;
if (first == '+' &&
added == 1 && new[-1] == '\n')
(ws_rule & WS_BLANK_AT_EOF) &&
ws_blank_line(patch + 1, plen, ws_rule))
added_blank_line = 1;
break;
case '@': case '\\':
Expand Down
13 changes: 13 additions & 0 deletions t/t4124-apply-ws-rule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -227,4 +227,17 @@ test_expect_success 'blank at EOF with --whitespace=error' '
grep "new blank line at EOF" error
'

test_expect_success 'blank but not empty at EOF' '
{ echo a; echo b; echo c; } >one &&
git add one &&
echo " " >>one &&
cat one >expect &&
git diff -- one >patch &&
git checkout one &&
git apply --whitespace=warn patch 2>error &&
test_cmp expect one &&
grep "new blank line at EOF" error
'

test_done

0 comments on commit 94ea026

Please sign in to comment.