]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
terminal-util: split out color macros/helpers into its own header
authorLennart Poettering <lennart@poettering.net>
Thu, 11 Jul 2024 09:02:28 +0000 (11:02 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 19 Jul 2024 09:44:04 +0000 (11:44 +0200)
This is a lot of stuff, and sometimes quite wild, let's turn this into
its own header.

All stuff color-related that just generates sequences is now in
ansi-color.h (no .c file!), and everything more complex that
probes/ineracts with terminals remains in termina-util.[ch]

41 files changed:
src/basic/ansi-color.h [new file with mode: 0644]
src/basic/build.c
src/basic/log.c
src/basic/terminal-util.c
src/basic/terminal-util.h
src/core/emergency-action.c
src/core/job.c
src/core/transaction.c
src/core/unit.c
src/cryptenroll/cryptenroll-recovery.c
src/home/homectl-recovery-key.c
src/import/export.c
src/import/import-fs.c
src/import/import.c
src/import/pull.c
src/journal/journalctl-authenticate.c
src/journal/journalctl-show.c
src/libsystemd/sd-bus/bus-dump.c
src/libsystemd/sd-journal/journal-verify.c
src/libsystemd/sd-journal/test-journal-verify.c
src/libsystemd/sd-json/sd-json.c
src/libsystemd/sd-varlink/sd-varlink-idl.c
src/shared/ask-password-api.c
src/shared/blockdev-list.c
src/shared/bus-unit-procs.c
src/shared/cgroup-show.c
src/shared/pretty-print.h
src/shared/ptyfwd.c
src/shared/qrcode-util.c
src/systemctl/systemctl-list-dependencies.c
src/systemctl/systemctl-list-jobs.c
src/systemctl/systemctl-list-machines.c
src/systemctl/systemctl-list-unit-files.c
src/systemctl/systemctl-list-units.c
src/systemctl/systemctl-start-unit.c
src/sysupdate/sysupdate-update-set-flags.c
src/sysupdate/sysupdate-update-set.c
src/test/test-ellipsize.c
src/test/test-terminal-util.c
src/udev/udevadm-info.c
src/udev/udevadm-test.c

diff --git a/src/basic/ansi-color.h b/src/basic/ansi-color.h
new file mode 100644 (file)
index 0000000..efc1dea
--- /dev/null
@@ -0,0 +1,162 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#pragma once
+
+#include "terminal-util.h"
+
+/* Regular colors */
+#define ANSI_BLACK   "\x1B[0;30m" /* Some type of grey usually. */
+#define ANSI_RED     "\x1B[0;31m"
+#define ANSI_GREEN   "\x1B[0;32m"
+#define ANSI_YELLOW  "\x1B[0;33m"
+#define ANSI_BLUE    "\x1B[0;34m"
+#define ANSI_MAGENTA "\x1B[0;35m"
+#define ANSI_CYAN    "\x1B[0;36m"
+#define ANSI_WHITE   "\x1B[0;37m" /* This is actually rendered as light grey, legible even on a white
+                                   * background. See ANSI_HIGHLIGHT_WHITE for real white. */
+
+#define ANSI_BRIGHT_BLACK   "\x1B[0;90m"
+#define ANSI_BRIGHT_RED     "\x1B[0;91m"
+#define ANSI_BRIGHT_GREEN   "\x1B[0;92m"
+#define ANSI_BRIGHT_YELLOW  "\x1B[0;93m"
+#define ANSI_BRIGHT_BLUE    "\x1B[0;94m"
+#define ANSI_BRIGHT_MAGENTA "\x1B[0;95m"
+#define ANSI_BRIGHT_CYAN    "\x1B[0;96m"
+#define ANSI_BRIGHT_WHITE   "\x1B[0;97m"
+
+#define ANSI_GREY    "\x1B[0;38;5;245m"
+
+/* Bold/highlighted */
+#define ANSI_HIGHLIGHT_BLACK    "\x1B[0;1;30m"
+#define ANSI_HIGHLIGHT_RED      "\x1B[0;1;31m"
+#define ANSI_HIGHLIGHT_GREEN    "\x1B[0;1;32m"
+#define _ANSI_HIGHLIGHT_YELLOW  "\x1B[0;1;33m" /* This yellow is currently not displayed well by some terminals */
+#define ANSI_HIGHLIGHT_BLUE     "\x1B[0;1;34m"
+#define ANSI_HIGHLIGHT_MAGENTA  "\x1B[0;1;35m"
+#define ANSI_HIGHLIGHT_CYAN     "\x1B[0;1;36m"
+#define ANSI_HIGHLIGHT_WHITE    "\x1B[0;1;37m"
+#define ANSI_HIGHLIGHT_YELLOW4  "\x1B[0;1;38:5:100m"
+#define ANSI_HIGHLIGHT_KHAKI3   "\x1B[0;1;38:5:185m"
+#define ANSI_HIGHLIGHT_GREY     "\x1B[0;1;38:5:245m"
+
+#define ANSI_HIGHLIGHT_YELLOW   ANSI_HIGHLIGHT_KHAKI3 /* Replacement yellow that is more legible */
+
+/* Underlined */
+#define ANSI_GREY_UNDERLINE              "\x1B[0;4;38:5:245m"
+#define ANSI_BRIGHT_BLACK_UNDERLINE      "\x1B[0;4;90m"
+#define ANSI_HIGHLIGHT_RED_UNDERLINE     "\x1B[0;1;4;31m"
+#define ANSI_HIGHLIGHT_GREEN_UNDERLINE   "\x1B[0;1;4;32m"
+#define ANSI_HIGHLIGHT_YELLOW_UNDERLINE  "\x1B[0;1;4;38:5:185m"
+#define ANSI_HIGHLIGHT_BLUE_UNDERLINE    "\x1B[0;1;4;34m"
+#define ANSI_HIGHLIGHT_MAGENTA_UNDERLINE "\x1B[0;1;4;35m"
+#define ANSI_HIGHLIGHT_GREY_UNDERLINE    "\x1B[0;1;4;38:5:245m"
+
+/* Other ANSI codes */
+#define ANSI_UNDERLINE "\x1B[0;4m"
+#define ANSI_ADD_UNDERLINE "\x1B[4m"
+#define ANSI_ADD_UNDERLINE_GREY ANSI_ADD_UNDERLINE "\x1B[58:5:245m"
+#define ANSI_HIGHLIGHT "\x1B[0;1;39m"
+#define ANSI_HIGHLIGHT_UNDERLINE "\x1B[0;1;4m"
+
+/* Fallback colors: 256 → 16 */
+#define ANSI_HIGHLIGHT_GREY_FALLBACK             "\x1B[0;1;90m"
+#define ANSI_HIGHLIGHT_GREY_FALLBACK_UNDERLINE   "\x1B[0;1;4;90m"
+#define ANSI_HIGHLIGHT_YELLOW_FALLBACK           "\x1B[0;1;33m"
+#define ANSI_HIGHLIGHT_YELLOW_FALLBACK_UNDERLINE "\x1B[0;1;4;33m"
+
+/* Background colors */
+#define ANSI_BACKGROUND_BLUE "\x1B[44m"
+
+/* Reset/clear ANSI styles */
+#define ANSI_NORMAL "\x1B[0m"
+
+#define DEFINE_ANSI_FUNC(name, NAME)                            \
+        static inline const char* ansi_##name(void) {           \
+                return colors_enabled() ? ANSI_##NAME : "";     \
+        }
+
+#define DEFINE_ANSI_FUNC_256(name, NAME, FALLBACK)             \
+        static inline const char* ansi_##name(void) {          \
+                switch (get_color_mode()) {                    \
+                        case COLOR_OFF: return "";             \
+                        case COLOR_16: return ANSI_##FALLBACK; \
+                        default : return ANSI_##NAME;          \
+                }                                              \
+        }
+
+static inline const char* ansi_underline(void) {
+        return underline_enabled() ? ANSI_UNDERLINE : "";
+}
+
+static inline const char* ansi_add_underline(void) {
+        return underline_enabled() ? ANSI_ADD_UNDERLINE : "";
+}
+
+static inline const char* ansi_add_underline_grey(void) {
+        return underline_enabled() ?
+                (colors_enabled() ? ANSI_ADD_UNDERLINE_GREY : ANSI_ADD_UNDERLINE) : "";
+}
+
+#define DEFINE_ANSI_FUNC_UNDERLINE(name, NAME)                          \
+        static inline const char* ansi_##name(void) {                   \
+                return underline_enabled() ? ANSI_##NAME##_UNDERLINE :  \
+                        colors_enabled() ? ANSI_##NAME : "";            \
+        }
+
+
+#define DEFINE_ANSI_FUNC_UNDERLINE_256(name, NAME, FALLBACK)                                                        \
+        static inline const char* ansi_##name(void) {                                                               \
+                switch (get_color_mode()) {                                                                         \
+                        case COLOR_OFF: return "";                                                                  \
+                        case COLOR_16: return underline_enabled() ? ANSI_##FALLBACK##_UNDERLINE : ANSI_##FALLBACK;  \
+                        default : return underline_enabled() ? ANSI_##NAME##_UNDERLINE: ANSI_##NAME;                \
+                }                                                                                                   \
+        }
+
+DEFINE_ANSI_FUNC(normal,            NORMAL);
+DEFINE_ANSI_FUNC(highlight,         HIGHLIGHT);
+DEFINE_ANSI_FUNC(black,             BLACK);
+DEFINE_ANSI_FUNC(red,               RED);
+DEFINE_ANSI_FUNC(green,             GREEN);
+DEFINE_ANSI_FUNC(yellow,            YELLOW);
+DEFINE_ANSI_FUNC(blue,              BLUE);
+DEFINE_ANSI_FUNC(magenta,           MAGENTA);
+DEFINE_ANSI_FUNC(cyan,              CYAN);
+DEFINE_ANSI_FUNC(white,             WHITE);
+DEFINE_ANSI_FUNC_256(grey,          GREY, BRIGHT_BLACK);
+
+DEFINE_ANSI_FUNC(bright_black,      BRIGHT_BLACK);
+DEFINE_ANSI_FUNC(bright_red,        BRIGHT_RED);
+DEFINE_ANSI_FUNC(bright_green,      BRIGHT_GREEN);
+DEFINE_ANSI_FUNC(bright_yellow,     BRIGHT_YELLOW);
+DEFINE_ANSI_FUNC(bright_blue,       BRIGHT_BLUE);
+DEFINE_ANSI_FUNC(bright_magenta,    BRIGHT_MAGENTA);
+DEFINE_ANSI_FUNC(bright_cyan,       BRIGHT_CYAN);
+DEFINE_ANSI_FUNC(bright_white,      BRIGHT_WHITE);
+
+DEFINE_ANSI_FUNC(highlight_black,       HIGHLIGHT_BLACK);
+DEFINE_ANSI_FUNC(highlight_red,         HIGHLIGHT_RED);
+DEFINE_ANSI_FUNC(highlight_green,       HIGHLIGHT_GREEN);
+DEFINE_ANSI_FUNC_256(highlight_yellow,  HIGHLIGHT_YELLOW, HIGHLIGHT_YELLOW_FALLBACK);
+DEFINE_ANSI_FUNC_256(highlight_yellow4, HIGHLIGHT_YELLOW4, HIGHLIGHT_YELLOW_FALLBACK);
+DEFINE_ANSI_FUNC(highlight_blue,        HIGHLIGHT_BLUE);
+DEFINE_ANSI_FUNC(highlight_magenta,     HIGHLIGHT_MAGENTA);
+DEFINE_ANSI_FUNC(highlight_cyan,        HIGHLIGHT_CYAN);
+DEFINE_ANSI_FUNC_256(highlight_grey,    HIGHLIGHT_GREY, HIGHLIGHT_GREY_FALLBACK);
+DEFINE_ANSI_FUNC(highlight_white,       HIGHLIGHT_WHITE);
+
+static inline const char* _ansi_highlight_yellow(void) {
+        return colors_enabled() ? _ANSI_HIGHLIGHT_YELLOW : "";
+}
+
+DEFINE_ANSI_FUNC_UNDERLINE(highlight_underline,             HIGHLIGHT);
+DEFINE_ANSI_FUNC_UNDERLINE_256(grey_underline,              GREY, BRIGHT_BLACK);
+DEFINE_ANSI_FUNC_UNDERLINE(highlight_red_underline,         HIGHLIGHT_RED);
+DEFINE_ANSI_FUNC_UNDERLINE(highlight_green_underline,       HIGHLIGHT_GREEN);
+DEFINE_ANSI_FUNC_UNDERLINE_256(highlight_yellow_underline,  HIGHLIGHT_YELLOW, HIGHLIGHT_YELLOW_FALLBACK);
+DEFINE_ANSI_FUNC_UNDERLINE(highlight_blue_underline,        HIGHLIGHT_BLUE);
+DEFINE_ANSI_FUNC_UNDERLINE(highlight_magenta_underline,     HIGHLIGHT_MAGENTA);
+DEFINE_ANSI_FUNC_UNDERLINE_256(highlight_grey_underline,    HIGHLIGHT_GREY, HIGHLIGHT_GREY_FALLBACK);
+
+static inline const char* ansi_highlight_green_red(bool b) {
+        return b ? ansi_highlight_green() : ansi_highlight_red();
+}
index 488ed2071382175ce3d8dbf40ffbed14982613d1..50e975e80df16a275c451e49bb46bd0068d95595 100644 (file)
@@ -3,6 +3,7 @@
 #include <stdio.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "build.h"
 #include "extract-word.h"
 #include "macro.h"
