summaryrefslogtreecommitdiffstats
path: root/include/libimobiledevice-glue/termcolors.h
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2021-06-11 01:37:27 +0200
committerGravatar Nikias Bassen2021-06-11 01:37:27 +0200
commit93bb30c682bdc984b9acced58e9a1268eefade15 (patch)
treedff9e6157875b5b3e63015bd6cb6f8e9873ed1db /include/libimobiledevice-glue/termcolors.h
parent0dcfb68954f7ee9957f528f0eea1f9dba9c9cb68 (diff)
downloadlibimobiledevice-glue-93bb30c682bdc984b9acced58e9a1268eefade15.tar.gz
libimobiledevice-glue-93bb30c682bdc984b9acced58e9a1268eefade15.tar.bz2
Add helper for handling colored terminal output
Diffstat (limited to 'include/libimobiledevice-glue/termcolors.h')
-rw-r--r--include/libimobiledevice-glue/termcolors.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/include/libimobiledevice-glue/termcolors.h b/include/libimobiledevice-glue/termcolors.h
new file mode 100644
index 0000000..2bac741
--- /dev/null
+++ b/include/libimobiledevice-glue/termcolors.h
@@ -0,0 +1,86 @@
+/*
+ * 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 <stdarg.h>
+
+#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