aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-02-21 00:24:51 +0000
committerEric Andersen <andersen@codepoet.org>2001-02-21 00:24:51 +0000
commit7c3e7ac9401ae238768ae2366728add1569052ad (patch)
treef927deb113d565038886aa13cecb5ae372465993
parent8d7bdc9deb754b8d52631aaf5d864a5584056b50 (diff)
downloadbusybox-w32-7c3e7ac9401ae238768ae2366728add1569052ad.tar.gz
busybox-w32-7c3e7ac9401ae238768ae2366728add1569052ad.tar.bz2
busybox-w32-7c3e7ac9401ae238768ae2366728add1569052ad.zip
df was totally broken. So I fixed it.
-Erik
-rw-r--r--coreutils/df.c43
-rw-r--r--df.c43
2 files changed, 64 insertions, 22 deletions
diff --git a/coreutils/df.c b/coreutils/df.c
index 8f6ef984b..80b7acb28 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -39,6 +39,9 @@ static int df(char *device, const char *mountPoint)
39 struct statfs s; 39 struct statfs s;
40 long blocks_used; 40 long blocks_used;
41 long blocks_percent_used; 41 long blocks_percent_used;
42#ifdef BB_FEATURE_HUMAN_READABLE
43 long divisor, base;
44#endif
42 45
43 if (statfs(mountPoint, &s) != 0) { 46 if (statfs(mountPoint, &s) != 0) {
44 perror_msg("%s", mountPoint); 47 perror_msg("%s", mountPoint);
@@ -59,20 +62,38 @@ static int df(char *device, const char *mountPoint)
59 find_real_root_device_name( device); 62 find_real_root_device_name( device);
60 } 63 }
61#ifdef BB_FEATURE_HUMAN_READABLE 64#ifdef BB_FEATURE_HUMAN_READABLE
62 printf("%-20s %9s %9s %9s %3ld%% %s\n", 65 switch (disp_hr) {
63 device, 66 case MEGABYTE:
64 format((s.f_blocks * s.f_bsize), disp_hr), 67 fprintf(stderr, "got MEGABYTE\n");
65 format((s.f_blocks - s.f_bfree) * s.f_bsize, disp_hr), 68 divisor = KILOBYTE;
66 format(s.f_bavail * s.f_bsize, disp_hr), 69 base = KILOBYTE;
70 break;
71 case KILOBYTE:
72 fprintf(stderr, "got KILOBYTE\n");
73 divisor = KILOBYTE;
74 base = 1;
75 break;
76 default:
77 fprintf(stderr, "got something else\n");
78 divisor = KILOBYTE;
79 base = 0;
80 }
81
82 printf("%-20s %9s ", device,
83 format((s.f_blocks * (s.f_bsize / divisor)), base));
84 printf("%9s ",
85 format(((s.f_blocks - s.f_bfree) *
86 (s.f_bsize / divisor)), base));
87 printf("%9s %3ld%% %s\n",
88 format((s.f_bavail * (s.f_bsize / divisor)), base),
67 blocks_percent_used, mountPoint); 89 blocks_percent_used, mountPoint);
68#else 90#else
69 printf("%-20s %9ld %9ld %9ld %3ld%% %s\n", 91 printf("%-20s %9ld %9ld %9ld %3ld%% %s\n",
70 device, 92 device,
71 (long) (s.f_blocks * s.f_bsize) / KILOBYTE, 93 (long) (s.f_blocks * (s.f_bsize / KILOBYTE)),
72 (long) ((s.f_blocks - s.f_bfree) * s.f_bsize) / KILOBYTE, 94 (long) ((s.f_blocks - s.f_bfree) * (s.f_bsize / KILOBYTE)),
73 (long) (s.f_bavail * s.f_bsize) / KILOBYTE, 95 (long) (s.f_bavail * (s.f_bsize / KILOBYTE)),
74 blocks_percent_used, mountPoint); 96 blocks_percent_used, mountPoint);
75
76#endif 97#endif
77 } 98 }
78 99
diff --git a/df.c b/df.c
index 8f6ef984b..80b7acb28 100644
--- a/df.c
+++ b/df.c
@@ -39,6 +39,9 @@ static int df(char *device, const char *mountPoint)
39 struct statfs s; 39 struct statfs s;
40 long blocks_used; 40 long blocks_used;
41 long blocks_percent_used; 41 long blocks_percent_used;
42#ifdef BB_FEATURE_HUMAN_READABLE
43 long divisor, base;
44#endif
42 45
43 if (statfs(mountPoint, &s) != 0) { 46 if (statfs(mountPoint, &s) != 0) {
44 perror_msg("%s", mountPoint); 47 perror_msg("%s", mountPoint);
@@ -59,20 +62,38 @@ static int df(char *device, const char *mountPoint)
59 find_real_root_device_name( device); 62 find_real_root_device_name( device);
60 } 63 }
61#ifdef BB_FEATURE_HUMAN_READABLE 64#ifdef BB_FEATURE_HUMAN_READABLE
62 printf("%-20s %9s %9s %9s %3ld%% %s\n", 65 switch (disp_hr) {
63 device, 66 case MEGABYTE:
64 format((s.f_blocks * s.f_bsize), disp_hr), 67 fprintf(stderr, "got MEGABYTE\n");
65 format((s.f_blocks - s.f_bfree) * s.f_bsize, disp_hr), 68 divisor = KILOBYTE;
66 format(s.f_bavail * s.f_bsize, disp_hr), 69 base = KILOBYTE;
70 break;
71 case KILOBYTE:
72 fprintf(stderr, "got KILOBYTE\n");
73 divisor = KILOBYTE;
74 base = 1;
75 break;
76 default:
77 fprintf(stderr, "got something else\n");
78 divisor = KILOBYTE;
79 base = 0;
80 }
81
82 printf("%-20s %9s ", device,
83 format((s.f_blocks * (s.f_bsize / divisor)), base));
84 printf("%9s ",
85 format(((s.f_blocks - s.f_bfree) *
86 (s.f_bsize / divisor)), base));
87 printf("%9s %3ld%% %s\n",
88 format((s.f_bavail * (s.f_bsize / divisor)), base),
67 blocks_percent_used, mountPoint); 89 blocks_percent_used, mountPoint);
68#else 90#else
69 printf("%-20s %9ld %9ld %9ld %3ld%% %s\n", 91 printf("%-20s %9ld %9ld %9ld %3ld%% %s\n",
70 device, 92 device,
71 (long) (s.f_blocks * s.f_bsize) / KILOBYTE, 93 (long) (s.f_blocks * (s.f_bsize / KILOBYTE)),
72 (long) ((s.f_blocks - s.f_bfree) * s.f_bsize) / KILOBYTE, 94 (long) ((s.f_blocks - s.f_bfree) * (s.f_bsize / KILOBYTE)),
73 (long) (s.f_bavail * s.f_bsize) / KILOBYTE, 95 (long) (s.f_bavail * (s.f_bsize / KILOBYTE)),
74 blocks_percent_used, mountPoint); 96 blocks_percent_used, mountPoint);
75
76#endif 97#endif
77 } 98 }
78 99