lib: print_color_rate(): Fix formatting small rates in IEC mode

ISO/IEC units are distinguished from the decadic ones by using a prefixes
like "Ki", "Mi" instead of "K" and "M". The current code inserts the letter
"i" after the decadic unit when in IEC mode. However it does so even when
the prefix is an empty string, formatting 1Kbit in IEC mode as "1000ibit".
Fix by omitting the letter if there is no prefix.

Signed-off-by: Petr Machata <me@pmachata.org>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
Petr Machata 2020-12-05 22:13:33 +01:00 committed by David Ahern
parent a0a4b6618c
commit aaeda2a768

View File

@ -333,7 +333,8 @@ int print_color_rate(bool use_iec, enum output_type type, enum color_attr color,
rate /= kilo; rate /= kilo;
} }
rc = asprintf(&buf, "%.0f%s%sbit", (double)rate, units[i], str); rc = asprintf(&buf, "%.0f%s%sbit", (double)rate, units[i],
i > 0 ? str : "");
if (rc < 0) if (rc < 0)
return -1; return -1;