aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xz/message.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/xz/message.c b/src/xz/message.c
index 4e344ea6..be120caf 100644
--- a/src/xz/message.c
+++ b/src/xz/message.c
@@ -355,11 +355,8 @@ progress_speed(uint64_t uncompressed_pos, uint64_t elapsed)
if (elapsed < 3000)
return "";
- static const char unit[][8] = {
- "KiB/s",
- "MiB/s",
- "GiB/s",
- };
+ // The first character of KiB/s, MiB/s, or GiB/s:
+ static const char unit[] = { 'K', 'M', 'G' };
size_t unit_index = 0;
@@ -381,7 +378,7 @@ progress_speed(uint64_t uncompressed_pos, uint64_t elapsed)
// - 999 KiB/s
// Use big enough buffer to hold e.g. a multibyte decimal point.
static char buf[16];
- snprintf(buf, sizeof(buf), "%.*f %s",
+ snprintf(buf, sizeof(buf), "%.*f %ciB/s",
speed > 9.9 ? 0 : 1, speed, unit[unit_index]);
return buf;
}