sbase

suckless unix tools
git clone git://git.2f30.org/sbase.git
Log | Files | Refs | README | LICENSE

commit c6af19c4091b8832b2ed95fb9f31eebf76f29a8e
parent b98aa5adf62a685e540cbd3a210d50e127994e23
Author: Dionysis Grigoropoulos <info@erethon.com>
Date:   Tue Apr 28 12:23:25 +0300

humansize: Use uintmax_t for size

du(1) breaks on 32-bit size_t for files greater than 4G.

Diffstat:
libutil/human.c | 5+++--
util.h | 2+-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/libutil/human.c b/libutil/human.c @@ -1,11 +1,12 @@ /* See LICENSE file for copyright and license details. */ #include <stdio.h> #include <string.h> +#include <stdint.h> #include "../util.h" char * -humansize(size_t n) +humansize(uintmax_t n) { static char buf[16]; const char postfixes[] = "BKMGTPE"; @@ -16,7 +17,7 @@ humansize(size_t n) size /= 1024; if (!i) - snprintf(buf, sizeof(buf), "%zu", n); + snprintf(buf, sizeof(buf), "%ju", n); else snprintf(buf, sizeof(buf), "%.1f%c", size, postfixes[i]); diff --git a/util.h b/util.h @@ -66,7 +66,7 @@ int eregcomp(regex_t *, const char *, int); void enmasse(int, char **, int (*)(const char *, const char *, int)); void fnck(const char *, const char *, int (*)(const char *, const char *, int), int); mode_t getumask(void); -char *humansize(size_t); +char *humansize(uintmax_t); mode_t parsemode(const char *, mode_t, mode_t); void putword(FILE *, const char *); #undef strtonum