diff options
author | rjune <rjune@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-01-22 22:35:38 +0000 |
---|---|---|
committer | rjune <rjune@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-01-22 22:35:38 +0000 |
commit | 6be1fd967c69696684f75eeab758b56bd5c2eaf9 (patch) | |
tree | 97ed53aec9cbe3a3021804e9758abb3e04f05879 /du.c | |
parent | 6ddaebeb3829d0865b3b29be747c894d12843763 (diff) | |
download | busybox-w32-6be1fd967c69696684f75eeab758b56bd5c2eaf9.tar.gz busybox-w32-6be1fd967c69696684f75eeab758b56bd5c2eaf9.tar.bz2 busybox-w32-6be1fd967c69696684f75eeab758b56bd5c2eaf9.zip |
Add HUMAN_READABLE define for -m and -h support in du, df, and ls
Add support for -k in du, df, and ls(no define, it's for compatibliity with the GNU utils as bb does -k by default)
Fix bug #1084
git-svn-id: svn://busybox.net/trunk/busybox@1635 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'du.c')
-rw-r--r-- | du.c | 26 |
1 files changed, 23 insertions, 3 deletions
@@ -33,6 +33,10 @@ | |||
33 | #include <stdio.h> | 33 | #include <stdio.h> |
34 | #include <errno.h> | 34 | #include <errno.h> |
35 | 35 | ||
36 | #ifdef BB_FEATURE_HUMAN_READABLE | ||
37 | unsigned long du_disp_hr = KILOBYTE; | ||
38 | #endif | ||
39 | |||
36 | typedef void (Display) (long, char *); | 40 | typedef void (Display) (long, char *); |
37 | 41 | ||
38 | static int du_depth = 0; | 42 | static int du_depth = 0; |
@@ -42,12 +46,17 @@ static Display *print; | |||
42 | 46 | ||
43 | static void print_normal(long size, char *filename) | 47 | static void print_normal(long size, char *filename) |
44 | { | 48 | { |
49 | #ifdef BB_FEATURE_HUMAN_READABLE | ||
50 | printf("%s\t%s\n", format((size * KILOBYTE), du_disp_hr), filename); | ||
51 | #else | ||
45 | printf("%ld\t%s\n", size, filename); | 52 | printf("%ld\t%s\n", size, filename); |
53 | #endif | ||
46 | } | 54 | } |
47 | 55 | ||
48 | static void print_summary(long size, char *filename) | 56 | static void print_summary(long size, char *filename) |
49 | { | 57 | { |
50 | if (du_depth == 1) { | 58 | if (du_depth == 1) { |
59 | printf("summary\n"); | ||
51 | print_normal(size, filename); | 60 | print_normal(size, filename); |
52 | } | 61 | } |
53 | } | 62 | } |
@@ -132,7 +141,11 @@ int du_main(int argc, char **argv) | |||
132 | print = print_normal; | 141 | print = print_normal; |
133 | 142 | ||
134 | /* parse argv[] */ | 143 | /* parse argv[] */ |
135 | while ((c = getopt(argc, argv, "sl")) != EOF) { | 144 | while ((c = getopt(argc, argv, "sl" |
145 | #ifdef BB_FEATURE_HUMAN_READABLE | ||
146 | "hm" | ||
147 | #endif | ||
148 | "k")) != EOF) { | ||
136 | switch (c) { | 149 | switch (c) { |
137 | case 's': | 150 | case 's': |
138 | print = print_summary; | 151 | print = print_summary; |
@@ -140,6 +153,13 @@ int du_main(int argc, char **argv) | |||
140 | case 'l': | 153 | case 'l': |
141 | count_hardlinks = 1; | 154 | count_hardlinks = 1; |
142 | break; | 155 | break; |
156 | #ifdef BB_FEATURE_HUMAN_READABLE | ||
157 | case 'h': du_disp_hr = 0; break; | ||
158 | case 'm': du_disp_hr = MEGABYTE; break; | ||
159 | case 'k': du_disp_hr = KILOBYTE; break; | ||
160 | #else | ||
161 | case 'k': break; | ||
162 | #endif | ||
143 | default: | 163 | default: |
144 | usage(du_usage); | 164 | usage(du_usage); |
145 | } | 165 | } |
@@ -155,7 +175,7 @@ int du_main(int argc, char **argv) | |||
155 | for (i=optind; i < argc; i++) { | 175 | for (i=optind; i < argc; i++) { |
156 | if ((sum = du(argv[i])) == 0) | 176 | if ((sum = du(argv[i])) == 0) |
157 | status = EXIT_FAILURE; | 177 | status = EXIT_FAILURE; |
158 | if (is_directory(argv[i], FALSE, NULL)==FALSE) { | 178 | if(is_directory(argv[i], FALSE, NULL)==FALSE) { |
159 | print_normal(sum, argv[i]); | 179 | print_normal(sum, argv[i]); |
160 | } | 180 | } |
161 | reset_ino_dev_hashtable(); | 181 | reset_ino_dev_hashtable(); |
@@ -165,7 +185,7 @@ int du_main(int argc, char **argv) | |||
165 | return status; | 185 | return status; |
166 | } | 186 | } |
167 | 187 | ||
168 | /* $Id: du.c,v 1.33 2001/01/18 02:57:08 kraai Exp $ */ | 188 | /* $Id: du.c,v 1.34 2001/01/22 22:35:38 rjune Exp $ */ |
169 | /* | 189 | /* |
170 | Local Variables: | 190 | Local Variables: |
171 | c-file-style: "linux" | 191 | c-file-style: "linux" |