diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-08-13 12:27:49 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-08-13 12:27:49 +0000 |
commit | 08294dbf5bc6fb1ea0b185488675d91169e231ce (patch) | |
tree | 2f0ad14f5a2a4edf5cdf36e72eaaad7c70ed0c42 /coreutils/df.c | |
parent | 319f8ebef8a9e48cb74b220d4585552928549266 (diff) | |
download | busybox-w32-08294dbf5bc6fb1ea0b185488675d91169e231ce.tar.gz busybox-w32-08294dbf5bc6fb1ea0b185488675d91169e231ce.tar.bz2 busybox-w32-08294dbf5bc6fb1ea0b185488675d91169e231ce.zip |
df: match coreutils behavior of wrapping lines if filesystem name is too long.
df: trim help text
Diffstat (limited to 'coreutils/df.c')
-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 | } |