aboutsummaryrefslogtreecommitdiff
path: root/lib/xwrap.c
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2016-04-21 18:18:05 -0700
committerRob Landley <rob@landley.net>2016-04-23 13:33:03 -0500
commit072ea41682be093fd5fb25e7d6669a65a76144e6 (patch)
tree361a7bde262ba4bc8ff007f014749ac19eeb71c1 /lib/xwrap.c
parent63eae537018a758b29f6c9bc39e3d36be1710179 (diff)
downloadtoybox-072ea41682be093fd5fb25e7d6669a65a76144e6.tar.gz
Fix more to not append an extra newline.
More's sigatexit handler needs to distinguish between normal exit and exit due to receipt of a signal. Change tty_sigreset to look at the signal number too, so that pressing 'q' to exit top doesn't cause its exit status to be 128.
Diffstat (limited to 'lib/xwrap.c')
-rw-r--r--lib/xwrap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/xwrap.c b/lib/xwrap.c
index 0b1ab8e9..36a601c5 100644
--- a/lib/xwrap.c
+++ b/lib/xwrap.c
@@ -47,7 +47,9 @@ void xexit(void)
// Call toys.xexit functions in reverse order added.
while (toys.xexit) {
// This is typecasting xexit->arg to a function pointer,then calling it.
- ((void (*)(void))(toys.xexit->arg))();
+ // Using the invalid signal number 0 lets the signal handlers distinguish
+ // an actual signal from a regular exit.
+ ((void (*)(int))(toys.xexit->arg))(0);
free(llist_pop(&toys.xexit));
}