From: Lennart Poettering Date: Wed, 14 Feb 2018 13:28:17 +0000 (+0100) Subject: terminal-util: add some explanatory comments X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=562c930b7e4c8de193bbf56cb28673399c11a38e;p=elogind.git terminal-util: add some explanatory comments --- diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c index 7eb91a6e7..31415024f 100644 --- a/src/basic/terminal-util.c +++ b/src/basic/terminal-util.c @@ -70,6 +70,9 @@ static volatile int cached_underline_enabled = -1; int chvt(int vt) { _cleanup_close_ int fd; + /* Switch to the specified vt number. If the VT is specified <= 0 switch to the VT the kernel log messages go, + * if that's configured. */ + fd = open_terminal("/dev/tty0", O_RDWR|O_NOCTTY|O_CLOEXEC|O_NONBLOCK); if (fd < 0) return -errno; @@ -1219,6 +1222,12 @@ bool terminal_is_dumb(void) { bool colors_enabled(void) { + /* Returns true if colors are considered supported on our stdout. For that we check $SYSTEMD_COLORS first + * (which is the explicit way to turn off/on colors). If that didn't work we turn off colors unless we are on a + * TTY. And if we are on a TTY we turn it off if $TERM is set to "dumb". There's one special tweak though: if + * we are PID 1 then we do not check whether we are connected to a TTY, because we don't keep /dev/console open + * continously due to fear of SAK, and hence things are a bit weird. */ + if (cached_colors_enabled < 0) { #if 0 /// elogind does not allow such forcing, and we are never init! int val;