Merge pull request #1768 from dominicpoeschko/colorterminal_detection
Changed is_color_terminal to be more generic.
This commit is contained in:
		@@ -397,17 +397,26 @@ SPDLOG_INLINE bool is_color_terminal() SPDLOG_NOEXCEPT
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    return true;
 | 
			
		||||
#else
 | 
			
		||||
    static constexpr std::array<const char *, 14> terms = {
 | 
			
		||||
        {"ansi", "color", "console", "cygwin", "gnome", "konsole", "kterm", "linux", "msys", "putty", "rxvt", "screen", "vt100", "xterm"}};
 | 
			
		||||
 | 
			
		||||
    const char *env_p = std::getenv("TERM");
 | 
			
		||||
    if (env_p == nullptr)
 | 
			
		||||
    {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    static const bool result = []() {
 | 
			
		||||
        const char *env_colorterm_p = std::getenv("COLORTERM");
 | 
			
		||||
        if (env_colorterm_p != nullptr)
 | 
			
		||||
        {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        static constexpr std::array<const char *, 15> terms = {{"ansi", "color", "console", "cygwin", "gnome", "konsole", "kterm", "linux",
 | 
			
		||||
            "msys", "putty", "rxvt", "screen", "vt100", "xterm", "alacritty"}};
 | 
			
		||||
 | 
			
		||||
        const char *env_term_p = std::getenv("TERM");
 | 
			
		||||
        if (env_term_p == nullptr)
 | 
			
		||||
        {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return std::any_of(terms.begin(), terms.end(), [&](const char *term) { return std::strstr(env_term_p, term) != nullptr; });
 | 
			
		||||
    }();
 | 
			
		||||
 | 
			
		||||
    static const bool result =
 | 
			
		||||
        std::any_of(terms.begin(), terms.end(), [&](const char *term) { return std::strstr(env_p, term) != nullptr; });
 | 
			
		||||
    return result;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user