index 50b405b8438c1eb59849eadb17adee4515f61ed2..a8056d2635b288a578fa05fbce3b87636914b073 100644 (file)
@@ -16,6 +16,7 @@
 #include "sd-messages.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "argv-util.h"
 #include "env-util.h"
 #include "errno-util.h"
index 698d39d180b816c9992fc022c69cad28b0b60b1d..ffd687c8984d8f5cd74c13e1c975a4d0d089382d 100644 (file)
@@ -21,6 +21,7 @@
 #include <unistd.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "constants.h"
 #include "devnum-util.h"
 #include "env-util.h"
index f03e3985c651236db929f3248fd3b5ec7fa1342d..16f749f75cc8d114f80267b9918b5c48d6869709 100644 (file)
 #include "macro.h"
 #include "time-util.h"
 
-/* Regular colors */
-#define ANSI_BLACK   "\x1B[0;30m" /* Some type of grey usually. */
-#define ANSI_RED     "\x1B[0;31m"
-#define ANSI_GREEN   "\x1B[0;32m"
-#define ANSI_YELLOW  "\x1B[0;33m"
-#define ANSI_BLUE    "\x1B[0;34m"
-#define ANSI_MAGENTA "\x1B[0;35m"
-#define ANSI_CYAN    "\x1B[0;36m"
-#define ANSI_WHITE   "\x1B[0;37m" /* This is actually rendered as light grey, legible even on a white
-                                   * background. See ANSI_HIGHLIGHT_WHITE for real white. */
-
-#define ANSI_BRIGHT_BLACK   "\x1B[0;90m"
-#define ANSI_BRIGHT_RED     "\x1B[0;91m"
-#define ANSI_BRIGHT_GREEN   "\x1B[0;92m"
-#define ANSI_BRIGHT_YELLOW  "\x1B[0;93m"
-#define ANSI_BRIGHT_BLUE    "\x1B[0;94m"
-#define ANSI_BRIGHT_MAGENTA "\x1B[0;95m"
-#define ANSI_BRIGHT_CYAN    "\x1B[0;96m"
-#define ANSI_BRIGHT_WHITE   "\x1B[0;97m"
-
-#define ANSI_GREY    "\x1B[0;38;5;245m"
-
-/* Bold/highlighted */
-#define ANSI_HIGHLIGHT_BLACK    "\x1B[0;1;30m"
-#define ANSI_HIGHLIGHT_RED      "\x1B[0;1;31m"
-#define ANSI_HIGHLIGHT_GREEN    "\x1B[0;1;32m"
-#define _ANSI_HIGHLIGHT_YELLOW  "\x1B[0;1;33m" /* This yellow is currently not displayed well by some terminals */
-#define ANSI_HIGHLIGHT_BLUE     "\x1B[0;1;34m"
-#define ANSI_HIGHLIGHT_MAGENTA  "\x1B[0;1;35m"
-#define ANSI_HIGHLIGHT_CYAN     "\x1B[0;1;36m"
-#define ANSI_HIGHLIGHT_WHITE    "\x1B[0;1;37m"
-#define ANSI_HIGHLIGHT_YELLOW4  "\x1B[0;1;38:5:100m"
-#define ANSI_HIGHLIGHT_KHAKI3   "\x1B[0;1;38:5:185m"
-#define ANSI_HIGHLIGHT_GREY     "\x1B[0;1;38:5:245m"
-
-#define ANSI_HIGHLIGHT_YELLOW   ANSI_HIGHLIGHT_KHAKI3 /* Replacement yellow that is more legible */
-
-/* Underlined */
-#define ANSI_GREY_UNDERLINE              "\x1B[0;4;38:5:245m"
-#define ANSI_BRIGHT_BLACK_UNDERLINE      "\x1B[0;4;90m"
-#define ANSI_HIGHLIGHT_RED_UNDERLINE     "\x1B[0;1;4;31m"
-#define ANSI_HIGHLIGHT_GREEN_UNDERLINE   "\x1B[0;1;4;32m"
-#define ANSI_HIGHLIGHT_YELLOW_UNDERLINE  "\x1B[0;1;4;38:5:185m"
-#define ANSI_HIGHLIGHT_BLUE_UNDERLINE    "\x1B[0;1;4;34m"
-#define ANSI_HIGHLIGHT_MAGENTA_UNDERLINE "\x1B[0;1;4;35m"
-#define ANSI_HIGHLIGHT_GREY_UNDERLINE    "\x1B[0;1;4;38:5:245m"
-
-/* Other ANSI codes */
-#define ANSI_UNDERLINE "\x1B[0;4m"
-#define ANSI_ADD_UNDERLINE "\x1B[4m"
-#define ANSI_ADD_UNDERLINE_GREY ANSI_ADD_UNDERLINE "\x1B[58:5:245m"
-#define ANSI_HIGHLIGHT "\x1B[0;1;39m"
-#define ANSI_HIGHLIGHT_UNDERLINE "\x1B[0;1;4m"
-
-/* Fallback colors: 256 -> 16 */
-#define ANSI_HIGHLIGHT_GREY_FALLBACK             "\x1B[0;1;90m"
-#define ANSI_HIGHLIGHT_GREY_FALLBACK_UNDERLINE   "\x1B[0;1;4;90m"
-#define ANSI_HIGHLIGHT_YELLOW_FALLBACK           "\x1B[0;1;33m"
-#define ANSI_HIGHLIGHT_YELLOW_FALLBACK_UNDERLINE "\x1B[0;1;4;33m"
-
-/* Background colors */
-#define ANSI_BACKGROUND_BLUE "\x1B[44m"
-
-/* Reset/clear ANSI styles */
-#define ANSI_NORMAL "\x1B[0m"
-
 /* Erase characters until the end of the line */
 #define ANSI_ERASE_TO_END_OF_LINE "\x1B[K"
 
