mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-10-31 18:48:11 +08:00 
			
		
		
		
	Fix terminal color detection support. (#65)
There was many obvious bugs, discovered here:
ad2a085469/Open-Source-Project-Anatomy/FTXUI.md
			
			
This commit is contained in:
		| @@ -41,15 +41,19 @@ const char* Safe(const char* c) { | |||||||
|   return c ? c : ""; |   return c ? c : ""; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | bool Contains(const std::string& s, const char* key) { | ||||||
|  |   return s.find(key) != std::string::npos; | ||||||
|  | } | ||||||
|  |  | ||||||
| static bool cached = false; | static bool cached = false; | ||||||
| Terminal::Color cached_supported_color; | Terminal::Color cached_supported_color; | ||||||
| Terminal::Color ComputeColorSupport() { | Terminal::Color ComputeColorSupport() { | ||||||
|   std::string COLORTERM = Safe(std::getenv("COLORTERM")); |   std::string COLORTERM = Safe(std::getenv("COLORTERM")); | ||||||
|   if (COLORTERM.compare("24bit") || COLORTERM.compare("trueColor")) |   if (Contains(COLORTERM, "24bit") || Contains(COLORTERM, "truecolor")) | ||||||
|     return Terminal::Color::TrueColor; |     return Terminal::Color::TrueColor; | ||||||
|  |  | ||||||
|   std::string TERM = Safe(std::getenv("TERM")); |   std::string TERM = Safe(std::getenv("TERM")); | ||||||
|   if (COLORTERM.compare("256") || COLORTERM.compare("256")) |   if (Contains(COLORTERM, "256") || Contains(TERM, "256")) | ||||||
|     return Terminal::Color::Palette256; |     return Terminal::Color::Palette256; | ||||||
|  |  | ||||||
|   return Terminal::Color::Palette16; |   return Terminal::Color::Palette16; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Arthur Sonzogni
					Arthur Sonzogni