Re: [PATCH 3/3] diff --stat: sometimes use non-linear scaling.
From: David Rientjes <hidden>
Date: 2016-06-15 22:42:42
On Tue, 26 Sep 2006, Junio C Hamano wrote:
quoted hunk ↗ jump to hunk
@@ -574,10 +585,11 @@ static void show_graph(char ch, int cnt, static void show_stats(struct diffstat_t* data, struct diff_options *options) { int i, len, add, del, total, adds = 0, dels = 0; - int max_change = 0, max_len = 0; + int max_change = 0, max_len = 0, min_change = 0; int total_files = data->nr; int width, name_width; const char *reset, *set, *add_c, *del_c; + int non_linear_scale = 0; if (data->nr == 0) return;@@ -620,6 +632,8 @@ static void show_stats(struct diffstat_t continue; if (max_change < change) max_change = change; + if (0 < change && (!min_change || change < min_change)) + min_change = change; }
Again with the constant placement in a comparison expression.
quoted hunk ↗ jump to hunk
@@ -684,6 +704,11 @@ static void show_stats(struct diffstat_t if (max_change < width) ; + else if (non_linear_scale) { + total = scale_non_linear(total, width, max_change); + add = scale_linear(add, total, add + del); + del = total - add; + } else { total = scale_linear(total, width, max_change); add = scale_linear(add, width, max_change);
if (...)
;
else if {
...
}
is _never_ necessary.
David