From ad556dbe146fd1a5e60bdbb3467748b5132b3a73 Mon Sep 17 00:00:00 2001 From: infirit Date: Wed, 17 Dec 2014 15:56:25 +0100 Subject: Added SI prefix tera to network counter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Taken from GSM commit: 3ea7303181e80e188e72a4fcd98b9970fe554b3b From: Chris Kühl --- src/util.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index a96f776..8d7694d 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -149,10 +149,12 @@ procman_make_label_for_mmaps_or_ofiles(const char *format, gchar* procman::format_size(guint64 size, guint64 max_size, bool want_bits) { + enum { K_INDEX, M_INDEX, - G_INDEX + G_INDEX, + T_INDEX }; struct Format { @@ -160,16 +162,18 @@ procman::format_size(guint64 size, guint64 max_size, bool want_bits) const char* string; }; - const Format all_formats[2][3] = { - { { 1UL << 10, N_("%.1f KiB") }, - { 1UL << 20, N_("%.1f MiB") }, - { 1UL << 30, N_("%.1f GiB") } }, - { { 1000, N_("%.1f kbit") }, - { 1000000, N_("%.1f Mbit") }, - { 1000000000, N_("%.1f Gbit") } } + const Format all_formats[2][4] = { + { { 1UL << 10, N_("%.1f KiB") }, + { 1UL << 20, N_("%.1f MiB") }, + { 1UL << 30, N_("%.1f GiB") }, + { 1UL << 40, N_("%.1f TiB") } }, + { { 1000, N_("%.1f kbit") }, + { 1000000, N_("%.1f Mbit") }, + { 1000000000, N_("%.1f Gbit") }, + { 1000000000000, N_("%.1f Tbit") } } }; - const Format (&formats)[3] = all_formats[want_bits ? 1 : 0]; + const Format (&formats)[4] = all_formats[want_bits ? 1 : 0]; if (want_bits) { size *= 8; @@ -194,9 +198,12 @@ procman::format_size(guint64 size, guint64 max_size, bool want_bits) } else if (max_size < formats[G_INDEX].factor) { factor = formats[M_INDEX].factor; format = formats[M_INDEX].string; - } else { + } else if (max_size < formats[T_INDEX].factor) { factor = formats[G_INDEX].factor; format = formats[G_INDEX].string; + } else { + factor = formats[T_INDEX].factor; + format = formats[T_INDEX].string; } return g_strdup_printf(_(format), size / (double)factor); -- cgit v1.2.1