mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-23 14:44:28 +00:00
Merged revisions 163761 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r163761 | tilghman | 2008-12-12 16:03:10 -0600 (Fri, 12 Dec 2008) | 7 lines Simple fix for Ctrl-C not immediately exiting Asterisk, but also add a pointer inside editline to look back to asterisk.c, so others don't spend as much time as I did looking (in the wrong place) for the appropriate function. Reported by: ZX81, via the #asterisk-users channel Fixed by: me (license 14) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163762 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1943,6 +1943,8 @@ static int ast_el_read_char(EditLine *editline, char *cp)
|
|||||||
}
|
}
|
||||||
res = poll(fds, max, -1);
|
res = poll(fds, max, -1);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
|
if (sig_flags.need_quit)
|
||||||
|
break;
|
||||||
if (errno == EINTR)
|
if (errno == EINTR)
|
||||||
continue;
|
continue;
|
||||||
ast_log(LOG_ERROR, "poll failed: %s\n", strerror(errno));
|
ast_log(LOG_ERROR, "poll failed: %s\n", strerror(errno));
|
||||||
|
@@ -286,6 +286,8 @@ read_getcmd(EditLine *el, el_action_t *cmdnum, char *ch)
|
|||||||
|
|
||||||
/* read_char():
|
/* read_char():
|
||||||
* Read a character from the tty.
|
* 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
|
private int
|
||||||
read_char(EditLine *el, char *cp)
|
read_char(EditLine *el, char *cp)
|
||||||
@@ -344,6 +346,7 @@ el_getc(EditLine *el, char *cp)
|
|||||||
#ifdef DEBUG_READ
|
#ifdef DEBUG_READ
|
||||||
(void) fprintf(el->el_errfile, "Reading a character\n");
|
(void) fprintf(el->el_errfile, "Reading a character\n");
|
||||||
#endif /* DEBUG_READ */
|
#endif /* DEBUG_READ */
|
||||||
|
/* See main/asterisk.c: ast_el_read_char() */
|
||||||
num_read = (*el->el_read.read_char)(el, cp);
|
num_read = (*el->el_read.read_char)(el, cp);
|
||||||
#ifdef DEBUG_READ
|
#ifdef DEBUG_READ
|
||||||
(void) fprintf(el->el_errfile, "Got it %c\n", *cp);
|
(void) fprintf(el->el_errfile, "Got it %c\n", *cp);
|
||||||
|
Reference in New Issue
Block a user