From 0fb465194789965b6fb2efd31995a2441144d650 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Sat, 8 Aug 2015 21:10:44 -0500 Subject: Different tools have different ideas about what human-readable output looks like. dd uses "7 MB" where du uses "7M", for example. this patch adds flags, similar to the BSD humanize_number. most callers will pass 0. --- lib/lib.c | 6 +++--- lib/lib.h | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/lib.c b/lib/lib.c index 4b87f8cf..c16cffe4 100644 --- a/lib/lib.c +++ b/lib/lib.c @@ -868,7 +868,7 @@ void names_to_pid(char **names, int (*callback)(pid_t pid, char *name)) // display first few digits of number with power of two units, except we're // actually just counting decimal digits and showing mil/bil/trillions. -int human_readable(char *buf, unsigned long long num) +int human_readable(char *buf, unsigned long long num, int style) { int end, len; @@ -881,9 +881,9 @@ int human_readable(char *buf, unsigned long long num) buf[1] = '.'; end = 3; } - buf[end++] = ' '; + if (style & HR_SPACE) buf[end++] = ' '; if (len) buf[end++] = " KMGTPE"[len]; - buf[end++] = 'B'; + if (style & HR_B) buf[end++] = 'B'; buf[end++] = 0; return end; diff --git a/lib/lib.h b/lib/lib.h index 1b3f9575..17a4a974 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -177,7 +177,9 @@ void replace_tempfile(int fdin, int fdout, char **tempname); void crc_init(unsigned int *crc_table, int little_endian); void base64_init(char *p); int yesno(char *prompt, int def); -int human_readable(char *buf, unsigned long long num); +#define HR_SPACE 1 +#define HR_B 2 +int human_readable(char *buf, unsigned long long num, int style); int qstrcmp(const void *a, const void *b); int xpoll(struct pollfd *fds, int nfds, int timeout); -- cgit v1.2.3