From: Lennart Poettering Date: Fri, 13 Jan 2012 20:56:28 +0000 (+0100) Subject: util: split out tty_is_vc_resolve() from default_term_for_tty() X-Git-Tag: v39~60 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=3043935f02da2e680b37cf282587106ad05440ee util: split out tty_is_vc_resolve() from default_term_for_tty() --- diff --git a/src/util.c b/src/util.c index a6cdfd5b5..745056556 100644 --- a/src/util.c +++ b/src/util.c @@ -4402,31 +4402,37 @@ int vtnr_from_tty(const char *tty) { return i; } -const char *default_term_for_tty(const char *tty) { +bool tty_is_vc_resolve(const char *tty) { char *active = NULL; - const char *term; + bool b; assert(tty); if (startswith(tty, "/dev/")) tty += 5; - /* Resolve where /dev/console is pointing when determining - * TERM */ + /* Resolve where /dev/console is pointing to */ if (streq(tty, "console")) if (read_one_line_file("/sys/class/tty/console/active", &active) >= 0) { /* If multiple log outputs are configured the * last one is what /dev/console points to */ - if ((tty = strrchr(active, ' '))) + tty = strrchr(active, ' '); + if (tty) tty++; else tty = active; } - term = tty_is_vc(tty) ? "TERM=linux" : "TERM=vt100"; + b = tty_is_vc(tty); free(active); - return term; + return b; +} + +const char *default_term_for_tty(const char *tty) { + assert(tty); + + return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt100"; } bool dirent_is_file(const struct dirent *de) { diff --git a/src/util.h b/src/util.h index a52ac64ee..e6ffad6c2 100644 --- a/src/util.h +++ b/src/util.h @@ -411,6 +411,7 @@ char *fstab_node_to_udev_node(const char *p); void filter_environ(const char *prefix); bool tty_is_vc(const char *tty); +bool tty_is_vc_resolve(const char *tty); int vtnr_from_tty(const char *tty); const char *default_term_for_tty(const char *tty);