Don't scale diff stat when not needed
diff --git a/src/diff_stats.c b/src/diff_stats.c
index 6ad670c..42ccbfb 100644
--- a/src/diff_stats.c
+++ b/src/diff_stats.c
@@ -284,6 +284,8 @@ int git_diff_stats_to_buf(
if (width < STATS_FULL_MIN_SCALE)
width = STATS_FULL_MIN_SCALE;
}
+ if (width > stats->max_filestat)
+ width = 0;
for (i = 0; i < stats->files_changed; ++i) {
if ((delta = git_diff_get_delta(stats->diff, i)) == NULL)
diff --git a/tests/diff/stats.c b/tests/diff/stats.c
index 055019f..f731997 100644
--- a/tests/diff/stats.c
+++ b/tests/diff/stats.c
@@ -54,6 +54,10 @@ void test_diff_stats__stat(void)
cl_git_pass(git_diff_stats_to_buf(&buf, _stats, GIT_DIFF_STATS_FULL, 0));
cl_assert(strcmp(git_buf_cstr(&buf), stat) == 0);
git_buf_free(&buf);
+
+ cl_git_pass(git_diff_stats_to_buf(&buf, _stats, GIT_DIFF_STATS_FULL, 80));
+ cl_assert(strcmp(git_buf_cstr(&buf), stat) == 0);
+ git_buf_free(&buf);
}
void test_diff_stats__multiple_hunks(void)