diff options
author | Rob Landley <rob@landley.net> | 2006-06-28 14:11:25 +0000 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2006-06-28 14:11:25 +0000 |
commit | db1ab1aeb3dd4401411d147e290261c8f1ad472f (patch) | |
tree | c0277dbc990cfde1b30284b507f9e824d7c9458a | |
parent | ea7c18514b6c9304b969cd977390aa09f5095f8d (diff) | |
download | busybox-db1ab1aeb3dd4401411d147e290261c8f1ad472f.tar.gz |
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...
-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) 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 */ |