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 --- util-linux/fdformat.c | 6 ++---- util-linux/mkfs_minix.c | 6 +++--- util-linux/readprofile.c | 53 ++++++++++++++++++++++++++++++------------------ util-linux/setarch.c | 2 +- util-linux/swaponoff.c | 4 ++-- 5 files changed, 41 insertions(+), 30 deletions(-) (limited to 'util-linux') diff --git a/util-linux/fdformat.c b/util-linux/fdformat.c index c4f97ae34..eac7b15e9 100644 --- a/util-linux/fdformat.c +++ b/util-linux/fdformat.c @@ -41,7 +41,7 @@ struct format_descr { #define FD_FILL_BYTE 0xF6 /* format fill byte. */ int fdformat_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int fdformat_main(int argc, char **argv) +int fdformat_main(int argc ATTRIBUTE_UNUSED, char **argv) { int fd, n, cyl, read_bytes, verify; unsigned char *data; @@ -49,9 +49,7 @@ int fdformat_main(int argc, char **argv) struct floppy_struct param; struct format_descr descr; - if (argc < 2) { - bb_show_usage(); - } + opt_complementary = "=1"; /* must have 1 param */ verify = !getopt32(argv, "n"); argv += optind; diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index 3fbdc2020..60031a5c3 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c @@ -627,7 +627,7 @@ int mkfs_minix_main(int argc ATTRIBUTE_UNUSED, char **argv) unsigned opt; char *tmp; struct stat statbuf; - char *str_i, *str_n; + char *str_i; char *listfile = NULL; INIT_G(); @@ -643,13 +643,13 @@ int mkfs_minix_main(int argc ATTRIBUTE_UNUSED, char **argv) bb_error_msg_and_die("bad inode size"); #endif - opt = getopt32(argv, "ci:l:n:v", &str_i, &listfile, &str_n); + opt_complementary = "n+"; /* -n N */ + opt = getopt32(argv, "ci:l:n:v", &str_i, &listfile, &G.namelen); argv += optind; //if (opt & 1) -c if (opt & 2) G.req_nr_inodes = xatoul(str_i); // -i //if (opt & 4) -l if (opt & 8) { // -n - G.namelen = xatoi_u(str_n); if (G.namelen == 14) G.magic = MINIX1_SUPER_MAGIC; else if (G.namelen == 30) G.magic = MINIX1_SUPER_MAGIC2; else bb_show_usage(); diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c index ef7865951..e25d07d2b 100644 --- a/util-linux/readprofile.c +++ b/util-linux/readprofile.c @@ -8,7 +8,7 @@ */ /* - * 1999-02-22 Arkadiusz Mi¶kiewicz + * 1999-02-22 Arkadiusz Mickiewicz * - added Native Language Support * 1999-09-01 Stephane Eranian * - 64bit clean patch @@ -45,7 +45,7 @@ int readprofile_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int readprofile_main(int argc ATTRIBUTE_UNUSED, char **argv) { FILE *map; - const char *mapFile, *proFile, *mult = 0; + const char *mapFile, *proFile; unsigned long indx = 1; size_t len; uint64_t add0 = 0; @@ -55,37 +55,49 @@ int readprofile_main(int argc ATTRIBUTE_UNUSED, char **argv) char fn_name[S_LEN], next_name[S_LEN]; /* current and next name */ char mapline[S_LEN]; char mode[8]; - int optAll = 0, optInfo = 0, optReset = 0; - int optVerbose = 0, optNative = 0; - int optBins = 0, optSub = 0; int maplineno = 1; int header_printed; + int multiplier = 0; + unsigned opt; + enum { + OPT_M = (1 << 0), + OPT_m = (1 << 1), + OPT_p = (1 << 2), + OPT_n = (1 << 3), + OPT_a = (1 << 4), + OPT_b = (1 << 5), + OPT_s = (1 << 6), + OPT_i = (1 << 7), + OPT_r = (1 << 8), + OPT_v = (1 << 9), + }; +#define optMult (opt & OPT_M) +#define optNative (opt & OPT_n) +#define optAll (opt & OPT_a) +#define optBins (opt & OPT_b) +#define optSub (opt & OPT_s) +#define optInfo (opt & OPT_i) +#define optReset (opt & OPT_r) +#define optVerbose (opt & OPT_v) #define next (current^1) proFile = defaultpro; mapFile = defaultmap; - opt_complementary = "nn:aa:bb:ss:ii:rr:vv"; - getopt32(argv, "M:m:p:nabsirv", - &mult, &mapFile, &proFile, - &optNative, &optAll, &optBins, &optSub, - &optInfo, &optReset, &optVerbose); + opt_complementary = "M+"; /* -M N */ + opt = getopt32(argv, "M:m:p:nabsirv", &multiplier, &mapFile, &proFile); - if (optReset || mult) { - int multiplier, fd, to_write; + if (opt & (OPT_M|OPT_r)) { /* mult or reset, or both */ + int fd, to_write; /* * When writing the multiplier, if the length of the write is * not sizeof(int), the multiplier is not changed */ - if (mult) { - multiplier = xatoi_u(mult); - to_write = sizeof(int); - } else { - multiplier = 0; + to_write = sizeof(int); + if (!optMult) to_write = 1; /* sth different from sizeof(int) */ - } fd = xopen(defaultpro, O_WRONLY); xwrite(fd, &multiplier, to_write); @@ -187,8 +199,9 @@ int readprofile_main(int argc ATTRIBUTE_UNUSED, char **argv) if (optBins) { if (optVerbose || this > 0) printf(" total\t\t\t\t%u\n", this); - } else if ((this || optAll) && - (fn_len = next_add-fn_add) != 0) { + } else if ((this || optAll) + && (fn_len = next_add-fn_add) != 0 + ) { if (optVerbose) printf("%016llx %-40s %6i %8.4f\n", fn_add, fn_name, this, this/(double)fn_len); diff --git a/util-linux/setarch.c b/util-linux/setarch.c index dbc02de5e..1f979a73c 100644 --- a/util-linux/setarch.c +++ b/util-linux/setarch.c @@ -12,7 +12,7 @@ #include "libbb.h" int setarch_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int setarch_main(int ATTRIBUTE_UNUSED argc, char **argv) +int setarch_main(int argc ATTRIBUTE_UNUSED, char **argv) { int pers = -1; diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c index 48f6f4e0b..beefac030 100644 --- a/util-linux/swaponoff.c +++ b/util-linux/swaponoff.c @@ -59,11 +59,11 @@ static int do_em_all(void) } int swap_on_off_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int swap_on_off_main(int argc, char **argv) +int swap_on_off_main(int argc ATTRIBUTE_UNUSED, char **argv) { int ret; - if (argc == 1) + if (!argv[1]) bb_show_usage(); ret = getopt32(argv, "a"); -- cgit v1.2.3