@@ -176,94 +110,6 @@ static inline bool colors_enabled(void) {
         return get_color_mode() != COLOR_OFF;
 }
 
-#define DEFINE_ANSI_FUNC(name, NAME)                            \
-        static inline const char *ansi_##name(void) {           \
-                return colors_enabled() ? ANSI_##NAME : "";     \
-        }
-
-#define DEFINE_ANSI_FUNC_256(name, NAME, FALLBACK)             \
-        static inline const char *ansi_##name(void) {          \
-                switch (get_color_mode()) {                    \
-                        case COLOR_OFF: return "";             \
-                        case COLOR_16: return ANSI_##FALLBACK; \
-                        default : return ANSI_##NAME;          \
-                }                                              \
-        }
-
-static inline const char* ansi_underline(void) {
-        return underline_enabled() ? ANSI_UNDERLINE : "";
-}
-
-static inline const char* ansi_add_underline(void) {
-        return underline_enabled() ? ANSI_ADD_UNDERLINE : "";
-}
-
-static inline const char* ansi_add_underline_grey(void) {
-        return underline_enabled() ?
-                (colors_enabled() ? ANSI_ADD_UNDERLINE_GREY : ANSI_ADD_UNDERLINE) : "";
-}
-
-#define DEFINE_ANSI_FUNC_UNDERLINE(name, NAME)                          \
-        static inline const char *ansi_##name(void) {                   \
-                return underline_enabled() ? ANSI_##NAME##_UNDERLINE :  \
-                        colors_enabled() ? ANSI_##NAME : "";            \
-        }
-
-
-#define DEFINE_ANSI_FUNC_UNDERLINE_256(name, NAME, FALLBACK)                                                        \
-        static inline const char *ansi_##name(void) {                                                               \
-                switch (get_color_mode()) {                                                                         \
-                        case COLOR_OFF: return "";                                                                  \
-                        case COLOR_16: return underline_enabled() ? ANSI_##FALLBACK##_UNDERLINE : ANSI_##FALLBACK;  \
-                        default : return underline_enabled() ? ANSI_##NAME##_UNDERLINE: ANSI_##NAME;                \
-                }                                                                                                   \
-        }
-
-DEFINE_ANSI_FUNC(normal,            NORMAL);
-DEFINE_ANSI_FUNC(highlight,         HIGHLIGHT);
-DEFINE_ANSI_FUNC(black,             BLACK);
-DEFINE_ANSI_FUNC(red,               RED);
-DEFINE_ANSI_FUNC(green,             GREEN);
-DEFINE_ANSI_FUNC(yellow,            YELLOW);
-DEFINE_ANSI_FUNC(blue,              BLUE);
-DEFINE_ANSI_FUNC(magenta,           MAGENTA);
-DEFINE_ANSI_FUNC(cyan,              CYAN);
-DEFINE_ANSI_FUNC(white,             WHITE);
-DEFINE_ANSI_FUNC_256(grey,          GREY, BRIGHT_BLACK);
-
-DEFINE_ANSI_FUNC(bright_black,      BRIGHT_BLACK);
-DEFINE_ANSI_FUNC(bright_red,        BRIGHT_RED);
-DEFINE_ANSI_FUNC(bright_green,      BRIGHT_GREEN);
-DEFINE_ANSI_FUNC(bright_yellow,     BRIGHT_YELLOW);
-DEFINE_ANSI_FUNC(bright_blue,       BRIGHT_BLUE);
-DEFINE_ANSI_FUNC(bright_magenta,    BRIGHT_MAGENTA);
-DEFINE_ANSI_FUNC(bright_cyan,       BRIGHT_CYAN);
-DEFINE_ANSI_FUNC(bright_white,      BRIGHT_WHITE);
-
-DEFINE_ANSI_FUNC(highlight_black,       HIGHLIGHT_BLACK);
-DEFINE_ANSI_FUNC(highlight_red,         HIGHLIGHT_RED);
-DEFINE_ANSI_FUNC(highlight_green,       HIGHLIGHT_GREEN);
-DEFINE_ANSI_FUNC_256(highlight_yellow,  HIGHLIGHT_YELLOW, HIGHLIGHT_YELLOW_FALLBACK);
-DEFINE_ANSI_FUNC_256(highlight_yellow4, HIGHLIGHT_YELLOW4, HIGHLIGHT_YELLOW_FALLBACK);
-DEFINE_ANSI_FUNC(highlight_blue,        HIGHLIGHT_BLUE);
-DEFINE_ANSI_FUNC(highlight_magenta,     HIGHLIGHT_MAGENTA);
-DEFINE_ANSI_FUNC(highlight_cyan,        HIGHLIGHT_CYAN);
-DEFINE_ANSI_FUNC_256(highlight_grey,    HIGHLIGHT_GREY, HIGHLIGHT_GREY_FALLBACK);
-DEFINE_ANSI_FUNC(highlight_white,       HIGHLIGHT_WHITE);
-
-static inline const char* _ansi_highlight_yellow(void) {
-        return colors_enabled() ? _ANSI_HIGHLIGHT_YELLOW : "";
-}
-
-DEFINE_ANSI_FUNC_UNDERLINE(highlight_underline,             HIGHLIGHT);
-DEFINE_ANSI_FUNC_UNDERLINE_256(grey_underline,              GREY, BRIGHT_BLACK);
-DEFINE_ANSI_FUNC_UNDERLINE(highlight_red_underline,         HIGHLIGHT_RED);
-DEFINE_ANSI_FUNC_UNDERLINE(highlight_green_underline,       HIGHLIGHT_GREEN);
-DEFINE_ANSI_FUNC_UNDERLINE_256(highlight_yellow_underline,  HIGHLIGHT_YELLOW, HIGHLIGHT_YELLOW_FALLBACK);
-DEFINE_ANSI_FUNC_UNDERLINE(highlight_blue_underline,        HIGHLIGHT_BLUE);
-DEFINE_ANSI_FUNC_UNDERLINE(highlight_magenta_underline,     HIGHLIGHT_MAGENTA);
-DEFINE_ANSI_FUNC_UNDERLINE_256(highlight_grey_underline,    HIGHLIGHT_GREY, HIGHLIGHT_GREY_FALLBACK);
-
 int get_ctty_devnr(pid_t pid, dev_t *ret);
 int get_ctty(pid_t, dev_t *ret_devnr, char **ret);
 
