getopt32: factor out code to treat all args as options
Working towards making getopt32() xmalloc-free function old new delta make_all_argv_opts - 58 +58 top_main 914 912 -2 getopt32 1517 1458 -59 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 0/2 up/down: 58/-61) Total: -3 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -715,7 +715,8 @@ int ps_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
|
||||
# if ENABLE_FEATURE_PS_WIDE
|
||||
/* -w is a bit complicated */
|
||||
int w_count = 0;
|
||||
opt_complementary = "-:ww";
|
||||
make_all_argv_opts(argv);
|
||||
opt_complementary = "ww";
|
||||
opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")IF_FEATURE_PS_LONG("l")
|
||||
"w", &w_count);
|
||||
/* if w is given once, GNU ps sets the width to 132,
|
||||
@@ -731,7 +732,7 @@ int ps_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
|
||||
}
|
||||
# else
|
||||
/* -w is not supported, only -Z and/or -T */
|
||||
opt_complementary = "-";
|
||||
make_all_argv_opts(argv);
|
||||
opts = getopt32(argv, IF_SELINUX("Z")IF_FEATURE_SHOW_THREADS("T")IF_FEATURE_PS_LONG("l"));
|
||||
# endif
|
||||
|
||||
|
@@ -1110,15 +1110,14 @@ int top_main(int argc UNUSED_PARAM, char **argv)
|
||||
#endif
|
||||
|
||||
/* all args are options; -n NUM */
|
||||
opt_complementary = "-"; /* options can be specified w/o dash */
|
||||
make_all_argv_opts(argv); /* options can be specified w/o dash */
|
||||
col = getopt32(argv, "d:n:b"IF_FEATURE_TOPMEM("m"), &str_interval, &str_iterations);
|
||||
#if ENABLE_FEATURE_TOPMEM
|
||||
if (col & OPT_m) /* -m (busybox specific) */
|
||||
scan_mask = TOPMEM_MASK;
|
||||
#endif
|
||||
if (col & OPT_d) {
|
||||
/* work around for "-d 1" -> "-d -1" done by getopt32
|
||||
* (opt_complementary == "-" does this) */
|
||||
/* work around for "-d 1" -> "-d -1" done by make_all_argv_opts() */
|
||||
if (str_interval[0] == '-')
|
||||
str_interval++;
|
||||
/* Need to limit it to not overflow poll timeout */
|
||||
|
Reference in New Issue
Block a user