diff options
Diffstat (limited to 'hardinfo2/util.c')
-rw-r--r-- | hardinfo2/util.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/hardinfo2/util.c b/hardinfo2/util.c index 79084c2c..ee6040b2 100644 --- a/hardinfo2/util.c +++ b/hardinfo2/util.c @@ -19,18 +19,21 @@ #include <hardinfo.h> #include <gtk/gtk.h> -inline void -remove_quotes(gchar *str) -{ - if (!str) - return; +#define KiB 1024 +#define MiB 1048576 +#define GiB 1073741824 - while (*str == '"') - *(str++) = ' '; +inline gchar * +size_human_readable(gfloat size) +{ + if (size < KiB) + return g_strdup_printf("%.1f B", size); + if (size < MiB) + return g_strdup_printf("%.1f KiB", size / KiB); + if (size < GiB) + return g_strdup_printf("%.1f MiB", size / MiB); - gchar *p; - if ((p = strchr(str, '"'))) - *p = 0; + return g_strdup_printf("%.1f GiB", size / GiB); } inline void @@ -45,6 +48,18 @@ strend(gchar *str, gchar chr) } inline void +remove_quotes(gchar *str) +{ + if (!str) + return; + + while (*str == '"') + *(str++) = ' '; + + strend(str, '"'); +} + +inline void remove_linefeed(gchar * str) { strend(str, '\n'); |