When apply_verbosity is set to verbosity_silent nothing should be
printed on both stderr and stdout.

To avoid printing on stdout, we can just skip calling the following

        - stat_patch_list(),
        - numstat_patch_list(),
        - summary_patch_list().

It is safe to do that because the above functions have no side
effects other than printing:

- stat_patch_list() only computes some local values and then call
show_stats() and print_stat_summary(), those two functions only
compute local values and call printing functions,
- numstat_patch_list() also only computes local values and calls
printing functions,
- summary_patch_list() calls show_file_mode_name(), printf(),
show_rename_copy(), show_mode_change() that are only printing.

Signed-off-by: Christian Couder <chrisc...@tuxfamily.org>
 apply.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/apply.c b/apply.c
index df85cbc..ddbb0a2 100644
--- a/apply.c
+++ b/apply.c
@@ -4702,13 +4702,13 @@ static int apply_patch(struct apply_state *state,
                goto end;
-       if (state->diffstat)
+       if (state->diffstat && state->apply_verbosity > verbosity_silent)
                stat_patch_list(state, list);
-       if (state->numstat)
+       if (state->numstat && state->apply_verbosity > verbosity_silent)
                numstat_patch_list(state, list);
-       if (state->summary)
+       if (state->summary && state->apply_verbosity > verbosity_silent)

Reply via email to