ash: make interactive ^C break out of PS2 mode
Based on patch by Joachim Nilsson <troglobit@gmail.com> function old new delta pgetc 570 547 -23 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
dc9c10a7b2
commit
4ac35a30db
@ -10593,7 +10593,7 @@ preadfd(void)
|
||||
|
||||
g_parsefile->next_to_pgetc = buf;
|
||||
#if ENABLE_FEATURE_EDITING
|
||||
retry:
|
||||
/* retry: */
|
||||
if (!iflag || g_parsefile->pf_fd != STDIN_FILENO)
|
||||
nr = nonblock_immune_read(g_parsefile->pf_fd, buf, IBUFSIZ - 1);
|
||||
else {
|
||||
@ -10615,15 +10615,14 @@ preadfd(void)
|
||||
if (nr == 0) {
|
||||
/* ^C pressed, "convert" to SIGINT */
|
||||
write(STDOUT_FILENO, "^C", 2);
|
||||
raise(SIGINT);
|
||||
if (trap[SIGINT]) {
|
||||
buf[0] = '\n';
|
||||
buf[1] = '\0';
|
||||
raise(SIGINT);
|
||||
return 1;
|
||||
}
|
||||
exitstatus = 128 + SIGINT;
|
||||
bb_putchar('\n');
|
||||
goto retry;
|
||||
return -1;
|
||||
}
|
||||
if (nr < 0) {
|
||||
if (errno == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user