summaryrefslogtreecommitdiffstats
path: root/common/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/utils.c')
-rw-r--r--common/utils.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/common/utils.c b/common/utils.c
index f95ecfd..4a45d95 100644
--- a/common/utils.c
+++ b/common/utils.c
@@ -139,6 +139,28 @@ char *string_build_path(const char *elem, ...)
return out;
}
+char *string_format_size(uint64_t size)
+{
+ char buf[80];
+ double sz;
+ if (size >= 1000000000000LL) {
+ sz = ((double)size / 1000000000000.0f);
+ sprintf(buf, "%0.1f TB", sz);
+ } else if (size >= 1000000000LL) {
+ sz = ((double)size / 1000000000.0f);
+ sprintf(buf, "%0.1f GB", sz);
+ } else if (size >= 1000000LL) {
+ sz = ((double)size / 1000000.0f);
+ sprintf(buf, "%0.1f MB", sz);
+ } else if (size >= 1000LL) {
+ sz = ((double)size / 1000.0f);
+ sprintf(buf, "%0.1f KB", sz);
+ } else {
+ sprintf(buf, "%d Bytes", (int)size);
+ }
+ return strdup(buf);
+}
+
char *string_toupper(char* str)
{
char *res = strdup(str);