summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ash.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 674a41b..d1ca345 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -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) {