From f676f2e7ca2fcce76ac7b50fed2b92ad3004da19 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Mon, 2 Mar 2020 14:36:41 +0100 Subject: [PATCH] console: add isColorsSupported() --- src/console.cpp | 18 ++++++++++++++++++ src/console.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/console.cpp b/src/console.cpp index c685541..99472f3 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -21,10 +21,28 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include +#include "core/isatty.h" #include "console.h" namespace eoskeygen { namespace console { bool disable_color = false; +FILE* _getFileFromStream(const std::ostream& os) { + + if (&os == &std::cout) { + return stdout; + } else if (&os == &std::cerr) { + return stderr; + } + return NULL; +} + +bool isColorsSupported(const std::ostream& os) { + + FILE* fd = _getFileFromStream(os); + return disable_color == false && isatty(fd); +} + } } // namespace eoskeygen::console diff --git a/src/console.h b/src/console.h index bd7f0fd..65da9aa 100644 --- a/src/console.h +++ b/src/console.h @@ -63,6 +63,8 @@ namespace console { italic }; + bool isColorsSupported(const std::ostream& os); + // Resets all colors/attributes std::ostream& reset(std::ostream& os);