diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-10-13 19:03:20 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-13 19:03:20 -0700 |
commit | 89dfd2dfbf4b082c7b1563aa321042f6680efe46 (patch) | |
tree | 5d312abd97c4bfd40f9a16c6e114cfb0a005b0ab /builtin/apply.c | |
parent | c13975e7fd19a6939de264233eed20f93c6d1f46 (diff) | |
parent | 855726395342441808eff5e4e9ad9a2b9254edbc (diff) | |
download | git-89dfd2dfbf4b082c7b1563aa321042f6680efe46.tar.gz git-89dfd2dfbf4b082c7b1563aa321042f6680efe46.tar.xz |
Merge branch 'jc/apply-blank-at-eof-fix'
* jc/apply-blank-at-eof-fix:
apply --whitespace=error: correctly report new blank lines at end
Diffstat (limited to 'builtin/apply.c')
-rw-r--r-- | builtin/apply.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/builtin/apply.c b/builtin/apply.c index 872e40ab1..694f55dc5 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -2447,6 +2447,8 @@ static int apply_one_fragment(struct image *img, struct fragment *frag, char *old, *oldlines; struct strbuf newlines; int new_blank_lines_at_end = 0; + int found_new_blank_lines_at_end = 0; + int hunk_linenr = frag->linenr; unsigned long leading, trailing; int pos, applied_pos; struct image preimage; @@ -2540,14 +2542,18 @@ static int apply_one_fragment(struct image *img, struct fragment *frag, error("invalid start of line: '%c'", first); return -1; } - if (added_blank_line) + if (added_blank_line) { + if (!new_blank_lines_at_end) + found_new_blank_lines_at_end = hunk_linenr; new_blank_lines_at_end++; + } else if (is_blank_context) ; else new_blank_lines_at_end = 0; patch += len; size -= len; + hunk_linenr++; } if (inaccurate_eof && old > oldlines && old[-1] == '\n' && @@ -2629,7 +2635,8 @@ static int apply_one_fragment(struct image *img, struct fragment *frag, preimage.nr + applied_pos >= img->nr && (ws_rule & WS_BLANK_AT_EOF) && ws_error_action != nowarn_ws_error) { - record_ws_error(WS_BLANK_AT_EOF, "+", 1, frag->linenr); + record_ws_error(WS_BLANK_AT_EOF, "+", 1, + found_new_blank_lines_at_end); if (ws_error_action == correct_ws_error) { while (new_blank_lines_at_end--) remove_last_line(&postimage); |