vconsole: don't set console font/keymap if settings are empty
https://bugs.freedesktop.org/show_bug.cgi?id=36052 If KEYMAP= is set to the empty string in /etc/vconsole leave the kernel keymap loaded. Similar for FONT=.
This commit is contained in:
parent
0c749d504e
commit
944d4c91e6
|
@ -83,6 +83,12 @@ static int load_keymap(const char *vc, const char *map, const char *map_toggle,
|
|||
int i = 0;
|
||||
pid_t pid;
|
||||
|
||||
if (isempty(map)) {
|
||||
/* An empty map means kernel map */
|
||||
*_pid = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
args[i++] = KBD_LOADKEYS;
|
||||
args[i++] = "-q";
|
||||
args[i++] = "-C";
|
||||
|
@ -111,6 +117,12 @@ static int load_font(const char *vc, const char *font, const char *map, const ch
|
|||
int i = 0;
|
||||
pid_t pid;
|
||||
|
||||
if (isempty(font)) {
|
||||
/* An empty font means kernel font */
|
||||
*_pid = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
args[i++] = KBD_SETFONT;
|
||||
args[i++] = "-C";
|
||||
args[i++] = vc;
|
||||
|
@ -155,7 +167,7 @@ int main(int argc, char **argv) {
|
|||
int r = EXIT_FAILURE;
|
||||
pid_t font_pid = 0, keymap_pid = 0;
|
||||
|
||||
log_set_target(LOG_TARGET_SYSLOG_OR_KMSG);
|
||||
log_set_target(LOG_TARGET_AUTO);
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
|
||||
|
@ -176,6 +188,16 @@ int main(int argc, char **argv) {
|
|||
|
||||
utf8 = is_locale_utf8();
|
||||
|
||||
vc_keymap = strdup("us");
|
||||
vc_font = strdup(DEFAULT_FONT);
|
||||
|
||||
if (!vc_keymap || !vc_font) {
|
||||
log_error("Failed to allocate strings.");
|
||||
goto finish;
|
||||
}
|
||||
|
||||
r = 0;
|
||||
|
||||
if (detect_container(NULL) <= 0)
|
||||
if ((r = parse_env_file("/proc/cmdline", WHITESPACE,
|
||||
#if defined(TARGET_FEDORA) || defined(TARGET_MEEGO)
|
||||
|
@ -410,15 +432,7 @@ int main(int argc, char **argv) {
|
|||
#endif
|
||||
}
|
||||
|
||||
if (!vc_keymap)
|
||||
vc_keymap = strdup("us");
|
||||
if (!vc_font)
|
||||
vc_font = strdup(DEFAULT_FONT);
|
||||
|
||||
if (!vc_keymap || !vc_font) {
|
||||
log_error("Failed to allocate strings.");
|
||||
goto finish;
|
||||
}
|
||||
r = EXIT_FAILURE;
|
||||
|
||||
if (!utf8)
|
||||
disable_utf8(fd);
|
||||
|
|
Loading…
Reference in a new issue