aboutsummaryrefslogtreecommitdiff
path: root/toys/pending
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2019-01-07 22:35:10 -0800
committerRob Landley <rob@landley.net>2019-01-08 01:06:08 -0600
commitbcbb580fdc3f9c0573eb21c43f5baf52b8bbbd2f (patch)
treeb9a1c95efdd7c2c3175a0b48ce86d716c0934e84 /toys/pending
parent695c62fbbb2a403c517636049b8ddfe66d836480 (diff)
downloadtoybox-bcbb580fdc3f9c0573eb21c43f5baf52b8bbbd2f.tar.gz
more: don't _exit(0) on success.
If we do, we won't flush, and we might not output everything.
Diffstat (limited to 'toys/pending')
-rw-r--r--toys/pending/more.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/toys/pending/more.c b/toys/pending/more.c
index 7923ee4e..fa96d40e 100644
--- a/toys/pending/more.c
+++ b/toys/pending/more.c
@@ -28,13 +28,13 @@ static void signal_handler(int sig)
// Reset the terminal whether we were signalled or exited normally.
tcsetattr(TT.cin_fd, TCSANOW, &TT.inf);
- if (sig == 0) _exit(0);
-
- // We were actually signalled, so move to a new line and re-raise the signal.
- xputc('\n');
- signal(sig, SIG_DFL);
- raise(sig);
- _exit(sig | 128);
+ // If we were actually signalled, move to a new line and re-raise the signal.
+ if (sig != 0) {
+ xputc('\n');
+ signal(sig, SIG_DFL);
+ raise(sig);
+ _exit(sig | 128);
+ }
}
static void show_file_header(const char *name)