aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:09:09 +0000
committerGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:09:09 +0000
commit1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2 (patch)
tree7ec8969fc2b07a2b7dc37f96435e5eddf7daf7fd /coreutils
parent62a90cdd7435f09f4bb8673e8b7b213067f9d5cc (diff)
downloadbusybox-1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2.tar.gz
busybox-1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2.tar.bz2
*: 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.c13
-rw-r--r--coreutils/ls.c9
-rw-r--r--coreutils/od_bloaty.c10
-rw-r--r--coreutils/printenv.c4
-rw-r--r--coreutils/realpath.c7
-rw-r--r--coreutils/sleep.c17
-rw-r--r--coreutils/split.c12
-rw-r--r--coreutils/tail.c5
-rw-r--r--coreutils/usleep.c4
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)
unsigned long total;
int slink_depth_save;
bool print_final_total;
- char *smax_print_depth;
unsigned opt;
#if ENABLE_FEATURE_HUMAN_READABLE
@@ -168,8 +167,8 @@ int du_main(int argc ATTRIBUTE_UNUSED, char **argv)
* ignore -a. This is consistent with -s being equivalent to -d 0.
*/
#if ENABLE_FEATURE_HUMAN_READABLE
- opt_complementary = "h-km:k-hm:m-hk:H-L:L-H:s-d:d-s";
- opt = getopt32(argv, "aHkLsx" "d:" "lc" "hm", &smax_print_depth);
+ opt_complementary = "h-km:k-hm:m-hk:H-L:L-H:s-d:d-s:d+";
+ opt = getopt32(argv, "aHkLsx" "d:" "lc" "hm", &G.max_print_depth);
argv += optind;
if (opt & (1 << 9)) {
/* -h opt */
@@ -184,8 +183,8 @@ int du_main(int argc ATTRIBUTE_UNUSED, char **argv)
G.disp_hr = 1024;
}
#else
- opt_complementary = "H-L:L-H:s-d:d-s";
- opt = getopt32(argv, "aHkLsx" "d:" "lc", &smax_print_depth);
+ opt_complementary = "H-L:L-H:s-d:d-s:d+";
+ opt = getopt32(argv, "aHkLsx" "d:" "lc", &G.max_print_depth);
argv += optind;
#if !ENABLE_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
if (opt & (1 << 2)) {
@@ -211,10 +210,6 @@ int du_main(int argc ATTRIBUTE_UNUSED, char **argv)
G.max_print_depth = 0;
}
G.one_file_system = opt & (1 << 5); /* -x opt */
- if (opt & (1 << 6)) {
- /* -d opt */
- G.max_print_depth = xatoi_u(smax_print_depth);
- }
if (opt & (1 << 7)) {
/* -l opt */
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)
int ac;
int i;
char **av;
- USE_FEATURE_AUTOWIDTH(char *tabstops_str = NULL;)
- USE_FEATURE_AUTOWIDTH(char *terminal_width_str = NULL;)
USE_FEATURE_LS_COLOR(char *color_opt;)
#if ENABLE_FEATURE_LS_TIMESTAMPS
@@ -820,12 +818,9 @@ int ls_main(int argc, char **argv)
/* process options */
USE_FEATURE_LS_COLOR(applet_long_options = ls_color_opt;)
#if ENABLE_FEATURE_AUTOWIDTH
- opt = getopt32(argv, ls_options, &tabstops_str, &terminal_width_str
+ opt_complementary = "T+:w+"; /* -T N, -w N */
+ opt = getopt32(argv, ls_options, &tabstops, &terminal_width
USE_FEATURE_LS_COLOR(, &color_opt));
- if (tabstops_str)
- tabstops = xatou(tabstops_str);
- if (terminal_width_str)
- terminal_width = xatou(terminal_width_str);
#else
opt = getopt32(argv, ls_options USE_FEATURE_LS_COLOR(, &color_opt));
#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;
a multiple of the least common multiple of the sizes associated with
the specified output types. It should be as large as possible, but
no larger than 16 -- unless specified with the -w option. */
-static size_t bytes_per_block;
+static unsigned bytes_per_block = 32; /* have to use unsigned, not size_t */
/* A NULL-terminated list of the file-arguments from the command line. */
static const char *const *file_list;
@@ -1218,7 +1218,6 @@ int od_main(int argc, char **argv)
;
#endif
char *str_A, *str_N, *str_j, *str_S;
- char *str_w = NULL;
llist_t *lst_t = NULL;
unsigned opt;
int l_c_m;
@@ -1239,7 +1238,7 @@ int od_main(int argc, char **argv)
/* flag_dump_strings = 0; - already is */
/* Parse command line */
- opt_complementary = "t::"; // list
+ opt_complementary = "w+:t::"; /* -w N, -t is a list */
#if ENABLE_GETOPT_LONG
applet_long_options = od_longopts;
#endif
@@ -1248,7 +1247,7 @@ int od_main(int argc, char **argv)
// -S was -s and also had optional parameter
// but in coreutils 6.3 it was renamed and now has
// _mandatory_ parameter
- &str_A, &str_N, &str_j, &lst_t, &str_S, &str_w);
+ &str_A, &str_N, &str_j, &lst_t, &str_S, &bytes_per_block);
argc -= optind;
argv += optind;
if (opt & OPT_A) {
@@ -1404,9 +1403,6 @@ int od_main(int argc, char **argv)
l_c_m = get_lcm();
if (opt & OPT_w) { /* -w: width */
- bytes_per_block = 32;
- if (str_w)
- bytes_per_block = xatou(str_w);
if (!bytes_per_block || bytes_per_block % l_c_m != 0) {
bb_error_msg("warning: invalid width %u; using %d instead",
(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 @@
#include "libbb.h"
int printenv_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int printenv_main(int argc, char **argv)
+int printenv_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
/* no variables specified, show whole env */
- if (argc == 1) {
+ if (!argv[1]) {
int e = 0;
while (environ[e])
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 @@
#include "libbb.h"
int realpath_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int realpath_main(int argc, char **argv)
+int realpath_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
int retval = EXIT_SUCCESS;
@@ -25,19 +25,18 @@ int realpath_main(int argc, char **argv)
# define resolved_path_MUST_FREE 0
#endif
- if (--argc == 0) {
+ if (!*++argv) {
bb_show_usage();
}
do {
- argv++;
if (realpath(*argv, resolved_path) != NULL) {
puts(resolved_path);
} else {
retval = EXIT_FAILURE;
bb_simple_perror_msg(*argv);
}
- } while (--argc);
+ } while (*++argv);
#if ENABLE_FEATURE_CLEAN_UP && resolved_path_MUST_FREE
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[] = {
#endif
int sleep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int sleep_main(int argc, char **argv)
+int sleep_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
unsigned duration;
-#if ENABLE_FEATURE_FANCY_SLEEP
-
- if (argc < 2) {
+ ++argv;
+ if (!*argv)
bb_show_usage();
- }
- ++argv;
+#if ENABLE_FEATURE_FANCY_SLEEP
+
duration = 0;
do {
duration += xatoul_range_sfx(*argv, 0, UINT_MAX-duration, sfx);
@@ -52,11 +51,7 @@ int sleep_main(int argc, char **argv)
#else /* FEATURE_FANCY_SLEEP */
- if (argc != 2) {
- bb_show_usage();
- }
-
- duration = xatou(argv[1]);
+ duration = xatou(*argv);
#endif /* FEATURE_FANCY_SLEEP */
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)
ssize_t bytes_read, to_write;
char *src;
- opt_complementary = "?2";
- opt = getopt32(argv, "l:b:a:", &count_p, &count_p, &sfx);
+ opt_complementary = "?2:a+"; /* max 2 args; -a N */
+ opt = getopt32(argv, "l:b:a:", &count_p, &count_p, &suffix_len);
if (opt & SPLIT_OPT_l)
- cnt = xatoul(count_p);
- if (opt & SPLIT_OPT_b)
- cnt = xatoul_sfx(count_p, split_suffices);
- if (opt & SPLIT_OPT_a)
- suffix_len = xatou(sfx);
+ cnt = XATOOFF(count_p);
+ if (opt & SPLIT_OPT_b) // FIXME: also needs XATOOFF
+ cnt = xatoull_sfx(count_p, split_suffices);
sfx = "x";
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)
bool from_top;
int header_threshhold = 1;
const char *str_c, *str_n;
- USE_FEATURE_FANCY_TAIL(const char *str_s;)
char *tailbuf;
size_t tailbufsize;
@@ -110,8 +109,9 @@ int tail_main(int argc, char **argv)
}
#endif
+ USE_FEATURE_FANCY_TAIL(opt_complementary = "s+";) /* -s N */
opt = getopt32(argv, "fc:n:" USE_FEATURE_FANCY_TAIL("qs:v"),
- &str_c, &str_n USE_FEATURE_FANCY_TAIL(,&str_s));
+ &str_c, &str_n USE_FEATURE_FANCY_TAIL(,&sleep_period));
#define FOLLOW (opt & 0x1)
#define COUNT_BYTES (opt & 0x2)
//if (opt & 0x1) // -f
@@ -119,7 +119,6 @@ int tail_main(int argc, char **argv)
if (opt & 0x4) count = eat_num(str_n); // -n
#if ENABLE_FEATURE_FANCY_TAIL
if (opt & 0x8) header_threshhold = INT_MAX; // -q
- if (opt & 0x10) sleep_period = xatou(str_s); // -s
if (opt & 0x20) header_threshhold = 0; // -v
#endif
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 @@
/* This is a NOFORK applet. Be very careful! */
int usleep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int usleep_main(int argc, char **argv)
+int usleep_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
- if (argc != 2) {
+ if (!argv[1]) {
bb_show_usage();
}