show_stats(): fix stats width calculation

Before this patch, name_width becomes negative or null for width values
less than 15 and name_width values greater than 25 (default: 50). This
leads to output random data.

This patch checks for minimal width and name_width values.

Signed-off-by: Olivier Marin <dkr@freesurf.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Olivier Marin 2008-06-27 02:18:48 +02:00 коммит произвёл Junio C Hamano
Родитель 8813df9066
Коммит 861d1af36a
1 изменённых файлов: 6 добавлений и 6 удалений

12
diff.c
Просмотреть файл

@ -830,12 +830,12 @@ static void show_stats(struct diffstat_t* data, struct diff_options *options)
/* Sanity: give at least 5 columns to the graph, /* Sanity: give at least 5 columns to the graph,
* but leave at least 10 columns for the name. * but leave at least 10 columns for the name.
*/ */
if (width < name_width + 15) { if (width < 25)
if (name_width <= 25) width = 25;
width = name_width + 15; if (name_width < 10)
else name_width = 10;
name_width = width - 15; else if (width < name_width + 15)
} name_width = width - 15;
/* Find the longest filename and max number of changes */ /* Find the longest filename and max number of changes */
reset = diff_get_color_opt(options, DIFF_RESET); reset = diff_get_color_opt(options, DIFF_RESET);