@@ -281,10 +127,6 @@ int vt_release(int fd, bool restore_vt);
 
 void get_log_colors(int priority, const char **on, const char **off, const char **highlight);
 
-static inline const char* ansi_highlight_green_red(bool b) {
-        return b ? ansi_highlight_green() : ansi_highlight_red();
-}
-
 /* This assumes there is a 'tty' group */
 #define TTY_MODE 0620
 
index dbda6e54573bca8adc2c2f49d451df09b9b579fa..75c26df52f02e27b517b1feffcf9f1a8b2cf24ab 100644 (file)
@@ -2,6 +2,7 @@
 
 #include <sys/reboot.h>
 
+#include "ansi-color.h"
 #include "bus-error.h"
 #include "bus-util.h"
 #include "emergency-action.h"
index a877f9f06f340127574db461b9f7ec6af803fff8..21083497c09153b9fc03ac807c016cc7de8d8f8e 100644 (file)
@@ -6,6 +6,7 @@
 #include "sd-messages.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "async.h"
 #include "cgroup.h"
 #include "dbus-job.h"
index ab6e699d33e9861f41dcf6583470a8e70af11adf..9d48768d876310eaaab99caf54a0fafea44a4356 100644 (file)
@@ -4,6 +4,7 @@
 #include <unistd.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "bus-common-errors.h"
 #include "bus-error.h"
 #include "dbus-unit.h"
