diff options
Diffstat (limited to 'coreutils')
| -rw-r--r-- | coreutils/df.c | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/coreutils/df.c b/coreutils/df.c index f616398f4..fba59e791 100644 --- a/coreutils/df.c +++ b/coreutils/df.c | |||
| @@ -23,19 +23,19 @@ | |||
| 23 | #include "libbb.h" | 23 | #include "libbb.h" |
| 24 | 24 | ||
| 25 | #if !ENABLE_FEATURE_HUMAN_READABLE | 25 | #if !ENABLE_FEATURE_HUMAN_READABLE |
| 26 | static long kscale(long b, long bs) | 26 | static unsigned long kscale(unsigned long b, unsigned long bs) |
| 27 | { | 27 | { |
| 28 | return ( b * (long long) bs + 1024/2 ) / 1024; | 28 | return (b * (unsigned long long) bs + 1024/2) / 1024; |
| 29 | } | 29 | } |
| 30 | #endif | 30 | #endif |
| 31 | 31 | ||
| 32 | int df_main(int argc, char **argv); | 32 | int df_main(int argc, char **argv); |
| 33 | int df_main(int argc, char **argv) | 33 | int df_main(int argc, char **argv) |
| 34 | { | 34 | { |
| 35 | long blocks_used; | 35 | unsigned long blocks_used; |
| 36 | long blocks_percent_used; | 36 | unsigned blocks_percent_used; |
| 37 | #if ENABLE_FEATURE_HUMAN_READABLE | 37 | #if ENABLE_FEATURE_HUMAN_READABLE |
| 38 | unsigned long df_disp_hr = 1024; | 38 | unsigned df_disp_hr = 1024; |
| 39 | #endif | 39 | #endif |
| 40 | int status = EXIT_SUCCESS; | 40 | int status = EXIT_SUCCESS; |
| 41 | unsigned opt; | 41 | unsigned opt; |
| @@ -43,10 +43,9 @@ int df_main(int argc, char **argv) | |||
| 43 | struct mntent *mount_entry; | 43 | struct mntent *mount_entry; |
| 44 | struct statfs s; | 44 | struct statfs s; |
| 45 | /* default display is kilobytes */ | 45 | /* default display is kilobytes */ |
| 46 | static const char hdr_1k[] ALIGN1 = "1k-blocks"; | 46 | const char *disp_units_hdr = "1k-blocks"; |
| 47 | const char *disp_units_hdr = hdr_1k; | ||
| 48 | 47 | ||
| 49 | #if ENABLE_FEATURE_HUMAN_READABLE | 48 | #if ENABLE_FEATURE_HUMAN_READABLE |
| 50 | opt_complementary = "h-km:k-hm:m-hk"; | 49 | opt_complementary = "h-km:k-hm:m-hk"; |
| 51 | opt = getopt32(argc, argv, "hmk"); | 50 | opt = getopt32(argc, argv, "hmk"); |
| 52 | if (opt & 1) { | 51 | if (opt & 1) { |
| @@ -73,7 +72,7 @@ int df_main(int argc, char **argv) | |||
| 73 | } | 72 | } |
| 74 | } | 73 | } |
| 75 | 74 | ||
| 76 | do { | 75 | while (1) { |
| 77 | const char *device; | 76 | const char *device; |
| 78 | const char *mount_point; | 77 | const char *mount_point; |
| 79 | 78 | ||
| @@ -109,7 +108,7 @@ int df_main(int argc, char **argv) | |||
| 109 | blocks_used = s.f_blocks - s.f_bfree; | 108 | blocks_used = s.f_blocks - s.f_bfree; |
| 110 | blocks_percent_used = 0; | 109 | blocks_percent_used = 0; |
| 111 | if (blocks_used + s.f_bavail) { | 110 | if (blocks_used + s.f_bavail) { |
| 112 | blocks_percent_used = (((long long) blocks_used) * 100 | 111 | blocks_percent_used = (blocks_used * 100ULL |
| 113 | + (blocks_used + s.f_bavail)/2 | 112 | + (blocks_used + s.f_bavail)/2 |
| 114 | ) / (blocks_used + s.f_bavail); | 113 | ) / (blocks_used + s.f_bavail); |
| 115 | } | 114 | } |
| @@ -125,28 +124,28 @@ int df_main(int argc, char **argv) | |||
| 125 | } | 124 | } |
| 126 | } | 125 | } |
| 127 | 126 | ||
| 127 | if (printf("\n%-20s" + 1, device) > 20) | ||
| 128 | printf("\n%-20s", ""); | ||
| 128 | #if ENABLE_FEATURE_HUMAN_READABLE | 129 | #if ENABLE_FEATURE_HUMAN_READABLE |
| 129 | printf("%-20s %9s ", device, | 130 | printf(" %9s ", |
| 130 | make_human_readable_str(s.f_blocks, s.f_bsize, df_disp_hr)); | 131 | make_human_readable_str(s.f_blocks, s.f_bsize, df_disp_hr)); |
| 131 | 132 | ||
| 132 | printf("%9s ", | 133 | printf(" %9s " + 1, |
| 133 | make_human_readable_str( (s.f_blocks - s.f_bfree), | 134 | make_human_readable_str((s.f_blocks - s.f_bfree), |
| 134 | s.f_bsize, df_disp_hr)); | 135 | s.f_bsize, df_disp_hr)); |
| 135 | 136 | ||
| 136 | printf("%9s %3ld%% %s\n", | 137 | printf("%9s %3u%% %s\n", |
| 137 | make_human_readable_str(s.f_bavail, s.f_bsize, df_disp_hr), | 138 | make_human_readable_str(s.f_bavail, s.f_bsize, df_disp_hr), |
| 138 | blocks_percent_used, mount_point); | 139 | blocks_percent_used, mount_point); |
| 139 | #else | 140 | #else |
| 140 | printf("%-20s %9ld %9ld %9ld %3ld%% %s\n", | 141 | printf(" %9lu %9lu %9lu %3u%% %s\n", |
| 141 | device, | 142 | kscale(s.f_blocks, s.f_bsize), |
| 142 | kscale(s.f_blocks, s.f_bsize), | 143 | kscale(s.f_blocks-s.f_bfree, s.f_bsize), |
| 143 | kscale(s.f_blocks-s.f_bfree, s.f_bsize), | 144 | kscale(s.f_bavail, s.f_bsize), |
| 144 | kscale(s.f_bavail, s.f_bsize), | 145 | blocks_percent_used, mount_point); |
| 145 | blocks_percent_used, mount_point); | ||
| 146 | #endif | 146 | #endif |
| 147 | } | 147 | } |
| 148 | 148 | } | |
| 149 | } while (1); | ||
| 150 | 149 | ||
| 151 | fflush_stdout_and_exit(status); | 150 | fflush_stdout_and_exit(status); |
| 152 | } | 151 | } |
