[PATCHv3 1/3] diff.c: omit hidden entries from namelen calculation with --stat
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- May 27, 2011, 12:36 UTC
- Message-ID
- <b47e2f0865bac1ad0e7b777ce9f27493292c502c.1306499600.git.git@drmicha.warpmail.net>
- 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 <git@drmicha.warpmail.net> --- 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