diff options
author | Denys Vlasenko | 2022-01-17 03:02:40 +0100 |
---|---|---|
committer | Denys Vlasenko | 2022-01-17 11:46:23 +0100 |
commit | 12566e7f9b5e5c5d445bc4d36991d134b431dc6c (patch) | |
tree | 2571356a77f7d421da368e9b31dad182e83b2408 /miscutils | |
parent | a277506a64404e6c4472ff89c944c4f353db1c33 (diff) | |
download | busybox-12566e7f9b5e5c5d445bc4d36991d134b431dc6c.zip busybox-12566e7f9b5e5c5d445bc4d36991d134b431dc6c.tar.gz |
ash,hush: fix handling of SIGINT while waiting for interactive input
function old new delta
lineedit_read_key 160 237 +77
__pgetc 522 589 +67
fgetc_interactive 244 309 +65
safe_read_key - 39 +39
read_key 588 607 +19
record_pending_signo 23 32 +9
signal_handler 75 81 +6
.rodata 104312 104309 -3
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 6/1 up/down: 282/-3) Total: 279 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/hexedit.c | 2 | ||||
-rw-r--r-- | miscutils/less.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/miscutils/hexedit.c b/miscutils/hexedit.c index f8ff9b6..15ad783 100644 --- a/miscutils/hexedit.c +++ b/miscutils/hexedit.c @@ -292,7 +292,7 @@ int hexedit_main(int argc UNUSED_PARAM, char **argv) fflush_all(); G.in_read_key = 1; if (!bb_got_signal) - key = read_key(STDIN_FILENO, G.read_key_buffer, -1); + key = safe_read_key(STDIN_FILENO, G.read_key_buffer, -1); G.in_read_key = 0; if (bb_got_signal) key = CTRL('X'); diff --git a/miscutils/less.c b/miscutils/less.c index 82c4b21..8a0525c 100644 --- a/miscutils/less.c +++ b/miscutils/less.c @@ -1137,9 +1137,9 @@ static int64_t getch_nowait(void) #endif } - /* We have kbd_fd in O_NONBLOCK mode, read inside read_key() + /* We have kbd_fd in O_NONBLOCK mode, read inside safe_read_key() * would not block even if there is no input available */ - key64 = read_key(kbd_fd, kbd_input, /*timeout off:*/ -2); + key64 = safe_read_key(kbd_fd, kbd_input, /*timeout off:*/ -2); if ((int)key64 == -1) { if (errno == EAGAIN) { /* No keyboard input available. Since poll() did return, |