diff options
author | Denis Vlasenko | 2008-03-17 09:09:09 +0000 |
---|---|---|
committer | Denis Vlasenko | 2008-03-17 09:09:09 +0000 |
commit | 1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2 (patch) | |
tree | 7ec8969fc2b07a2b7dc37f96435e5eddf7daf7fd /util-linux/readprofile.c | |
parent | 62a90cdd7435f09f4bb8673e8b7b213067f9d5cc (diff) | |
download | busybox-1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2.zip busybox-1d42665b6b0571b9fa5d3b10fbf2dd03382f0ba2.tar.gz |
*: 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 'util-linux/readprofile.c')
-rw-r--r-- | util-linux/readprofile.c | 53 |
1 files changed, 33 insertions, 20 deletions
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c index ef78659..e25d07d 100644 --- a/util-linux/readprofile.c +++ b/util-linux/readprofile.c @@ -8,7 +8,7 @@ */ /* - * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL> + * 1999-02-22 Arkadiusz Mickiewicz <misiek@pld.ORG.PL> * - added Native Language Support * 1999-09-01 Stephane Eranian <eranian@cello.hpl.hp.com> * - 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); |