diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2019-12-26 01:26:07 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2019-12-26 01:26:07 -0500 |
commit | b7e55876614b1c55bb4e9cf58003de61c1dd8932 (patch) | |
tree | 7a2780245761d9734ef64f33a9ab2abe4bf77d1c /src/fs.c | |
parent | b85bae06b45a02f89c08065fd672b969d4c43f1b (diff) | |
download | spmc-b7e55876614b1c55bb4e9cf58003de61c1dd8932.tar.gz |
Version matching and package searching
Diffstat (limited to 'src/fs.c')
-rw-r--r-- | src/fs.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -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 |