Rubén Justo <rjusto@xxxxxxxxx> writes: > If the user says `--no-ignore-space-change`, there's no need to > check for whitespace errors in the context lines. > > Don't do it. > > Signed-off-by: Rubén Justo <rjusto@xxxxxxxxx> > --- > apply.c | 3 ++- > t/t4124-apply-ws-rule.sh | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/apply.c b/apply.c > index 0cb9d38e5a..e1b4d14dba 100644 > --- a/apply.c > +++ b/apply.c > @@ -1734,7 +1734,8 @@ static int parse_fragment(struct apply_state *state, > trailing++; > check_old_for_crlf(patch, line, len); > if (!state->apply_in_reverse && > - state->ws_error_action == correct_ws_error) > + state->ws_error_action == correct_ws_error && > + state->ws_ignore_action != ignore_ws_none) > check_whitespace(state, line, len, patch->ws_rule); > break; Hmph. 0a80bc9f (apply: detect and mark whitespace errors in context lines when fixing, 2015-01-16) deliberately added this check because we will correct the whitespace breakages on these lines after parsing the hunk with this function while applying. It is iffy that this case arm for " " kicks in ONLY when applying in the forward direction (which is not what you are changing). When applying a patch in reverse, " " is still an "unchanged" context line, so we should be treating it the same way regardless of the direction. But at least the call to check_whitespace() from this place when we are correcting whitespace rule violations is not iffy, as far as I can tell. > diff --git a/t/t4124-apply-ws-rule.sh b/t/t4124-apply-ws-rule.sh > index 573200da67..e12b8333c3 100755 > --- a/t/t4124-apply-ws-rule.sh > +++ b/t/t4124-apply-ws-rule.sh > @@ -569,7 +569,8 @@ test_expect_success 'whitespace=fix honors no-ignore-whitespace' ' > +A > BZZ > EOF > - git apply --no-ignore-whitespace --whitespace=fix patch > + git apply --no-ignore-whitespace --whitespace=fix patch 2>error && > + test_must_be_empty error > ' > > test_expect_success 'whitespace check skipped for excluded paths' '