summaryrefslogtreecommitdiff
path: root/sys-apps/systemd/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-05-12 16:42:50 +0300
committerV3n3RiX <venerix@koprulu.sector>2022-05-12 16:42:50 +0300
commit752d6256e5204b958b0ef7905675a940b5e9172f (patch)
tree330d16e6362a49cbed8875a777fe641a43376cd3 /sys-apps/systemd/files
parent0c100b7dd2b30e75b799d806df4ef899fd98e1ea (diff)
gentoo resync : 12.05.2022
Diffstat (limited to 'sys-apps/systemd/files')
-rw-r--r--sys-apps/systemd/files/251-rc2-colorterm.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/sys-apps/systemd/files/251-rc2-colorterm.patch b/sys-apps/systemd/files/251-rc2-colorterm.patch
new file mode 100644
index 000000000000..167329b63cde
--- /dev/null
+++ b/sys-apps/systemd/files/251-rc2-colorterm.patch
@@ -0,0 +1,57 @@
+From 34c2d32cf97ddc41348960687e52db6637faf1df Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
+Date: Fri, 6 May 2022 18:19:21 +0200
+Subject: [PATCH] shared/terminal-util: don't use $COLORTERM to force colors
+
+Fixup for a5efbf468c96190c9562bc8121eda32310dfd112: if $COLORTERM was set, we'd
+unconditionally turn on colors, which is unexpected and wrong. It even breaks
+our own tests when executed in gnome-terminal.
+---
+ src/basic/terminal-util.c | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
+diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c
+index 8ddcfe23230f..a142ba2dfb51 100644
+--- a/src/basic/terminal-util.c
++++ b/src/basic/terminal-util.c
+@@ -1278,12 +1278,7 @@ ColorMode get_color_mode(void) {
+ /* We only check for the presence of the variable; value is ignored. */
+ cached_color_mode = COLOR_OFF;
+
+- else if (STRPTR_IN_SET(getenv("COLORTERM"),
+- "truecolor",
+- "24bit"))
+- cached_color_mode = COLOR_24BIT;
+-
+- else if (getpid_cached() == 1)
++ else if (getpid_cached() == 1) {
+ /* PID1 outputs to the console without holding it open all the time.
+ *
+ * Note that the Linux console can only display 16 colors. We still enable 256 color
+@@ -1292,9 +1287,23 @@ ColorMode get_color_mode(void) {
+ * map them to the closest color in the 16 color palette (since kernel 3.16). Doing
+ * 256 colors is nice for people who invoke systemd in a container or via a serial
+ * link or such, and use a true 256 color terminal to do so. */
+- cached_color_mode = getenv_terminal_is_dumb() ? COLOR_OFF : COLOR_256;
+- else
+- cached_color_mode = terminal_is_dumb() ? COLOR_OFF : COLOR_256;
++ if (getenv_terminal_is_dumb())
++ cached_color_mode = COLOR_OFF;
++ } else {
++ if (terminal_is_dumb())
++ cached_color_mode = COLOR_OFF;
++ }
++
++ if (cached_color_mode < 0) {
++ /* We failed to figure out any reason to *disable* colors.
++ * Let's see how many colors we shall use. */
++ if (STRPTR_IN_SET(getenv("COLORTERM"),
++ "truecolor",
++ "24bit"))
++ cached_color_mode = COLOR_24BIT;
++ else
++ cached_color_mode = COLOR_256;
++ }
+ }
+
+ return cached_color_mode;