forked from Mirrors/freeswitch
fs_cli: make enhanced fs_cli features work on all TERMs
FS-3815 --resolve This is a workaround for the fact that libedit counts terminal control characters when calculating the length of the prompt. By not using absolute positioning, we avoid the issue. Thanks to Ivan Isaev for the workaround and testing.
This commit is contained in:
parent
d6c6396e24
commit
b9b77bd615
|
@ -1123,7 +1123,6 @@ int main(int argc, char *argv[])
|
|||
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[] = {
|
||||
|
@ -1158,15 +1157,11 @@ int main(int argc, char *argv[])
|
|||
int argv_quiet = 0;
|
||||
int loops = 2, reconnect = 0, timeout = 0;
|
||||
|
||||
if (term && (!strncasecmp("screen", term, 6) ||
|
||||
!strncasecmp("vt100", term, 5))) {
|
||||
feature_level = 1;
|
||||
} else {
|
||||
feature_level = 0;
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
feature_level = 0;
|
||||
#else
|
||||
feature_level = 1;
|
||||
#endif
|
||||
|
||||
strncpy(internal_profile.host, "127.0.0.1", sizeof(internal_profile.host));
|
||||
|
|
|
@ -609,10 +609,15 @@ mc_again:
|
|||
}
|
||||
del = where - el->el_cursor.h;
|
||||
|
||||
#if 0
|
||||
/* workaround miscounting of control characters in prompt by
|
||||
avoiding absolute horizontal positioning */
|
||||
if ((del < -4 || del > 4) && GoodStr(T_ch))
|
||||
/* go there directly */
|
||||
(void) tputs(tgoto(Str(T_ch), where, where), where, term__putc);
|
||||
else {
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (del > 0) { /* moving forward */
|
||||
if ((del > 4) && GoodStr(T_RI))
|
||||
(void) tputs(tgoto(Str(T_RI), del, del),
|
||||
|
|
Loading…
Reference in New Issue