aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--coreutils/df.c49
-rw-r--r--include/usage.h9
2 files changed, 29 insertions, 29 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}
diff --git a/include/usage.h b/include/usage.h
index d5e9d7d5d..f5025b70a 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -607,12 +607,13 @@
607 "[-" USE_FEATURE_HUMAN_READABLE("hm") "k] [FILESYSTEM ...]" 607 "[-" USE_FEATURE_HUMAN_READABLE("hm") "k] [FILESYSTEM ...]"
608#define df_full_usage \ 608#define df_full_usage \
609 "Print the filesystem space used and space available" \ 609 "Print the filesystem space used and space available" \
610 "\n\nOptions:\n" \
611 USE_FEATURE_HUMAN_READABLE( \ 610 USE_FEATURE_HUMAN_READABLE( \
612 "\n -h Print sizes in human readable format (e.g., 1K 243M 2G )\n" \ 611 "\n\nOptions control size display:" \
613 " -m Print sizes in megabytes\n" \ 612 "\n -h Human readable (e.g. 1K 243M 2G)" \
614 " -k Print sizes in kilobytes(default)") \ 613 "\n -m 1024*1024 blocks" \
614 "\n -k 1024 blocks") \
615 SKIP_FEATURE_HUMAN_READABLE( \ 615 SKIP_FEATURE_HUMAN_READABLE( \
616 "\n\nOptions:" \
616 "\n -k Ignored") 617 "\n -k Ignored")
617#define df_example_usage \ 618#define df_example_usage \
618 "$ df\n" \ 619 "$ df\n" \