If the COLUMNS environment variable is set use it's value as the default stat_width. Also set the stat_name_width default to 2/3 of the full width. This does change the default from 50 to 53 when using the original 80 column stat_width fallback. Signed-off-by: Kris Shannon <kris@xxxxxxxxxxxxx> --- diff.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) This has bugged me for a long time. I finally decided to see how hard it would be to fix. I thought about getting the COLUMNS value once but I'm not sure it's worth the extra code. diff --git a/diff.c b/diff.c index 9038f19..6954134 100644 --- a/diff.c +++ b/diff.c @@ -1329,8 +1329,16 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) line_prefix = msg->buf; } - width = options->stat_width ? options->stat_width : 80; - name_width = options->stat_name_width ? options->stat_name_width : 50; + width = options->stat_width; + if (!width) { + char *cols = getenv("COLUMNS"); + + if (cols) + width = strtoul(cols, NULL, 10); + if (!width) + width = 80; + } + name_width = options->stat_name_width ? options->stat_name_width : ((width * 2 + 1) / 3); /* Sanity: give at least 5 columns to the graph, * but leave at least 10 columns for the name. -- 1.7.6.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html