]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
core: Minor cleanup of ast_el_read_char.
authorCorey Farrell <git@cfware.com>
Sat, 17 Mar 2018 21:41:13 +0000 (17:41 -0400)
committerCorey Farrell <git@cfware.com>
Sat, 17 Mar 2018 22:47:54 +0000 (16:47 -0600)
* Define CHAR_T_LIBEDIT and CHAR_TO_LIBEDIT based on
  HAVE_LIBEDIT_IS_UNICODE.  This avoids needing to repeatedly use
  conditional blocks, eliminates having multiple function prototypes.
* Remove parenthesis from return values.
* Add missing code block brackets {}.
* Reduce use of 'else' conditional statements where possible.

Change-Id: I4315328ebea2f62641faf6881de2ac20a9f9d08e

main/asterisk.c

index ee17c82ad5ccda72324d2c5719f37b82bfad8c73..0e4eb11872f5cf2202fe8120db22162b2b8ad188 100644 (file)
@@ -2862,10 +2862,14 @@ static void send_rasterisk_connect_commands(void)
 }
 
 #ifdef HAVE_LIBEDIT_IS_UNICODE
-static int ast_el_read_char(EditLine *editline, wchar_t *cp)
+#define CHAR_T_LIBEDIT wchar_t
+#define CHAR_TO_LIBEDIT(c) btowc(c)
 #else
-static int ast_el_read_char(EditLine *editline, char *cp)
+#define CHAR_T_LIBEDIT char
+#define CHAR_TO_LIBEDIT(c) c
 #endif
+
+static int ast_el_read_char(EditLine *editline, CHAR_T_LIBEDIT *cp)
 {
        int num_read = 0;
        int lastpos = 0;
@@ -2886,28 +2890,29 @@ static int ast_el_read_char(EditLine *editline, char *cp)
                }
                res = ast_poll(fds, max, -1);
                if (res < 0) {
-                       if (sig_flags.need_quit || sig_flags.need_quit_handler)
+                       if (sig_flags.need_quit || sig_flags.need_quit_handler) {
                                break;
-                       if (errno == EINTR)
+                       }
+                       if (errno == EINTR) {
                                continue;
+                       }
                        fprintf(stderr, "poll failed: %s\n", strerror(errno));
                        break;
                }
 
                if (!ast_opt_exec && fds[1].revents) {
                        char c = '\0';
+
                        num_read = read(STDIN_FILENO, &c, 1);
                        if (num_read < 1) {
                                break;
-                       } else {
-#ifdef         HAVE_LIBEDIT_IS_UNICODE
-                               *cp = btowc(c);
-#else
-                               *cp = c;
-#endif
-                               return (num_read);
                        }
+
+                       *cp = CHAR_TO_LIBEDIT(c);
+
+                       return num_read;
                }
+
                if (fds[0].revents) {
                        res = read(ast_consock, buf, sizeof(buf) - 1);
                        /* if the remote side disappears exit */
@@ -2918,6 +2923,7 @@ static int ast_el_read_char(EditLine *editline, char *cp)
                                } else {
                                        int tries;
                                        int reconnects_per_second = 20;
+
                                        fprintf(stderr, "Attempting to reconnect for 30 seconds\n");
                                        for (tries = 0; tries < 30 * reconnects_per_second; tries++) {
                                                if (ast_tryconnect()) {
@@ -2926,8 +2932,9 @@ static int ast_el_read_char(EditLine *editline, char *cp)
                                                        WELCOME_MESSAGE;
                                                        send_rasterisk_connect_commands();
                                                        break;
-                                               } else
-                                                       usleep(1000000 / reconnects_per_second);
+                                               }
+
+                                               usleep(1000000 / reconnects_per_second);
                                        }
                                        if (tries >= 30 * reconnects_per_second) {
                                                fprintf(stderr, "Failed to reconnect for 30 seconds.  Quitting.\n");
@@ -2948,25 +2955,17 @@ static int ast_el_read_char(EditLine *editline, char *cp)
                        console_print(buf, 0);
 
                        if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (res >= 2 && buf[res-2] == '\n'))) {
-#ifdef         HAVE_LIBEDIT_IS_UNICODE
-                               *cp = btowc(CC_REFRESH);
-#else
-                               *cp = CC_REFRESH;
-#endif
-                               return(1);
-                       } else {
-                               lastpos = 1;
+                               *cp = CHAR_TO_LIBEDIT(CC_REFRESH);
+
+                               return 1;
                        }
+                       lastpos = 1;
                }
        }
 
-#ifdef         HAVE_LIBEDIT_IS_UNICODE
-       *cp = btowc('\0');
-#else
-       *cp = '\0';
-#endif
+       *cp = CHAR_TO_LIBEDIT('\0');
 
-       return (0);
+       return 0;
 }
 
 static struct ast_str *prompt = NULL;