From: Michael J Gruber Date: Fri, 27 May 2011 12:36:40 GMT Subject: [PATCHv3 1/3] diff.c: omit hidden entries from namelen calculation with --stat Message-ID: In-Reply-To: <4DC0FD3D.9010004@drmicha.warpmail.net> Currently, --stat calculates the longest name from all items but then drops some (mode changes) from the output later on. Instead, drop them from the namelen generation and calculation. Signed-off-by: Michael J Gruber --- This optimizes (tightens) the display potentially, but we never had tests which are sensitive to that. --- diff.c | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) diff --git a/diff.c b/diff.c index feced34..4541939 100644 --- a/diff.c +++ b/diff.c @@ -1278,6 +1278,10 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) for (i = 0; i < data->nr; i++) { struct diffstat_file *file = data->files[i]; uintmax_t change = file->added + file->deleted; + if (!data->files[i]->is_renamed && + (change == 0)) { + continue; + } fill_print_name(file); len = strlen(file->print_name); if (max_len < len) @@ -1309,6 +1313,11 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) uintmax_t deleted = data->files[i]->deleted; int name_len; + if (!data->files[i]->is_renamed && + (added + deleted == 0)) { + total_files--; + continue; + } /* * "scale" the filename */ @@ -1343,11 +1352,6 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) fprintf(options->file, " Unmerged\n"); continue; } - else if (!data->files[i]->is_renamed && - (added + deleted == 0)) { - total_files--; - continue; - } /* * scale the add/delete -- 1.7.5.2.657.g62c2