]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix fs_cli for windows after recent changes - may need more work
authorJeff Lenk <jeff@jefflenk.com>
Mon, 26 Sep 2011 14:15:12 +0000 (09:15 -0500)
committerJeff Lenk <jeff@jefflenk.com>
Mon, 26 Sep 2011 14:15:12 +0000 (09:15 -0500)
libs/esl/fs_cli.c
libs/esl/src/include/esl.h

index 4dc2c5c6eb6e2f953f5f340a6dfe3b0a9419b062..775cf9e4b6ee8a42427b16c56e2cdcec8d264840 100644 (file)
@@ -40,7 +40,7 @@
 #define KEY_INSERT 8
 #define PROMPT_OP 9
 static int console_bufferInput (char *buf, int len, char *cmd, int key);
-static unsigned char esl_console_complete(const char *buffer, const char *cursor);
+static unsigned char esl_console_complete(const char *buffer, const char *cursor, const char *lastchar);
 #endif
 
 #ifdef HAVE_EDITLINE
@@ -68,9 +68,9 @@ static int allow_ctl_c = 0;
 static char bare_prompt_str[512] = "";
 static int bare_prompt_str_len = 0;
 static char prompt_str[512] = "";
-static char prompt_color[12] = ESL_SEQ_DEFAULT_COLOR;
-static char input_text_color[12] = ESL_SEQ_DEFAULT_COLOR;
-static char output_text_color[12] = ESL_SEQ_DEFAULT_COLOR;
+static char prompt_color[12] = {ESL_SEQ_DEFAULT_COLOR};
+static char input_text_color[12] = {ESL_SEQ_DEFAULT_COLOR};
+static char output_text_color[12] = {ESL_SEQ_DEFAULT_COLOR};
 static cli_profile_t profiles[128] = {{{0}}};
 static cli_profile_t internal_profile = {{ 0 }};
 static int pcount = 0;
@@ -79,9 +79,11 @@ static cli_profile_t *global_profile;
 static int running = 1;
 static int thread_running = 0;
 static char *filter_uuid;
+#ifndef WIN32
 static EditLine *el;
 static History *myhistory;
 static HistEvent ev;
+#endif
 
 static void _sleep_ns(int secs, long nsecs) {
 #ifndef WIN32
@@ -234,7 +236,7 @@ static int console_bufferInput (char *addchars, int len, char *cmd, int key)
                return 0;
        }
        if (key == KEY_TAB) {
-               esl_console_complete(cmd, cmd+iCmdBuffer);
+               esl_console_complete(cmd, cmd+iCmdBuffer, &cmd[iCmdBuffer-1]);
                return 0;
        }
        if (key == KEY_UP || key == KEY_DOWN || key == CLEAR_OP) {
@@ -583,6 +585,8 @@ static void clear_line(void)
 
 static void redisplay(void)
 {
+#ifdef WIN32
+#else
        const LineInfo *lf = el_line(el);
        const char *c = lf->buffer;
        printf("%s",prompt_str);
@@ -598,6 +602,7 @@ static void redisplay(void)
        }
        fflush(stdout);
        return;
+#endif
 }
 
 static int output_printf(const char *fmt, ...)
@@ -605,7 +610,9 @@ static int output_printf(const char *fmt, ...)
        va_list ap;
        int r;
        va_start(ap, fmt);
+#ifndef WIN32
        printf("%s", output_text_color);
+#endif
        r = vprintf(fmt, ap);
        va_end(ap);
        return r;
@@ -984,7 +991,11 @@ static const char* match_color(const char *s) {
                }
                map++;
        }
+#ifdef WIN32
+       return "white";
+#else
        return ESL_SEQ_DEFAULT_COLOR;
+#endif
 }
 
 static void read_config(const char *dft_cfile, const char *cfile) {
@@ -1240,7 +1251,11 @@ int main(int argc, char *argv[])
                snprintf(bare_prompt_str, sizeof(bare_prompt_str), "freeswitch@%s> ", profile->name);
        }
        bare_prompt_str_len = strlen(bare_prompt_str);
+#ifdef WIN32
+       snprintf(prompt_str, sizeof(prompt_str), "%s", bare_prompt_str); /* Not supporting this for now */
+#else
        snprintf(prompt_str, sizeof(prompt_str), "%s%s%s", prompt_color, bare_prompt_str, input_text_color);
+#endif
  connect:
        connected = 0;
        while (--loops > 0) {
index a9e5df140b271084af0e471743387e31bef206c8..74fd2342a559f7817c86e691b9f4bfa18bddb7cc 100644 (file)
@@ -61,12 +61,22 @@ typedef enum {
 
 #ifdef WIN32
 #define ESL_SEQ_FWHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY
+#define ESL_SEQ_BWHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
 #define ESL_SEQ_FRED FOREGROUND_RED | FOREGROUND_INTENSITY
-#define ESL_SEQ_FMAGEN FOREGROUND_BLUE | FOREGROUND_RED
-#define ESL_SEQ_FCYAN FOREGROUND_GREEN | FOREGROUND_BLUE
-#define ESL_SEQ_FGREEN FOREGROUND_GREEN
+#define ESL_SEQ_BRED FOREGROUND_RED
+#define ESL_SEQ_FMAGEN FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY
+#define ESL_SEQ_BMAGEN FOREGROUND_BLUE | FOREGROUND_RED
+#define ESL_SEQ_FCYAN FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY
+#define ESL_SEQ_BCYAN FOREGROUND_GREEN | FOREGROUND_BLUE
+#define ESL_SEQ_FGREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
+#define ESL_SEQ_BGREEN FOREGROUND_GREEN 
 #define ESL_SEQ_FYELLOW FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY
+#define ESL_SEQ_BYELLOW FOREGROUND_RED | FOREGROUND_GREEN
 #define ESL_SEQ_DEFAULT_COLOR ESL_SEQ_FWHITE
+#define ESL_SEQ_FBLUE FOREGROUND_BLUE | FOREGROUND_INTENSITY
+#define ESL_SEQ_BBLUE FOREGROUND_BLUE 
+#define ESL_SEQ_FBLACK 0 | FOREGROUND_INTENSITY
+#define ESL_SEQ_BBLACK 0 
 #else
 #define ESL_SEQ_ESC "\033["
 /* Ansi Control character suffixes */