diff options
author | Jim Meyering <jim@meyering.net> | 1996-02-01 04:13:26 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1996-02-01 04:13:26 +0000 |
commit | 3b69e6514c600d8bbbc82ff85f6e386d3038dfeb (patch) | |
tree | a2a843ea9c1b122a15b4a27c33b253eac1917227 /src | |
parent | 9018ec3d41f1c922916b14da6bf9003ff92e87c4 (diff) | |
download | coreutils-3b69e6514c600d8bbbc82ff85f6e386d3038dfeb.tar.xz |
Remove comma after last item in enum.
(human_readable): Fix off-by-one error that converted
1024*1024 to 1024K rather than 1G. Describe the function.
Diffstat (limited to 'src')
-rw-r--r-- | src/du.c | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -152,7 +152,7 @@ enum output_size size_blocks, /* 512-byte blocks. */ size_kilobytes, /* 1K blocks. */ size_megabytes, /* 1024K blocks. */ - size_bytes, /* 1-byte blocks. */ + size_bytes /* 1-byte blocks. */ }; /* human style output */ @@ -351,6 +351,15 @@ main (int argc, char **argv) exit (exit_status); } +/* Convert N_BYTES to a more readable string than %d would. + Most people visually process strings of 3-4 digits effectively, + but longer strings of digits are more prone to misinterpretation. + Hence, converting to an abbreviated form usually improves readability. + Use a suffix indicating multiples of 1024 (K), 1024*1024 (M), and + 1024*1024*1024 (G). For example, 8500 would be converted to 8.3K, + 133456345 to 127M, 56990456345 to 53G, and so on. Numbers smaller + than 1024 aren't modified. */ + static char * human_readable (int n_bytes, char *buf, int buf_len) { @@ -363,17 +372,17 @@ human_readable (int n_bytes, char *buf, int buf_len) p = buf; amt = n_bytes; - if (amt > 1024 * 1024 * 1024) + if (amt >= 1024 * 1024 * 1024) { amt /= (1024 * 1024 * 1024); suffix = "G"; } - else if (amt > 1024 * 1024) + else if (amt >= 1024 * 1024) { amt /= (1024 * 1024); suffix = "M"; } - else if (amt > 1024) + else if (amt >= 1024) { amt /= 1024; suffix = "K"; |