diff options
author | Elliott Hughes <enh@google.com> | 2019-01-07 22:35:10 -0800 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2019-01-08 01:06:08 -0600 |
commit | bcbb580fdc3f9c0573eb21c43f5baf52b8bbbd2f (patch) | |
tree | b9a1c95efdd7c2c3175a0b48ce86d716c0934e84 /toys | |
parent | 695c62fbbb2a403c517636049b8ddfe66d836480 (diff) | |
download | toybox-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')
-rw-r--r-- | toys/pending/more.c | 14 |
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) |