mirror of
https://github.com/systemd/systemd.git
synced 2024-10-30 06:25:37 +03:00
shared/terminal-util: don't use $COLORTERM to force colors
Fixup for a5efbf468c
: 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.
This commit is contained in:
parent
e447f9ac0b
commit
34c2d32cf9
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user