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:
8b89c78
)
logind: minor clean-ups
author
Lennart Poettering
<lennart@poettering.net>
Wed, 21 Oct 2015 17:36:22 +0000
(19:36 +0200)
committer
Sven Eden
<yamakuzure@gmx.net>
Wed, 26 Apr 2017 10:58:55 +0000
(12:58 +0200)
src/login/logind-session.c
patch
|
blob
|
history
diff --git
a/src/login/logind-session.c
b/src/login/logind-session.c
index ca1ea5868f9f7be5f6446e6ed57d694a7f7cd92b..9cde4cc68b3d9fa8daf4e207060b54166507f441 100644
(file)
--- a/
src/login/logind-session.c
+++ b/
src/login/logind-session.c
@@
-1154,9
+1154,13
@@
error:
}
void session_restore_vt(Session *s) {
}
void session_restore_vt(Session *s) {
+
+ static const struct vt_mode mode = {
+ .mode = VT_AUTO,
+ };
+
_cleanup_free_ char *utf8 = NULL;
_cleanup_free_ char *utf8 = NULL;
- int vt, kb = K_XLATE;
- struct vt_mode mode = { 0 };
+ int vt, kb, old_fd;
/* We need to get a fresh handle to the virtual terminal,
* since the old file-descriptor is potentially in a hung-up
/* We need to get a fresh handle to the virtual terminal,
* since the old file-descriptor is potentially in a hung-up
@@
-1164,7
+1168,7
@@
void session_restore_vt(Session *s) {
* little dance to avoid having the terminal be available
* for reuse before we've cleaned it up.
*/
* little dance to avoid having the terminal be available
* for reuse before we've cleaned it up.
*/
-
int
old_fd = s->vtfd;
+ old_fd = s->vtfd;
s->vtfd = -1;
vt = session_open_vt(s);
s->vtfd = -1;
vt = session_open_vt(s);
@@
-1177,13
+1181,13
@@
void session_restore_vt(Session *s) {
if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1')
kb = K_UNICODE;
if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1')
kb = K_UNICODE;
+ else
+ kb = K_XLATE;
(void) ioctl(vt, KDSKBMODE, kb);
(void) ioctl(vt, KDSKBMODE, kb);
- mode.mode = VT_AUTO;
(void) ioctl(vt, VT_SETMODE, &mode);
(void) ioctl(vt, VT_SETMODE, &mode);
-
- fchown(vt, 0, -1);
+ (void) fchown(vt, 0, (gid_t) -1);
s->vtfd = safe_close(s->vtfd);
}
s->vtfd = safe_close(s->vtfd);
}