mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-13 15:50:59 +00:00
Add back terminal detection for old libedits
Using the system libedit means that libedit will again make absolute movements on certain kinds of terminals. Older versions of libedit without EL_PROMPT_ESC miscalculate the length of the prompt. Combined, this results in the cursor ending up in the wrong place. We knew this was a possibility when we moved to system libedit, and we're OK with it. We certainly lived without this fancy prompt feature for a long time. This change puts back in place detection of the terminal type when EL_PROMPT_ESC isn't available. On these older versions of libedit, we'll only enable the fancy features when we know that libedit will only make relative movements and not tickle the bug. This partially reverts commit: b9b77bd6156b4343f8baa9ca1a0c803108dbcdb4
This commit is contained in:
parent
dc093d179e
commit
4f54f912c3
@ -1352,10 +1352,22 @@ int main(int argc, char *argv[])
|
||||
int loops = 2, reconnect = 0;
|
||||
char *ccheck;
|
||||
|
||||
#ifdef WIN32
|
||||
#if HAVE_DECL_EL_PROMPT_ESC
|
||||
feature_level = 0;
|
||||
#else
|
||||
feature_level = 1;
|
||||
{
|
||||
char *term = getenv("TERM");
|
||||
if (term && (!strncasecmp("screen", term, 6) ||
|
||||
!strncasecmp("vt100", term, 5))) {
|
||||
feature_level = 1;
|
||||
} else {
|
||||
feature_level = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
feature_level = 0;
|
||||
#endif
|
||||
|
||||
if ((ccheck = getenv("FS_CLI_COLOR"))) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user