aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/asterisk.c2
-rw-r--r--main/editline/read.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/main/asterisk.c b/main/asterisk.c
index 6ef1c65a0..c002a4542 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -1943,6 +1943,8 @@ static int ast_el_read_char(EditLine *editline, 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);