diff options
| author | Edward Thomson <ethomson@github.com> | 2016-10-09 16:05:48 +0100 |
|---|---|---|
| committer | Edward Thomson <ethomson@github.com> | 2016-10-09 16:05:48 +0100 |
| commit | 610cff13a31964eeb2264a452424e1e3d49accc3 (patch) | |
| tree | b8066e39eb0048097f03c68174364be01611a85a /src | |
| parent | 2468bf0615a581e67c69bd47b6862eabb1940e5e (diff) | |
| parent | dc5cfdbab957a08f3ddda9889f68c81011eb1900 (diff) | |
| download | libgit2-610cff13a31964eeb2264a452424e1e3d49accc3.tar.gz | |
Merge branch 'pr/3809'
Diffstat (limited to 'src')
| -rw-r--r-- | src/diff_stats.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/diff_stats.c b/src/diff_stats.c index 9c186d793..2005712cd 100644 --- a/src/diff_stats.c +++ b/src/diff_stats.c @@ -300,15 +300,24 @@ int git_diff_stats_to_buf( } if (format & GIT_DIFF_STATS_FULL || format & GIT_DIFF_STATS_SHORT) { - error = git_buf_printf( - out, " %" PRIuZ " file%s changed, %" PRIuZ - " insertion%s(+), %" PRIuZ " deletion%s(-)\n", - stats->files_changed, stats->files_changed != 1 ? "s" : "", - stats->insertions, stats->insertions != 1 ? "s" : "", - stats->deletions, stats->deletions != 1 ? "s" : ""); - - if (error < 0) - return error; + git_buf_printf( + out, " %" PRIuZ " file%s changed", + stats->files_changed, stats->files_changed != 1 ? "s" : ""); + + if (stats->insertions || stats->deletions == 0) + git_buf_printf( + out, ", %" PRIuZ " insertion%s(+)", + stats->insertions, stats->insertions != 1 ? "s" : ""); + + if (stats->deletions || stats->insertions == 0) + git_buf_printf( + out, ", %" PRIuZ " deletion%s(-)", + stats->deletions, stats->deletions != 1 ? "s" : ""); + + git_buf_putc(out, '\n'); + + if (git_buf_oom(out)) + return -1; } if (format & GIT_DIFF_STATS_INCLUDE_SUMMARY) { @@ -334,4 +343,3 @@ void git_diff_stats_free(git_diff_stats *stats) git__free(stats->filestats); git__free(stats); } - |
