From 752d6256e5204b958b0ef7905675a940b5e9172f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 12 May 2022 16:42:50 +0300 Subject: gentoo resync : 12.05.2022 --- sys-apps/systemd/files/251-rc2-colorterm.patch | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 sys-apps/systemd/files/251-rc2-colorterm.patch (limited to 'sys-apps/systemd/files') 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?= +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; -- cgit v1.2.3