/* * termcolors.h * * Copyright (c) 2020-2021 Nikias Bassen, All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef TERMCOLORS_H #define TERMCOLORS_H #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #define COLOR_RESET "\e[m" #define STYLE_NORMAL "\e[0m" #define STYLE_BRIGHT "\e[1m" #define STYLE_DARK "\e[2m" #define COLOR_BLACK "\e[0;30m" #define COLOR_DARK_GRAY "\e[1;30m" #define COLOR_RED "\e[0;31m" #define COLOR_BRIGHT_RED "\e[1;31m" #define COLOR_DARK_RED "\e[2;31m" #define COLOR_GREEN "\e[0;32m" #define COLOR_BRIGHT_GREEN "\e[1;32m" #define COLOR_DARK_GREEN "\e[2;32m" #define COLOR_YELLOW "\e[0;33m" #define COLOR_BRIGHT_YELLOW "\e[1;33m" #define COLOR_DARK_YELLOW "\e[2;33m" #define COLOR_BLUE "\e[0;34m" #define COLOR_BRIGHT_BLUE "\e[1;34m" #define COLOR_DARK_BLUE "\e[2;34m" #define COLOR_MAGENTA "\e[0;35m" #define COLOR_BRIGHT_MAGENTA "\e[1;35m" #define COLOR_DARK_MAGENTA "\e[2;35m" #define COLOR_CYAN "\e[0;36m" #define COLOR_BRIGHT_CYAN "\e[1;36m" #define COLOR_DARK_CYAN "\e[2;36m" #define COLOR_LIGHT_GRAY "\e[0;37m" #define COLOR_WHITE "\e[1;37m" #define COLOR_GRAY "\e[2;37m" #define COLOR_DEFAULT "\e[39m" #define BG_BLACK "\e[40m" #define BG_GRAY "\e[100m" #define BG_RED "\e[41m" #define BG_BRIGHT_RED "\e[101m" #define BG_GREEN "\e[42m" #define BG_BRIGHT_GREEN "\e[102m" #define BG_YELLOW "\e[43m" #define BG_BRIGHT_YELLOW "\e[103m" #define BG_BLUE "\e[44m" #define BG_BRIGHT_BLUE "\e[104m" #define BG_MAGENTA "\e[45m" #define BG_BRIGHT_MAGENTA "\e[105m" #define BG_CYAN "\e[46m" #define BG_BRIGHT_CYAN "\e[106m" #define BG_LIGHT_GRAY "\e[47m" #define BG_WHITE "\e[107m" #define BG_DEFAULT "\e[49m" /* automatically called by library constructor */ void term_colors_init(); /* enable / disable terminal colors */ void term_colors_set_enabled(int en); /* color-aware *printf variants */ int cprintf(const char* fmt, ...); int cfprintf(FILE* stream, const char* fmt, ...); int cvfprintf(FILE* stream, const char* fmt, va_list vargs); #endif