top: fix "top -d 1" (bug 5144)
This commit is contained in:
parent
42cc6bab16
commit
c8842213f5
17
procps/top.c
17
procps/top.c
@ -894,7 +894,7 @@ int top_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
unsigned lines, col;
|
unsigned lines, col;
|
||||||
int lines_rem;
|
int lines_rem;
|
||||||
unsigned interval;
|
unsigned interval;
|
||||||
char *sinterval;
|
char *str_interval, *str_iterations;
|
||||||
SKIP_FEATURE_TOPMEM(const) unsigned scan_mask = TOP_MASK;
|
SKIP_FEATURE_TOPMEM(const) unsigned scan_mask = TOP_MASK;
|
||||||
#if ENABLE_FEATURE_USE_TERMIOS
|
#if ENABLE_FEATURE_USE_TERMIOS
|
||||||
struct termios new_settings;
|
struct termios new_settings;
|
||||||
@ -917,10 +917,19 @@ int top_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* all args are options; -n NUM */
|
/* all args are options; -n NUM */
|
||||||
opt_complementary = "-:n+";
|
opt_complementary = "-";
|
||||||
if (getopt32(argv, "d:n:b", &sinterval, &iterations) & OPT_d) {
|
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 */
|
/* 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 */
|
/* change to /proc */
|
||||||
|
Loading…
Reference in New Issue
Block a user