#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
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;
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
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) {
static void redisplay(void)
{
+#ifdef WIN32
+#else
const LineInfo *lf = el_line(el);
const char *c = lf->buffer;
printf("%s",prompt_str);
}
fflush(stdout);
return;
+#endif
}
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;
}
map++;
}
+#ifdef WIN32
+ return "white";
+#else
return ESL_SEQ_DEFAULT_COLOR;
+#endif
}
static void read_config(const char *dft_cfile, const char *cfile) {
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) {
#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 */