apply: detect and mark whitespace errors in context lines when fixing
authorJunio C Hamano <gitster@pobox.com>
Fri, 16 Jan 2015 21:21:13 +0000 (13:21 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 22 Jan 2015 20:57:24 +0000 (12:57 -0800)
When the incoming patch has whitespace errors in a common context
line (i.e. a line that is expected to be found and is not modified
by the patch), "apply --whitespace=fix" corrects the whitespace
errors the line has, in addition to the whitespace error on a line
that is updated by the patch. However, we did not count and report
that we fixed whitespace errors on such lines.

[jc: This is iffy. What if the whitespace error has been fixed in
the target since the patch was written? A common context line we
see in the patch has errors, and it matches a line in the target
that has the errors already corrected, resulting in no change, which
we may not want to count after all. On the other hand, we are
reporting whitespace errors _in_ the incoming patch, so...]

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/apply.c
index e8953404d2f1621fbb5d964b6b3adceed0ef74f6..a51a1b0872af6e6778e05079accfa8966f30f39a 100644 (file)
@@ -1606,6 +1606,9 @@ static int parse_fragment(const char *line, unsigned long size,
                        if (!deleted && !added)
                                leading++;
                        trailing++;
+                       if (!apply_in_reverse &&
+                           ws_error_action == correct_ws_error)
+                               check_whitespace(line, len, patch->ws_rule);
                        break;
                case '-':
                        if (apply_in_reverse &&