diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 09:09:09 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 09:09:09 +0000 |
commit | 1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2 (patch) | |
tree | 7ec8969fc2b07a2b7dc37f96435e5eddf7daf7fd /coreutils | |
parent | 62a90cdd7435f09f4bb8673e8b7b213067f9d5cc (diff) | |
download | busybox-w32-1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2.tar.gz busybox-w32-1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2.tar.bz2 busybox-w32-1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2.zip |
*: shrink: use Vladimir's "o+" specifier instead of xatou(opt_param)
function old new delta
getopt32 1370 1385 +15
sulogin_main 490 494 +4
realpath_main 84 86 +2
sleep_main 76 77 +1
mt_main 256 257 +1
printenv_main 75 74 -1
fdformat_main 546 545 -1
usleep_main 44 42 -2
setlogcons_main 77 75 -2
ed_main 2654 2649 -5
deallocvt_main 69 64 -5
addgroup_main 373 368 -5
mkfs_minix_main 2989 2982 -7
tail_main 1221 1213 -8
sv_main 1254 1241 -13
du_main 348 328 -20
tftp_main 325 302 -23
split_main 581 558 -23
nc_main 1000 977 -23
diff_main 891 868 -23
arping_main 1797 1770 -27
ls_main 893 847 -46
od_main 2797 2750 -47
readprofile_main 1944 1895 -49
tcpudpsvd_main 1973 1922 -51
udhcpc_main 2590 2513 -77
grep_main 824 722 -102
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/22 up/down: 23/-560) Total: -537 bytes
text data bss dec hex filename
796973 658 7428 805059 c48c3 busybox_old
796479 662 7420 804561 c46d1 busybox_unstripped
Diffstat (limited to 'coreutils')
-rw-r--r-- | coreutils/du.c | 13 | ||||
-rw-r--r-- | coreutils/ls.c | 9 | ||||
-rw-r--r-- | coreutils/od_bloaty.c | 10 | ||||
-rw-r--r-- | coreutils/printenv.c | 4 | ||||
-rw-r--r-- | coreutils/realpath.c | 7 | ||||
-rw-r--r-- | coreutils/sleep.c | 17 | ||||
-rw-r--r-- | coreutils/split.c | 12 | ||||
-rw-r--r-- | coreutils/tail.c | 5 | ||||
-rw-r--r-- | coreutils/usleep.c | 4 |
9 files changed, 29 insertions, 52 deletions
diff --git a/coreutils/du.c b/coreutils/du.c index 7495f7a7b..b469824ea 100644 --- a/coreutils/du.c +++ b/coreutils/du.c | |||
@@ -146,7 +146,6 @@ int du_main(int argc ATTRIBUTE_UNUSED, char **argv) | |||
146 | unsigned long total; | 146 | unsigned long total; |
147 | int slink_depth_save; | 147 | int slink_depth_save; |
148 | bool print_final_total; | 148 | bool print_final_total; |
149 | char *smax_print_depth; | ||
150 | unsigned opt; | 149 | unsigned opt; |
151 | 150 | ||
152 | #if ENABLE_FEATURE_HUMAN_READABLE | 151 | #if ENABLE_FEATURE_HUMAN_READABLE |
@@ -168,8 +167,8 @@ int du_main(int argc ATTRIBUTE_UNUSED, char **argv) | |||
168 | * ignore -a. This is consistent with -s being equivalent to -d 0. | 167 | * ignore -a. This is consistent with -s being equivalent to -d 0. |
169 | */ | 168 | */ |
170 | #if ENABLE_FEATURE_HUMAN_READABLE | 169 | #if ENABLE_FEATURE_HUMAN_READABLE |
171 | opt_complementary = "h-km:k-hm:m-hk:H-L:L-H:s-d:d-s"; | 170 | opt_complementary = "h-km:k-hm:m-hk:H-L:L-H:s-d:d-s:d+"; |
172 | opt = getopt32(argv, "aHkLsx" "d:" "lc" "hm", &smax_print_depth); | 171 | opt = getopt32(argv, "aHkLsx" "d:" "lc" "hm", &G.max_print_depth); |
173 | argv += optind; | 172 | argv += optind; |
174 | if (opt & (1 << 9)) { | 173 | if (opt & (1 << 9)) { |
175 | /* -h opt */ | 174 | /* -h opt */ |
@@ -184,8 +183,8 @@ int du_main(int argc ATTRIBUTE_UNUSED, char **argv) | |||
184 | G.disp_hr = 1024; | 183 | G.disp_hr = 1024; |
185 | } | 184 | } |
186 | #else | 185 | #else |
187 | opt_complementary = "H-L:L-H:s-d:d-s"; | 186 | opt_complementary = "H-L:L-H:s-d:d-s:d+"; |
188 | opt = getopt32(argv, "aHkLsx" "d:" "lc", &smax_print_depth); | 187 | opt = getopt32(argv, "aHkLsx" "d:" "lc", &G.max_print_depth); |
189 | argv += optind; | 188 | argv += optind; |
190 | #if !ENABLE_FEATURE_DU_DEFAULT_BLOCKSIZE_1K | 189 | #if !ENABLE_FEATURE_DU_DEFAULT_BLOCKSIZE_1K |
191 | if (opt & (1 << 2)) { | 190 | if (opt & (1 << 2)) { |
@@ -211,10 +210,6 @@ int du_main(int argc ATTRIBUTE_UNUSED, char **argv) | |||
211 | G.max_print_depth = 0; | 210 | G.max_print_depth = 0; |
212 | } | 211 | } |
213 | G.one_file_system = opt & (1 << 5); /* -x opt */ | 212 | G.one_file_system = opt & (1 << 5); /* -x opt */ |
214 | if (opt & (1 << 6)) { | ||
215 | /* -d opt */ | ||
216 | G.max_print_depth = xatoi_u(smax_print_depth); | ||
217 | } | ||
218 | if (opt & (1 << 7)) { | 213 | if (opt & (1 << 7)) { |
219 | /* -l opt */ | 214 | /* -l opt */ |
220 | G.count_hardlinks = MAXINT(nlink_t); | 215 | G.count_hardlinks = MAXINT(nlink_t); |
diff --git a/coreutils/ls.c b/coreutils/ls.c index dbf1c5ba6..9e5c6dee9 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c | |||
@@ -799,8 +799,6 @@ int ls_main(int argc, char **argv) | |||
799 | int ac; | 799 | int ac; |
800 | int i; | 800 | int i; |
801 | char **av; | 801 | char **av; |
802 | USE_FEATURE_AUTOWIDTH(char *tabstops_str = NULL;) | ||
803 | USE_FEATURE_AUTOWIDTH(char *terminal_width_str = NULL;) | ||
804 | USE_FEATURE_LS_COLOR(char *color_opt;) | 802 | USE_FEATURE_LS_COLOR(char *color_opt;) |
805 | 803 | ||
806 | #if ENABLE_FEATURE_LS_TIMESTAMPS | 804 | #if ENABLE_FEATURE_LS_TIMESTAMPS |
@@ -820,12 +818,9 @@ int ls_main(int argc, char **argv) | |||
820 | /* process options */ | 818 | /* process options */ |
821 | USE_FEATURE_LS_COLOR(applet_long_options = ls_color_opt;) | 819 | USE_FEATURE_LS_COLOR(applet_long_options = ls_color_opt;) |
822 | #if ENABLE_FEATURE_AUTOWIDTH | 820 | #if ENABLE_FEATURE_AUTOWIDTH |
823 | opt = getopt32(argv, ls_options, &tabstops_str, &terminal_width_str | 821 | opt_complementary = "T+:w+"; /* -T N, -w N */ |
822 | opt = getopt32(argv, ls_options, &tabstops, &terminal_width | ||
824 | USE_FEATURE_LS_COLOR(, &color_opt)); | 823 | USE_FEATURE_LS_COLOR(, &color_opt)); |
825 | if (tabstops_str) | ||
826 | tabstops = xatou(tabstops_str); | ||
827 | if (terminal_width_str) | ||
828 | terminal_width = xatou(terminal_width_str); | ||
829 | #else | 824 | #else |
830 | opt = getopt32(argv, ls_options USE_FEATURE_LS_COLOR(, &color_opt)); | 825 | opt = getopt32(argv, ls_options USE_FEATURE_LS_COLOR(, &color_opt)); |
831 | #endif | 826 | #endif |
diff --git a/coreutils/od_bloaty.c b/coreutils/od_bloaty.c index a083114c9..4526f0ede 100644 --- a/coreutils/od_bloaty.c +++ b/coreutils/od_bloaty.c | |||
@@ -188,7 +188,7 @@ static off_t pseudo_offset; | |||
188 | a multiple of the least common multiple of the sizes associated with | 188 | a multiple of the least common multiple of the sizes associated with |
189 | the specified output types. It should be as large as possible, but | 189 | the specified output types. It should be as large as possible, but |
190 | no larger than 16 -- unless specified with the -w option. */ | 190 | no larger than 16 -- unless specified with the -w option. */ |
191 | static size_t bytes_per_block; | 191 | static unsigned bytes_per_block = 32; /* have to use unsigned, not size_t */ |
192 | 192 | ||
193 | /* A NULL-terminated list of the file-arguments from the command line. */ | 193 | /* A NULL-terminated list of the file-arguments from the command line. */ |
194 | static const char *const *file_list; | 194 | static const char *const *file_list; |
@@ -1218,7 +1218,6 @@ int od_main(int argc, char **argv) | |||
1218 | ; | 1218 | ; |
1219 | #endif | 1219 | #endif |
1220 | char *str_A, *str_N, *str_j, *str_S; | 1220 | char *str_A, *str_N, *str_j, *str_S; |
1221 | char *str_w = NULL; | ||
1222 | llist_t *lst_t = NULL; | 1221 | llist_t *lst_t = NULL; |
1223 | unsigned opt; | 1222 | unsigned opt; |
1224 | int l_c_m; | 1223 | int l_c_m; |
@@ -1239,7 +1238,7 @@ int od_main(int argc, char **argv) | |||
1239 | /* flag_dump_strings = 0; - already is */ | 1238 | /* flag_dump_strings = 0; - already is */ |
1240 | 1239 | ||
1241 | /* Parse command line */ | 1240 | /* Parse command line */ |
1242 | opt_complementary = "t::"; // list | 1241 | opt_complementary = "w+:t::"; /* -w N, -t is a list */ |
1243 | #if ENABLE_GETOPT_LONG | 1242 | #if ENABLE_GETOPT_LONG |
1244 | applet_long_options = od_longopts; | 1243 | applet_long_options = od_longopts; |
1245 | #endif | 1244 | #endif |
@@ -1248,7 +1247,7 @@ int od_main(int argc, char **argv) | |||
1248 | // -S was -s and also had optional parameter | 1247 | // -S was -s and also had optional parameter |
1249 | // but in coreutils 6.3 it was renamed and now has | 1248 | // but in coreutils 6.3 it was renamed and now has |
1250 | // _mandatory_ parameter | 1249 | // _mandatory_ parameter |
1251 | &str_A, &str_N, &str_j, &lst_t, &str_S, &str_w); | 1250 | &str_A, &str_N, &str_j, &lst_t, &str_S, &bytes_per_block); |
1252 | argc -= optind; | 1251 | argc -= optind; |
1253 | argv += optind; | 1252 | argv += optind; |
1254 | if (opt & OPT_A) { | 1253 | if (opt & OPT_A) { |
@@ -1404,9 +1403,6 @@ int od_main(int argc, char **argv) | |||
1404 | l_c_m = get_lcm(); | 1403 | l_c_m = get_lcm(); |
1405 | 1404 | ||
1406 | if (opt & OPT_w) { /* -w: width */ | 1405 | if (opt & OPT_w) { /* -w: width */ |
1407 | bytes_per_block = 32; | ||
1408 | if (str_w) | ||
1409 | bytes_per_block = xatou(str_w); | ||
1410 | if (!bytes_per_block || bytes_per_block % l_c_m != 0) { | 1406 | if (!bytes_per_block || bytes_per_block % l_c_m != 0) { |
1411 | bb_error_msg("warning: invalid width %u; using %d instead", | 1407 | bb_error_msg("warning: invalid width %u; using %d instead", |
1412 | (unsigned)bytes_per_block, l_c_m); | 1408 | (unsigned)bytes_per_block, l_c_m); |
diff --git a/coreutils/printenv.c b/coreutils/printenv.c index 06d68d0ef..31d76d712 100644 --- a/coreutils/printenv.c +++ b/coreutils/printenv.c | |||
@@ -11,10 +11,10 @@ | |||
11 | #include "libbb.h" | 11 | #include "libbb.h" |
12 | 12 | ||
13 | int printenv_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 13 | int printenv_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
14 | int printenv_main(int argc, char **argv) | 14 | int printenv_main(int argc ATTRIBUTE_UNUSED, char **argv) |
15 | { | 15 | { |
16 | /* no variables specified, show whole env */ | 16 | /* no variables specified, show whole env */ |
17 | if (argc == 1) { | 17 | if (!argv[1]) { |
18 | int e = 0; | 18 | int e = 0; |
19 | while (environ[e]) | 19 | while (environ[e]) |
20 | puts(environ[e++]); | 20 | puts(environ[e++]); |
diff --git a/coreutils/realpath.c b/coreutils/realpath.c index bcb73a8dc..6766524a7 100644 --- a/coreutils/realpath.c +++ b/coreutils/realpath.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include "libbb.h" | 13 | #include "libbb.h" |
14 | 14 | ||
15 | int realpath_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 15 | int realpath_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
16 | int realpath_main(int argc, char **argv) | 16 | int realpath_main(int argc ATTRIBUTE_UNUSED, char **argv) |
17 | { | 17 | { |
18 | int retval = EXIT_SUCCESS; | 18 | int retval = EXIT_SUCCESS; |
19 | 19 | ||
@@ -25,19 +25,18 @@ int realpath_main(int argc, char **argv) | |||
25 | # define resolved_path_MUST_FREE 0 | 25 | # define resolved_path_MUST_FREE 0 |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | if (--argc == 0) { | 28 | if (!*++argv) { |
29 | bb_show_usage(); | 29 | bb_show_usage(); |
30 | } | 30 | } |
31 | 31 | ||
32 | do { | 32 | do { |
33 | argv++; | ||
34 | if (realpath(*argv, resolved_path) != NULL) { | 33 | if (realpath(*argv, resolved_path) != NULL) { |
35 | puts(resolved_path); | 34 | puts(resolved_path); |
36 | } else { | 35 | } else { |
37 | retval = EXIT_FAILURE; | 36 | retval = EXIT_FAILURE; |
38 | bb_simple_perror_msg(*argv); | 37 | bb_simple_perror_msg(*argv); |
39 | } | 38 | } |
40 | } while (--argc); | 39 | } while (*++argv); |
41 | 40 | ||
42 | #if ENABLE_FEATURE_CLEAN_UP && resolved_path_MUST_FREE | 41 | #if ENABLE_FEATURE_CLEAN_UP && resolved_path_MUST_FREE |
43 | RELEASE_CONFIG_BUFFER(resolved_path); | 42 | RELEASE_CONFIG_BUFFER(resolved_path); |
diff --git a/coreutils/sleep.c b/coreutils/sleep.c index 6890e35c1..78f9a8ebf 100644 --- a/coreutils/sleep.c +++ b/coreutils/sleep.c | |||
@@ -34,17 +34,16 @@ static const struct suffix_mult sfx[] = { | |||
34 | #endif | 34 | #endif |
35 | 35 | ||
36 | int sleep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 36 | int sleep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
37 | int sleep_main(int argc, char **argv) | 37 | int sleep_main(int argc ATTRIBUTE_UNUSED, char **argv) |
38 | { | 38 | { |
39 | unsigned duration; | 39 | unsigned duration; |
40 | 40 | ||
41 | #if ENABLE_FEATURE_FANCY_SLEEP | 41 | ++argv; |
42 | 42 | if (!*argv) | |
43 | if (argc < 2) { | ||
44 | bb_show_usage(); | 43 | bb_show_usage(); |
45 | } | ||
46 | 44 | ||
47 | ++argv; | 45 | #if ENABLE_FEATURE_FANCY_SLEEP |
46 | |||
48 | duration = 0; | 47 | duration = 0; |
49 | do { | 48 | do { |
50 | duration += xatoul_range_sfx(*argv, 0, UINT_MAX-duration, sfx); | 49 | duration += xatoul_range_sfx(*argv, 0, UINT_MAX-duration, sfx); |
@@ -52,11 +51,7 @@ int sleep_main(int argc, char **argv) | |||
52 | 51 | ||
53 | #else /* FEATURE_FANCY_SLEEP */ | 52 | #else /* FEATURE_FANCY_SLEEP */ |
54 | 53 | ||
55 | if (argc != 2) { | 54 | duration = xatou(*argv); |
56 | bb_show_usage(); | ||
57 | } | ||
58 | |||
59 | duration = xatou(argv[1]); | ||
60 | 55 | ||
61 | #endif /* FEATURE_FANCY_SLEEP */ | 56 | #endif /* FEATURE_FANCY_SLEEP */ |
62 | 57 | ||
diff --git a/coreutils/split.c b/coreutils/split.c index cf26a9322..2306789f0 100644 --- a/coreutils/split.c +++ b/coreutils/split.c | |||
@@ -68,15 +68,13 @@ int split_main(int argc ATTRIBUTE_UNUSED, char **argv) | |||
68 | ssize_t bytes_read, to_write; | 68 | ssize_t bytes_read, to_write; |
69 | char *src; | 69 | char *src; |
70 | 70 | ||
71 | opt_complementary = "?2"; | 71 | opt_complementary = "?2:a+"; /* max 2 args; -a N */ |
72 | opt = getopt32(argv, "l:b:a:", &count_p, &count_p, &sfx); | 72 | opt = getopt32(argv, "l:b:a:", &count_p, &count_p, &suffix_len); |
73 | 73 | ||
74 | if (opt & SPLIT_OPT_l) | 74 | if (opt & SPLIT_OPT_l) |
75 | cnt = xatoul(count_p); | 75 | cnt = XATOOFF(count_p); |
76 | if (opt & SPLIT_OPT_b) | 76 | if (opt & SPLIT_OPT_b) // FIXME: also needs XATOOFF |
77 | cnt = xatoul_sfx(count_p, split_suffices); | 77 | cnt = xatoull_sfx(count_p, split_suffices); |
78 | if (opt & SPLIT_OPT_a) | ||
79 | suffix_len = xatou(sfx); | ||
80 | sfx = "x"; | 78 | sfx = "x"; |
81 | 79 | ||
82 | argv += optind; | 80 | argv += optind; |
diff --git a/coreutils/tail.c b/coreutils/tail.c index 52aa8f69e..35b25a416 100644 --- a/coreutils/tail.c +++ b/coreutils/tail.c | |||
@@ -87,7 +87,6 @@ int tail_main(int argc, char **argv) | |||
87 | bool from_top; | 87 | bool from_top; |
88 | int header_threshhold = 1; | 88 | int header_threshhold = 1; |
89 | const char *str_c, *str_n; | 89 | const char *str_c, *str_n; |
90 | USE_FEATURE_FANCY_TAIL(const char *str_s;) | ||
91 | 90 | ||
92 | char *tailbuf; | 91 | char *tailbuf; |
93 | size_t tailbufsize; | 92 | size_t tailbufsize; |
@@ -110,8 +109,9 @@ int tail_main(int argc, char **argv) | |||
110 | } | 109 | } |
111 | #endif | 110 | #endif |
112 | 111 | ||
112 | USE_FEATURE_FANCY_TAIL(opt_complementary = "s+";) /* -s N */ | ||
113 | opt = getopt32(argv, "fc:n:" USE_FEATURE_FANCY_TAIL("qs:v"), | 113 | opt = getopt32(argv, "fc:n:" USE_FEATURE_FANCY_TAIL("qs:v"), |
114 | &str_c, &str_n USE_FEATURE_FANCY_TAIL(,&str_s)); | 114 | &str_c, &str_n USE_FEATURE_FANCY_TAIL(,&sleep_period)); |
115 | #define FOLLOW (opt & 0x1) | 115 | #define FOLLOW (opt & 0x1) |
116 | #define COUNT_BYTES (opt & 0x2) | 116 | #define COUNT_BYTES (opt & 0x2) |
117 | //if (opt & 0x1) // -f | 117 | //if (opt & 0x1) // -f |
@@ -119,7 +119,6 @@ int tail_main(int argc, char **argv) | |||
119 | if (opt & 0x4) count = eat_num(str_n); // -n | 119 | if (opt & 0x4) count = eat_num(str_n); // -n |
120 | #if ENABLE_FEATURE_FANCY_TAIL | 120 | #if ENABLE_FEATURE_FANCY_TAIL |
121 | if (opt & 0x8) header_threshhold = INT_MAX; // -q | 121 | if (opt & 0x8) header_threshhold = INT_MAX; // -q |
122 | if (opt & 0x10) sleep_period = xatou(str_s); // -s | ||
123 | if (opt & 0x20) header_threshhold = 0; // -v | 122 | if (opt & 0x20) header_threshhold = 0; // -v |
124 | #endif | 123 | #endif |
125 | argc -= optind; | 124 | argc -= optind; |
diff --git a/coreutils/usleep.c b/coreutils/usleep.c index 1c9022325..d34880d3a 100644 --- a/coreutils/usleep.c +++ b/coreutils/usleep.c | |||
@@ -14,9 +14,9 @@ | |||
14 | /* This is a NOFORK applet. Be very careful! */ | 14 | /* This is a NOFORK applet. Be very careful! */ |
15 | 15 | ||
16 | int usleep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 16 | int usleep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
17 | int usleep_main(int argc, char **argv) | 17 | int usleep_main(int argc ATTRIBUTE_UNUSED, char **argv) |
18 | { | 18 | { |
19 | if (argc != 2) { | 19 | if (!argv[1]) { |
20 | bb_show_usage(); | 20 | bb_show_usage(); |
21 | } | 21 | } |
22 | 22 | ||