index c281a29391df139f04881969e623a5f91a2d448e..2d750b7ef482ba54e02f9d476ae454a67781963e 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "all-units.h"
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "bpf-firewall.h"
 #include "bpf-foreign.h"
 #include "bpf-socket-bind.h"
index c4bf1fab95946fd84eb9fcc4c10da9af716f0e73..0b1e380e0654dadf8835b1ea670a5d036f2ef867 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "cryptenroll-recovery.h"
 #include "glyph-util.h"
 #include "json-util.h"
index 015d2654350625e6bdb81c354a4302d0fff0fc39..b5c57e14a8a5754205764e70630676d8f5b99ca0 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "errno-util.h"
 #include "glyph-util.h"
 #include "homectl-recovery-key.h"
index cdb1d6246a3a890f23aeaa80e4df43405dc8eef4..1e82e84d7d98f25c7af3bfd6628ba15f5fdf66b0 100644 (file)
@@ -7,6 +7,7 @@
 #include "sd-id128.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "build.h"
 #include "discover-image.h"
 #include "export-raw.h"
index 44fc5be8a5cbfed5ba15a04e9e67cd67a109da0b..e74d36288af0e82bed7a2c877740eb78dd56de93 100644 (file)
@@ -4,6 +4,7 @@
 #include <locale.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "build.h"
 #include "btrfs-util.h"
 #include "discover-image.h"
