chiark / gitweb /
Prep v231: Apply missing fixes from upstream (1/6) src/basic
[elogind.git] / src / basic / terminal-util.c
index 40e3c400f9adbb984b6369ba04481a96e76c37a1..465326cfcf1845fc808a9222b76986e2010e2bb0 100644 (file)
@@ -1203,6 +1203,19 @@ int open_terminal_in_namespace(pid_t pid, const char *name, int mode) {
 }
 #endif // 0
 
+bool terminal_is_dumb(void) {
+        const char *e;
+
+        if (!on_tty())
+                return true;
+
+        e = getenv("TERM");
+        if (!e)
+                return true;
+
+        return streq(e, "dumb");
+}
+
 bool colors_enabled(void) {
         static int enabled = -1;
 
@@ -1212,10 +1225,8 @@ bool colors_enabled(void) {
                 colors = getenv("SYSTEMD_COLORS");
                 if (colors)
                         enabled = parse_boolean(colors) != 0;
-                else if (streq_ptr(getenv("TERM"), "dumb"))
-                        enabled = false;
                 else
-                        enabled = on_tty();
+                        enabled = !terminal_is_dumb();
         }
 
         return enabled;