From a9e3be7618cfc46657e6341768530035e7f0e6dd Mon Sep 17 00:00:00 2001
From: Daniel Salzman <daniel.salzman@nic.cz>
Date: Tue, 17 Aug 2021 13:36:42 +0200
Subject: [PATCH] contrib: add macros for terminal colors

---
 Knot.files               |  1 +
 src/contrib/Makefile.inc |  1 +
 src/contrib/color.h      | 31 +++++++++++++++++++++++++++++++
 3 files changed, 33 insertions(+)
 create mode 100644 src/contrib/color.h

diff --git a/Knot.files b/Knot.files
index ae886df4e0..60cab572ba 100644
--- a/Knot.files
+++ b/Knot.files
@@ -5,6 +5,7 @@ src/contrib/base64.c
 src/contrib/base64.h
 src/contrib/base64url.c
 src/contrib/base64url.h
+src/contrib/color.h
 src/contrib/ctype.h
 src/contrib/dnstap/convert.c
 src/contrib/dnstap/convert.h
diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc
index 61126b83fb..b7aaecbd47 100644
--- a/src/contrib/Makefile.inc
+++ b/src/contrib/Makefile.inc
@@ -29,6 +29,7 @@ libcontrib_la_SOURCES = \
 	contrib/base64.h			\
 	contrib/base64url.c			\
 	contrib/base64url.h			\
+	contrib/color.h				\
 	contrib/ctype.h				\
 	contrib/files.c				\
 	contrib/files.h				\
diff --git a/src/contrib/color.h b/src/contrib/color.h
new file mode 100644
index 0000000000..6a7ff6ac4b
--- /dev/null
+++ b/src/contrib/color.h
@@ -0,0 +1,31 @@
+/*  Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program 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 General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define COL_RST(active)   ((active) ? "\x1B[0m"  : "")
+
+#define COL_BOLD(active)  ((active) ? "\x1B[1m"  : "")
+#define COL_DIM(active)   ((active) ? "\x1B[2m"  : "")
+#define COL_UNDR(active)  ((active) ? "\x1B[4m"  : "")
+
+#define COL_RED(active)   ((active) ? "\x1B[31m" : "")
+#define COL_GRN(active)   ((active) ? "\x1B[32m" : "")
+#define COL_YELW(active)  ((active) ? "\x1B[93m" : "")
+#define COL_BLUE(active)  ((active) ? "\x1B[34m" : "")
+#define COL_MGNT(active)  ((active) ? "\x1B[35m" : "")
+#define COL_CYAN(active)  ((active) ? "\x1B[36m" : "")
+#define COL_WHIT(active)  ((active) ? "\x1B[97m" : "")
-- 
GitLab