aboutsummaryrefslogtreecommitdiff
path: root/coreutils/df.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-08-13 12:27:49 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-08-13 12:27:49 +0000
commit08294dbf5bc6fb1ea0b185488675d91169e231ce (patch)
tree2f0ad14f5a2a4edf5cdf36e72eaaad7c70ed0c42 /coreutils/df.c
parent319f8ebef8a9e48cb74b220d4585552928549266 (diff)
downloadbusybox-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.c49
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
26static long kscale(long b, long bs) 26static 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
32int df_main(int argc, char **argv); 32int df_main(int argc, char **argv);
33int df_main(int argc, char **argv) 33int 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}