diff options
author | Eric Andersen | 2001-03-07 06:04:08 +0000 |
---|---|---|
committer | Eric Andersen | 2001-03-07 06:04:08 +0000 |
commit | ec9fad9a4997bbabaebad3c29a3c9f1ef2068788 (patch) | |
tree | e53a72ff52a23bb99470f811f0a0147b9a32373d /coreutils/du.c | |
parent | a7db19bb81ee37ffeafb1c2e940f7ac9991bc81e (diff) | |
download | busybox-ec9fad9a4997bbabaebad3c29a3c9f1ef2068788.zip busybox-ec9fad9a4997bbabaebad3c29a3c9f1ef2068788.tar.gz |
Static-ify a variable. make du work with all the human-readable variants
since my last pass only fixed 'du -h' but left the others broken.
Diffstat (limited to 'coreutils/du.c')
-rw-r--r-- | coreutils/du.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/coreutils/du.c b/coreutils/du.c index e6b99a2..36c4de2 100644 --- a/coreutils/du.c +++ b/coreutils/du.c @@ -36,7 +36,7 @@ #ifdef BB_FEATURE_HUMAN_READABLE -unsigned long du_disp_hr = KILOBYTE; +static unsigned long disp_hr = KILOBYTE; #endif typedef void (Display) (long, char *); @@ -48,8 +48,19 @@ static Display *print; static void print_normal(long size, char *filename) { + unsigned long base; #ifdef BB_FEATURE_HUMAN_READABLE - printf("%s\t%s\n", format(size, du_disp_hr), filename); + switch (disp_hr) { + case MEGABYTE: + base = KILOBYTE; + break; + case KILOBYTE: + base = 1; + break; + default: + base = 0; + } +printf("%s\t%s\n", format(size, base), filename); #else printf("%ld\t%s\n", size, filename); #endif @@ -156,8 +167,8 @@ int du_main(int argc, char **argv) count_hardlinks = 1; break; #ifdef BB_FEATURE_HUMAN_READABLE - case 'h': du_disp_hr = 0; break; - case 'm': du_disp_hr = MEGABYTE; break; + case 'h': disp_hr = 0; break; + case 'm': disp_hr = MEGABYTE; break; #endif case 'k': break; default: @@ -185,7 +196,7 @@ int du_main(int argc, char **argv) return status; } -/* $Id: du.c,v 1.40 2001/03/07 03:53:40 andersen Exp $ */ +/* $Id: du.c,v 1.41 2001/03/07 06:04:08 andersen Exp $ */ /* Local Variables: c-file-style: "linux" |