Little fix
authorMark Spencer <markster@digium.com>
Mon, 23 Jun 2003 16:40:12 +0000 (16:40 +0000)
committerMark Spencer <markster@digium.com>
Mon, 23 Jun 2003 16:40:12 +0000 (16:40 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1112 65c4cc65-6c06-0410-ace0-fbb531ad65f3

asterisk.c

index a00c990..98af3cc 100755 (executable)
@@ -673,10 +673,12 @@ static int ast_el_read_char(EditLine *el, char *cp)
        for (;;) {
                FD_ZERO(&rfds);
                FD_SET(ast_consock, &rfds);
-               FD_SET(STDIN_FILENO, &rfds);
                max = ast_consock;
-               if (STDIN_FILENO > max)
-                       max = STDIN_FILENO;
+               if (!option_exec) {
+                       FD_SET(STDIN_FILENO, &rfds);
+                       if (STDIN_FILENO > max)
+                               max = STDIN_FILENO;
+               }
                res = ast_select(max+1, &rfds, NULL, NULL, NULL);
                if (res < 0) {
                        if (errno == EINTR)
@@ -702,7 +704,7 @@ static int ast_el_read_char(EditLine *el, char *cp)
 
                        buf[res] = '\0';
 
-                       if (!lastpos)
+                       if (!option_exec && !lastpos)
                                write(STDOUT_FILENO, "\r", 1);
                        write(STDOUT_FILENO, buf, res);
                        if ((buf[res-1] == '\n') || (buf[res-2] == '\n')) {
@@ -1023,12 +1025,14 @@ static void ast_remotecontrol(char * data)
 #if 0
        ast_cli_register(&astshutdown);
 #endif 
+       if (option_exec && data) {  /* hack to print output then exit if asterisk -rx is used */
+               char tempchar;
+               ast_el_read_char(el, &tempchar);
+               return;
+       }
        for(;;) {
                ebuf = (char *)el_gets(el, &num);
 
-               if (data)       /* hack to print output then exit if asterisk -rx is used */
-                       ebuf = strdup("quit");
-
                if (ebuf && strlen(ebuf)) {
                        if (ebuf[strlen(ebuf)-1] == '\n')
                                ebuf[strlen(ebuf)-1] = '\0';