chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2633eb8
)
util: when determining the right TERM for /dev/console consult /sys/class/tty/console...
author
Lennart Poettering
<lennart@poettering.net>
Sun, 13 Feb 2011 18:01:47 +0000
(19:01 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Sun, 13 Feb 2011 18:01:47 +0000
(19:01 +0100)
src/util.c
patch
|
blob
|
history
diff --git
a/src/util.c
b/src/util.c
index 09c13143c6bf528afaa7e3f551bac6d43159d878..e78063c5aadc42548c26baca9c26e2a34b81fea0 100644
(file)
--- a/
src/util.c
+++ b/
src/util.c
@@
-3550,18
+3550,28
@@
void filter_environ(const char *prefix) {
}
const char *default_term_for_tty(const char *tty) {
}
const char *default_term_for_tty(const char *tty) {
+ char *active = NULL;
+ const char *term;
+
assert(tty);
if (startswith(tty, "/dev/"))
tty += 5;
assert(tty);
if (startswith(tty, "/dev/"))
tty += 5;
- if (startswith(tty, "tty") &&
- tty[3] >= '0' && tty[3] <= '9')
- return "TERM=linux";
+ /* Resolve where /dev/console is pointing when determining
+ * TERM */
+ if (streq(tty, "console"))
+ if (read_one_line_file("/sys/class/tty/console/active", &active) >= 0) {
+ truncate_nl(active);
+ tty = active;
+ }
+
+ term = (startswith(tty, "tty") &&
+ tty[3] >= '0' && tty[3] <= '9') ? "TERM=linux" : "TERM=vt100";
- /* FIXME: Proper handling of /dev/console would be cool */
+ free(active);
- return
"TERM=vt100"
;
+ return
term
;
}
bool running_in_vm(void) {
}
bool running_in_vm(void) {