From: Denis Vlasenko Date: Thu, 25 Sep 2008 11:42:10 +0000 (-0000) Subject: top: fix "top -d 1" (bug 5144) X-Git-Tag: 1_13_0~165 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c8842213f5ad95b1b6e32d2db1dce5ce8c04ece9;p=oweals%2Fbusybox.git top: fix "top -d 1" (bug 5144) --- diff --git a/procps/top.c b/procps/top.c index b481d395e..908ae8151 100644 --- a/procps/top.c +++ b/procps/top.c @@ -894,7 +894,7 @@ int top_main(int argc UNUSED_PARAM, char **argv) unsigned lines, col; int lines_rem; unsigned interval; - char *sinterval; + char *str_interval, *str_iterations; SKIP_FEATURE_TOPMEM(const) unsigned scan_mask = TOP_MASK; #if ENABLE_FEATURE_USE_TERMIOS struct termios new_settings; @@ -917,10 +917,19 @@ int top_main(int argc UNUSED_PARAM, char **argv) #endif /* all args are options; -n NUM */ - opt_complementary = "-:n+"; - if (getopt32(argv, "d:n:b", &sinterval, &iterations) & OPT_d) { + opt_complementary = "-"; + col = getopt32(argv, "d:n:b", &str_interval, &str_iterations); + if (col & OPT_d) { + /* work around for "-d 1" -> "-d -1" done by getopt32 */ + if (str_interval[0] == '-') + str_interval++; /* Need to limit it to not overflow poll timeout */ - interval = xatou16(sinterval); /* -d */ + interval = xatou16(str_interval); + } + if (col & OPT_n) { + if (str_iterations[0] == '-') + str_iterations++; + iterations = xatou(str_iterations); } /* change to /proc */