summaryrefslogtreecommitdiff
path: root/du.c
diff options
context:
space:
mode:
authorEric Andersen2001-03-07 06:04:08 +0000
committerEric Andersen2001-03-07 06:04:08 +0000
commitec9fad9a4997bbabaebad3c29a3c9f1ef2068788 (patch)
treee53a72ff52a23bb99470f811f0a0147b9a32373d /du.c
parenta7db19bb81ee37ffeafb1c2e940f7ac9991bc81e (diff)
downloadbusybox-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 'du.c')
-rw-r--r--du.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/du.c b/du.c
index e6b99a2..36c4de2 100644
--- a/du.c
+++ b/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"