index 889cd63ff0d87bafc249a62c3f7ee3f06ed1eb01..97db0b836a4908dba05810d1f7139ad17f62e158 100644 (file)
@@ -7,6 +7,7 @@
 #include "sd-id128.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "build.h"
 #include "discover-image.h"
 #include "env-util.h"
index 7c838a5307b4c694d5a408bd9dfebd5aab70cb66..46055ce5e73ab828a54e011b7b924e7efaccf04e 100644 (file)
@@ -7,6 +7,7 @@
 #include "sd-id128.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "build.h"
 #include "discover-image.h"
 #include "env-util.h"
index 10630f5e6cc47bff7625c7307704229fc9302b98..8167aef7f56f3e25a8cb36b36bc01e23c9957ea7 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "chattr-util.h"
 #include "errno-util.h"
 #include "fd-util.h"
index e8ffc72bb8ac34b0be181e5d0ae417702fa7d72f..9f07facad426c4e15f994b0b950acaa2c1ac3560 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "sd-event.h"
 
+#include "ansi-color.h"
 #include "fileio.h"
 #include "journalctl.h"
 #include "journalctl-filter.h"
index aa46fec91b92fa21477662b625e064bb9d13ea45..5fc3614afb719ee7249cbd182196b80817c56bb1 100644 (file)
@@ -3,6 +3,7 @@
 #include <sys/time.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "bus-dump.h"
 #include "bus-internal.h"
 #include "bus-message.h"
