sbase

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

commit 2d6cde186235f571ef954c8051eacdbbf7105c6e
parent 68fb6754babd7a437f86f9d4b4051dc9a3d34487
Author: Dionysis Grigoropoulos <info@erethon.com>
Date:   Tue, 28 Apr 2015 12:23:25 +0300

humansize: Use uintmax_t for size

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

Diffstat:
Mlibutil/human.c | 5+++--
Mutil.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