From 1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 17 Mar 2008 09:09:09 +0000 Subject: *: 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 --- networking/arping.c | 8 +++----- networking/nc_bloaty.c | 10 ++++------ networking/tftp.c | 16 +++++----------- networking/udhcp/dhcpc.c | 17 ++++++++--------- 4 files changed, 20 insertions(+), 31 deletions(-) (limited to 'networking') diff --git a/networking/arping.c b/networking/arping.c index 6a17b18ee..39dcb7cc2 100644 --- a/networking/arping.c +++ b/networking/arping.c @@ -264,16 +264,14 @@ int arping_main(int argc ATTRIBUTE_UNUSED, char **argv) err_str = xasprintf("interface %s %%s", device); { unsigned opt; - char *str_count, *str_timeout; + char *str_timeout; /* Dad also sets quit_on_reply. * Advert also sets unsolicited. */ - opt_complementary = "=1:Df:AU"; + opt_complementary = "=1:Df:AU:c+"; opt = getopt32(argv, "DUAqfbc:w:I:s:", - &str_count, &str_timeout, &device, &source); - if (opt & 0x40) /* -c: count */ - count = xatoi_u(str_count); + &count, &str_timeout, &device, &source); if (opt & 0x80) /* -w: timeout */ timeout_us = xatou_range(str_timeout, 0, INT_MAX/2000000) * 1000000 + 500000; //if (opt & 0x200) /* -s: source */ diff --git a/networking/nc_bloaty.c b/networking/nc_bloaty.c index 34f715fc5..dd94a1460 100644 --- a/networking/nc_bloaty.c +++ b/networking/nc_bloaty.c @@ -674,7 +674,7 @@ Debug("wrote %d to net, errno %d", rr, errno); int nc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int nc_main(int argc, char **argv) { - char *str_p, *str_s, *str_w; + char *str_p, *str_s; USE_NC_EXTRA(char *str_i, *str_o;) char *themdotted = themdotted; /* gcc */ char **proggie; @@ -710,10 +710,10 @@ int nc_main(int argc, char **argv) e_found: // -g -G -t -r deleted, unimplemented -a deleted too - opt_complementary = "?2:vv"; /* max 2 params, -v is a counter */ + opt_complementary = "?2:vv:w+"; /* max 2 params; -v is a counter; -w N */ getopt32(argv, "hnp:s:uvw:" USE_NC_SERVER("l") USE_NC_EXTRA("i:o:z"), - &str_p, &str_s, &str_w + &str_p, &str_s, &o_wait USE_NC_EXTRA(, &str_i, &str_o, &o_verbose)); argv += optind; #if ENABLE_NC_EXTRA @@ -731,9 +731,7 @@ int nc_main(int argc, char **argv) //if (option_mask32 & OPT_r) /* randomize various things */ //if (option_mask32 & OPT_u) /* use UDP */ //if (option_mask32 & OPT_v) /* verbose */ - if (option_mask32 & OPT_w) { /* wait time */ - o_wait = xatoi_u(str_w); - } + //if (option_mask32 & OPT_w) /* wait time */ //if (option_mask32 & OPT_z) /* little or no data xfer */ /* We manage our fd's so that they are never 0,1,2 */ diff --git a/networking/tftp.c b/networking/tftp.c index 14c340b22..187261568 100644 --- a/networking/tftp.c +++ b/networking/tftp.c @@ -397,9 +397,6 @@ int tftp_main(int argc ATTRIBUTE_UNUSED, char **argv) len_and_sockaddr *peer_lsa; const char *localfile = NULL; const char *remotefile = NULL; -#if ENABLE_FEATURE_TFTP_BLOCKSIZE - const char *sblocksize = NULL; -#endif int port; USE_GETPUT(int cmd;) int fd = -1; @@ -409,13 +406,14 @@ int tftp_main(int argc ATTRIBUTE_UNUSED, char **argv) /* -p or -g is mandatory, and they are mutually exclusive */ opt_complementary = "" USE_FEATURE_TFTP_GET("g:") USE_FEATURE_TFTP_PUT("p:") - USE_GETPUT("?g--p:p--g"); + USE_GETPUT("g--p:p--g:") + USE_FEATURE_TFTP_BLOCKSIZE("b+"); USE_GETPUT(cmd =) getopt32(argv, USE_FEATURE_TFTP_GET("g") USE_FEATURE_TFTP_PUT("p") "l:r:" USE_FEATURE_TFTP_BLOCKSIZE("b:"), &localfile, &remotefile - USE_FEATURE_TFTP_BLOCKSIZE(, &sblocksize)); + USE_FEATURE_TFTP_BLOCKSIZE(, &blocksize)); argv += optind; flags = O_RDONLY; @@ -423,12 +421,8 @@ int tftp_main(int argc ATTRIBUTE_UNUSED, char **argv) flags = O_WRONLY | O_CREAT | O_TRUNC; #if ENABLE_FEATURE_TFTP_BLOCKSIZE - if (sblocksize) { - blocksize = xatoi_u(sblocksize); - if (!tftp_blocksize_check(blocksize, 0)) { - return EXIT_FAILURE; - } - } + if (!tftp_blocksize_check(blocksize, 0)) + return EXIT_FAILURE; #endif if (!localfile) diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 576b1cbb8..fe8f4c8fa 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -132,7 +132,7 @@ int udhcpc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int udhcpc_main(int argc ATTRIBUTE_UNUSED, char **argv) { uint8_t *temp, *message; - char *str_c, *str_V, *str_h, *str_F, *str_r, *str_T, *str_A, *str_t; + char *str_c, *str_V, *str_h, *str_F, *str_r; USE_FEATURE_UDHCP_PORT(char *str_P;) llist_t *list_O = NULL; #if ENABLE_FEATURE_UDHCPC_ARPING @@ -223,7 +223,8 @@ int udhcpc_main(int argc ATTRIBUTE_UNUSED, char **argv) client_config.script = DEFAULT_SCRIPT; /* Parse command line */ - opt_complementary = "c--C:C--c:O::"; // Cc: mutually exclusive; O: list + /* Cc: mutually exclusive; O: list; -T,-t,-A take numeric param */ + opt_complementary = "c--C:C--c:O::T+:t+:A+"; #if ENABLE_GETOPT_LONG applet_long_options = udhcpc_longopts; #endif @@ -233,7 +234,8 @@ int udhcpc_main(int argc ATTRIBUTE_UNUSED, char **argv) "O:" , &str_c, &str_V, &str_h, &str_h, &str_F , &client_config.interface, &client_config.pidfile, &str_r - , &client_config.script, &str_T, &str_t, &str_A + , &client_config.script + , &discover_timeout, &discover_retries, &tryagain_timeout USE_FEATURE_UDHCPC_ARPING(, &str_W) USE_FEATURE_UDHCP_PORT(, &str_P) , &list_O @@ -273,12 +275,9 @@ int udhcpc_main(int argc ATTRIBUTE_UNUSED, char **argv) if (opt & OPT_r) requested_ip = inet_addr(str_r); // if (opt & OPT_s) client_config.script = ... - if (opt & OPT_T) - discover_timeout = xatoi_u(str_T); - if (opt & OPT_t) - discover_retries = xatoi_u(str_t); - if (opt & OPT_A) - tryagain_timeout = xatoi_u(str_A); + // if (opt & OPT_T) discover_timeout = xatoi_u(str_T); + // if (opt & OPT_t) discover_retries = xatoi_u(str_t); + // if (opt & OPT_A) tryagain_timeout = xatoi_u(str_A); if (opt & OPT_v) { puts("version "BB_VER); return 0; -- cgit v1.2.3