mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Fallback option for colorized output when terminfo isn't available
Try to detect the terminal color support by checking the value of the TERM environment variable. This is not great, but it's better than nothing when terminfo library isn't available, which may still be the case on some Linux distributions. Differential Revision: https://reviews.llvm.org/D42055 llvm-svn: 322962
This commit is contained in:
parent
84b233d19c
commit
37e37092ad
@ -369,6 +369,21 @@ static bool terminalHasColors(int fd) {
|
|||||||
// Return true if we found a color capabilities for the current terminal.
|
// Return true if we found a color capabilities for the current terminal.
|
||||||
if (HasColors)
|
if (HasColors)
|
||||||
return true;
|
return true;
|
||||||
|
#else
|
||||||
|
// When the terminfo database is not available, check if the current terminal
|
||||||
|
// is one of terminals that are known to support ANSI color escape codes.
|
||||||
|
if (const char *TermStr = std::getenv("TERM")) {
|
||||||
|
return StringSwitch<bool>(TermStr)
|
||||||
|
.Case("ansi", true)
|
||||||
|
.Case("cygwin", true)
|
||||||
|
.Case("linux", true)
|
||||||
|
.StartsWith("screen", true)
|
||||||
|
.StartsWith("xterm", true)
|
||||||
|
.StartsWith("vt100", true)
|
||||||
|
.StartsWith("rxvt", true)
|
||||||
|
.EndsWith("color", true)
|
||||||
|
.Default(false);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Otherwise, be conservative.
|
// Otherwise, be conservative.
|
||||||
|
Loading…
Reference in New Issue
Block a user