Consider all TERM values ending in "-256color" to be color supporting. In particular this handles TERM=hterm-256color correctly.

PiperOrigin-RevId: 470232889
Change-Id: Iea594a3fde2b8b0a10e527956d70ba0bb3452e08
This commit is contained in:
Abseil Team 2022-08-26 06:34:54 -07:00 committed by Copybara-Service
parent 25cc5777a1
commit afd902e992

View File

@ -3245,18 +3245,15 @@ bool ShouldUseColor(bool stdout_is_tty) {
#else #else
// On non-Windows platforms, we rely on the TERM variable. // On non-Windows platforms, we rely on the TERM variable.
const char* const term = posix::GetEnv("TERM"); const char* const term = posix::GetEnv("TERM");
const bool term_supports_color = const bool term_supports_color = term != nullptr && (
String::CStringEquals(term, "xterm") || String::CStringEquals(term, "xterm") ||
String::CStringEquals(term, "xterm-color") || String::CStringEquals(term, "xterm-color") ||
String::CStringEquals(term, "xterm-256color") ||
String::CStringEquals(term, "screen") || String::CStringEquals(term, "screen") ||
String::CStringEquals(term, "screen-256color") ||
String::CStringEquals(term, "tmux") || String::CStringEquals(term, "tmux") ||
String::CStringEquals(term, "tmux-256color") ||
String::CStringEquals(term, "rxvt-unicode") || String::CStringEquals(term, "rxvt-unicode") ||
String::CStringEquals(term, "rxvt-unicode-256color") ||
String::CStringEquals(term, "linux") || String::CStringEquals(term, "linux") ||
String::CStringEquals(term, "cygwin"); String::CStringEquals(term, "cygwin") ||
String::EndsWithCaseInsensitive(term, "-256color"));
return stdout_is_tty && term_supports_color; return stdout_is_tty && term_supports_color;
#endif // GTEST_OS_WINDOWS #endif // GTEST_OS_WINDOWS
} }