diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/asterisk.c | 2 | ||||
-rw-r--r-- | main/editline/read.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/main/asterisk.c b/main/asterisk.c index 3dad454d5..3ed7fff22 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -1777,6 +1777,8 @@ static int ast_el_read_char(EditLine *el, char *cp) } res = poll(fds, max, -1); if (res < 0) { + if (sig_flags.need_quit) + break; if (errno == EINTR) continue; ast_log(LOG_ERROR, "poll failed: %s\n", strerror(errno)); diff --git a/main/editline/read.c b/main/editline/read.c index ccd0a06e5..80d51da4a 100644 --- a/main/editline/read.c +++ b/main/editline/read.c @@ -286,6 +286,8 @@ read_getcmd(EditLine *el, el_action_t *cmdnum, char *ch) /* read_char(): * Read a character from the tty. + * XXX This routine is the default, but what you are actually looking for + * is in main/asterisk.c, in ast_el_read_char(). XXX */ private int read_char(EditLine *el, char *cp) @@ -344,6 +346,7 @@ el_getc(EditLine *el, char *cp) #ifdef DEBUG_READ (void) fprintf(el->el_errfile, "Reading a character\n"); #endif /* DEBUG_READ */ + /* See main/asterisk.c: ast_el_read_char() */ num_read = (*el->el_read.read_char)(el, cp); #ifdef DEBUG_READ (void) fprintf(el->el_errfile, "Got it %c\n", *cp); |