From 76cb3d5b880057a7ee56c94a909510c15e53bb79 Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Sun, 1 Mar 2015 19:20:03 +0100 Subject: [PATCH] Fix printing of wasted space in "status" command --- cmdline/status.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmdline/status.c b/cmdline/status.c index b4cc41be..73064b61 100644 --- a/cmdline/status.c +++ b/cmdline/status.c @@ -193,7 +193,8 @@ int state_status(struct snapraid_state* state) wasted = (int64_t)disk_block_max_by_space - (int64_t)disk_block_max_by_parity; wasted *= state->block_size; - all_wasted += wasted; + if (wasted > 0) + all_wasted += wasted; file_block_free += disk_block_max - disk_block_count; printf("%8u", disk_file_count); @@ -202,7 +203,9 @@ int state_status(struct snapraid_state* state) if (wasted < -100LL * 1024 * 1024 * 1024) { printf(" -"); } else if (wasted < 0) { - printf("%6" PRId64 ".%01" PRIu64, wasted / (int64_t)base, (-wasted * 10 / base) % 10); + char buffer[32]; + snprintf(buffer, sizeof(buffer), "-%" PRId64 ".%01" PRIu64, -wasted / base, (-wasted * 10 / base) % 10); + printf("%8s", buffer); } else { printf("%6" PRIu64 ".%01" PRIu64, wasted / base, (wasted * 10 / base) % 10); }