index e852591a89140baa6a5d10e795ff76f7829ebc67..0fb93340a6143b484df0aef197efaaed3b816f92 100644 (file)
@@ -6,6 +6,7 @@
 #include <unistd.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "compress.h"
 #include "fd-util.h"
 #include "fileio.h"
index 396ebe192cba93becc7ae64cb690c92020f6616a..dde40bf3774acf58dcc724af9c9ea558afc3f839 100644 (file)
@@ -4,6 +4,7 @@
 #include <stdio.h>
 #include <unistd.h>
 
+#include "ansi-color.h"
 #include "chattr-util.h"
 #include "fd-util.h"
 #include "iovec-util.h"
index 2219bf26cc79d13c5c360a60a75454fce887bb2e..98ffe4db5482b31bdb0c16aa01cb54b80e18e1cf 100644 (file)
@@ -10,6 +10,7 @@
 #include "sd-messages.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "errno-util.h"
 #include "escape.h"
 #include "ether-addr-util.h"
index 181e6c193df7ac45480fde3135956a5b8d741c45..76a2499561db12b3e01e0b202d66ffd1873ef77f 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "sd-varlink-idl.h"
 
+#include "ansi-color.h"
 #include "json-util.h"
 #include "memstream-util.h"
 #include "set.h"
index bf79dc2633ca33048226f0292a80fd054bc16431..778b31274d7ed83cc33da3bb39594c9cb9dd407e 100644 (file)
@@ -19,6 +19,7 @@
 #include <unistd.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "ask-password-api.h"
 #include "creds-util.h"
 #include "fd-util.h"
index 2e6ed362f28e4ca912d6b44bc50cfd264047cbbc..120f7201df8570d6494f3fe9d1667e0c2037a95b 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "sd-device.h"
 
+#include "ansi-color.h"
 #include "blockdev-list.h"
 #include "blockdev-util.h"
 #include "device-util.h"
index 8b462b562732493dadf110804484444c50a4be6a..4d6f2be3c48424f585151a2967c0924d9697b755 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "bus-locator.h"
 #include "bus-unit-procs.h"
 #include "glyph-util.h"
