From db1ab1aeb3dd4401411d147e290261c8f1ad472f Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Wed, 28 Jun 2006 14:11:25 +0000 Subject: [PATCH] Top was catching sigterm (and fumbling sigint) so it could reset the terminal type on the way out, but the signal handler didn't exit. Plus it did unnecessary things with sigaction. This code is overgrown and needs a serious weed-whacking... --- procps/top.c | 7 ++----- 1 file 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) static void sig_catcher(int sig ATTRIBUTE_UNUSED) { reset_term(); + exit(1); } #endif /* CONFIG_FEATURE_USE_TERMIOS */ @@ -423,11 +424,7 @@ int top_main(int argc, char **argv) new_settings.c_lflag &= ~(ECHO | ECHONL); signal(SIGTERM, sig_catcher); - sigaction(SIGTERM, (struct sigaction *) 0, &sa); - sa.sa_flags |= SA_RESTART; - sa.sa_flags &= ~SA_INTERRUPT; - sigaction(SIGTERM, &sa, (struct sigaction *) 0); - sigaction(SIGINT, &sa, (struct sigaction *) 0); + signal(SIGINT, sig_catcher); tcsetattr(0, TCSANOW, (void *) &new_settings); atexit(reset_term); #endif /* CONFIG_FEATURE_USE_TERMIOS */