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 int feature_level = 0;
static cli_profile_t profiles[128] = {{{0}}};
static cli_profile_t internal_profile = {{ 0 }};
static int pcount = 0;
}
#ifndef WIN32
if (aok) {
- clear_line();
+ if (feature_level) clear_line();
printf("%s%s", colors[level], handle->last_event->body);
- redisplay();
+ if (!feature_level) printf("%s", ESL_SEQ_DEFAULT_COLOR);
+ if (feature_level) redisplay();
}
#else
if (aok) {
char dft_cfile[512] = "fs_cli.conf";
#endif
char *home = getenv("HOME");
+ char *term = getenv("TERM");
/* Vars for optargs */
int opt;
static struct option options[] = {
int argv_quiet = 0;
int loops = 2, reconnect = 0, timeout = 0;
+ if (!strncasecmp("screen", term, 6) ||
+ !strncasecmp("vt100", term, 5)) {
+ feature_level = 1;
+ } else {
+ feature_level = 0;
+ }
+
+#ifdef WIN32
+ feature_level = 0;
+#endif
+
strncpy(internal_profile.host, "127.0.0.1", sizeof(internal_profile.host));
strncpy(internal_profile.pass, "ClueCon", sizeof(internal_profile.pass));
strncpy(internal_profile.name, "internal", sizeof(internal_profile.name));
snprintf(bare_prompt_str, sizeof(bare_prompt_str), "freeswitch@%s> ", profile->name);
}
bare_prompt_str_len = (int)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
+ if (feature_level) {
+ snprintf(prompt_str, sizeof(prompt_str), "%s%s%s", prompt_color, bare_prompt_str, input_text_color);
+ } else {
+ snprintf(prompt_str, sizeof(prompt_str), "%s", bare_prompt_str);
+ }
connect:
connected = 0;
while (--loops > 0) {