diff options
-rw-r--r-- | procps/top.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/procps/top.c b/procps/top.c index a97e557aa..172933cbe 100644 --- a/procps/top.c +++ b/procps/top.c | |||
@@ -388,6 +388,7 @@ static void reset_term(void) | |||
388 | static void sig_catcher(int sig ATTRIBUTE_UNUSED) | 388 | static void sig_catcher(int sig ATTRIBUTE_UNUSED) |
389 | { | 389 | { |
390 | reset_term(); | 390 | reset_term(); |
391 | exit(1); | ||
391 | } | 392 | } |
392 | #endif /* CONFIG_FEATURE_USE_TERMIOS */ | 393 | #endif /* CONFIG_FEATURE_USE_TERMIOS */ |
393 | 394 | ||
@@ -423,11 +424,7 @@ int top_main(int argc, char **argv) | |||
423 | new_settings.c_lflag &= ~(ECHO | ECHONL); | 424 | new_settings.c_lflag &= ~(ECHO | ECHONL); |
424 | 425 | ||
425 | signal(SIGTERM, sig_catcher); | 426 | signal(SIGTERM, sig_catcher); |
426 | sigaction(SIGTERM, (struct sigaction *) 0, &sa); | 427 | signal(SIGINT, sig_catcher); |
427 | sa.sa_flags |= SA_RESTART; | ||
428 | sa.sa_flags &= ~SA_INTERRUPT; | ||
429 | sigaction(SIGTERM, &sa, (struct sigaction *) 0); | ||
430 | sigaction(SIGINT, &sa, (struct sigaction *) 0); | ||
431 | tcsetattr(0, TCSANOW, (void *) &new_settings); | 428 | tcsetattr(0, TCSANOW, (void *) &new_settings); |
432 | atexit(reset_term); | 429 | atexit(reset_term); |
433 | #endif /* CONFIG_FEATURE_USE_TERMIOS */ | 430 | #endif /* CONFIG_FEATURE_USE_TERMIOS */ |