diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-02-21 00:24:51 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-02-21 00:24:51 +0000 |
commit | 7c3e7ac9401ae238768ae2366728add1569052ad (patch) | |
tree | f927deb113d565038886aa13cecb5ae372465993 | |
parent | 8d7bdc9deb754b8d52631aaf5d864a5584056b50 (diff) | |
download | busybox-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.c | 43 | ||||
-rw-r--r-- | df.c | 43 |
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 | ||
@@ -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 | ||