aboutsummaryrefslogtreecommitdiff
path: root/src/fs.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2019-12-26 01:26:07 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2019-12-26 01:26:07 -0500
commitb7e55876614b1c55bb4e9cf58003de61c1dd8932 (patch)
tree7a2780245761d9734ef64f33a9ab2abe4bf77d1c /src/fs.c
parentb85bae06b45a02f89c08065fd672b969d4c43f1b (diff)
downloadspmc-b7e55876614b1c55bb4e9cf58003de61c1dd8932.tar.gz
Version matching and package searching
Diffstat (limited to 'src/fs.c')
-rw-r--r--src/fs.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/fs.c b/src/fs.c
index 849ac0f..f561c84 100644
--- a/src/fs.c
+++ b/src/fs.c
@@ -336,3 +336,27 @@ int mkdirs(const char *_path, mode_t mode) {
split_free(parts);
return result;
}
+
+char *human_readable_size(uint64_t n) {
+ int i;
+ double result = (double)n;
+ char *unit[] = {"B", "K", "M", "G", "T", "P", "E"};
+ char r[255];
+ memset(r, '\0', sizeof(r));
+
+ for (i = 0; i < sizeof(unit); i++) {
+ if (labs(result) < 1024) {
+ break;
+ }
+ result /= 1024.0;
+ }
+
+ if (unit[i][0] == 'B') {
+ sprintf(r, "%0.0lf%s", result, unit[i]);
+ }
+ else {
+ sprintf(r, "%0.2lf%s", result, unit[i]);
+ }
+
+ return strdup(r);
+} \ No newline at end of file