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
 | 
					#ifdef _WIN32
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
#else
 | 
					#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");
 | 
					    static const bool result = []() {
 | 
				
			||||||
    if (env_p == nullptr)
 | 
					        const char *env_colorterm_p = std::getenv("COLORTERM");
 | 
				
			||||||
    {
 | 
					        if (env_colorterm_p != nullptr)
 | 
				
			||||||
        return false;
 | 
					        {
 | 
				
			||||||
    }
 | 
					            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;
 | 
					    return result;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user