index 87177316da8f9c0c1e5f7c3ea328f98352ff45a5..33fe222730f02735f8c723cc3cf040ade8b92228 100644 (file)
@@ -7,6 +7,7 @@
 #include <stdlib.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "bus-error.h"
 #include "bus-util.h"
 #include "cgroup-show.h"
index 9eb16119059bd62d321de6a6cf44533e87b990ec..2c97c354ef08c73eaba7f58e8bfd20552d42592d 100644 (file)
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
+#include "ansi-color.h"
 #include "glyph-util.h"
 #include "terminal-util.h"
 
index 83eef7f7d8225a9b0ceb9dd2c5bc0e3b230c089e..3e11ba456f14113e3f6ced85139552a3eef9b43e 100644 (file)
@@ -17,6 +17,7 @@
 #include "sd-event.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "env-util.h"
 #include "errno-util.h"
 #include "extract-word.h"
index 10ed542df22f56809174df625ae8df7b3a5f7b91..36cd5dcd7cfefb2d2485c4855dcef72a5399b3c8 100644 (file)
@@ -5,6 +5,7 @@
 #if HAVE_QRENCODE
 #include <qrencode.h>
 
+#include "ansi-color.h"
 #include "dlfcn-util.h"
 #include "locale-util.h"
 #include "log.h"
index a9121f1035655426badaeea78db3779694b60ed0..3df9b7abdfffb315bc0d33fcf0922b03f4b9e532 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "locale-util.h"
 #include "sort-util.h"
 #include "special.h"
index fcfe2ac561b5926a87eb01f42a4de77bf514ca93..2fecf613179180e75834d635ddd91642b47e1528 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "bus-error.h"
 #include "bus-locator.h"
 #include "locale-util.h"
index 4407d2598a94027357e4f7d4ed870f6de53f868a..1fffceb38e0116de2f63c0c7c73ca7784911f404 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "sd-login.h"
 
+#include "ansi-color.h"
 #include "bus-map-properties.h"
 #include "hostname-util.h"
 #include "locale-util.h"
index 943d7ffec5262fb3809d2b56968e120440ed7fa7..975b3ebc54845a64522856518abc1a5100d068bc 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "bus-error.h"
 #include "bus-locator.h"
 #include "sort-util.h"
index 184468ed618c3dbd61030d3495e20d3df655e599..b4ccc8ebd76c2a92d45801316eed98cbb0c95283 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "sd-login.h"
 
+#include "ansi-color.h"
 #include "bus-error.h"
 #include "bus-locator.h"
 #include "format-table.h"
index 8068d77d1cd5b5791684dcfd05068530e45b4ee5..909f051cdef60ea0ac7f417093463f99b5224e34 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "sd-bus.h"
 
+#include "ansi-color.h"
 #include "bus-common-errors.h"
 #include "bus-error.h"
 #include "bus-locator.h"
index 66b3d340bb1f9c4bceba7011f5c083e5d207a6c2..d9232e4a17b6ad24a932d6eeeb7ff86b54e2f679 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "glyph-util.h"
 #include "sysupdate-update-set-flags.h"
 #include "terminal-util.h"
index 53bcc5d96580c6320e77ba6a85233c57b613c8cd..0756dff04b4e8a9a5510e8d50ec06875ccbc968a 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "ansi-color.h"
 #include "alloc-util.h"
 #include "string-util.h"
 #include "sysupdate-update-set.h"
index f1814768fd608e82a27958859eac3ebb60591e9d..d70b727cee71e356faa681e66800b39fa1e695ee 100644 (file)
@@ -3,6 +3,7 @@
 #include <stdio.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "constants.h"
 #include "escape.h"
 #include "string-util.h"
index fdd590107ee293d3b6815024c966853d89977265..e7cfeab6d00c003e6db641f3f712a61c5ed095f9 100644 (file)
@@ -9,6 +9,7 @@
 #include <unistd.h>
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "fd-util.h"
 #include "fs-util.h"
 #include "macro.h"
index 1d105047c903cf32502b13384058b2fe7b235837..2cdc3bd3057b3f2216ed824a2053ece331d4be0c 100644 (file)
@@ -13,6 +13,7 @@
 #include "sd-json.h"
 
 #include "alloc-util.h"
+#include "ansi-color.h"
 #include "device-enumerator-private.h"
 #include "device-private.h"
 #include "device-util.h"
index c8c23e811adf72e82927d36d64c4ceed7d65cb74..ff4625c3be052dfdd05be1ef943c8bf36c8b7c45 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "sd-device.h"
 
+#include "ansi-color.h"
 #include "device-private.h"
 #include "device-util.h"
 #include "format-util.h"