chiark / gitweb /
vconsole: more completely cover fedora legacy vconsole configuration
authorLennart Poettering <lennart@poettering.net>
Fri, 17 Sep 2010 23:19:46 +0000 (01:19 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 17 Sep 2010 23:19:46 +0000 (01:19 +0200)
src/vconsole-setup.c

index cb8fc43d2f43b98ee947e49aa003335f69745f22..1412b20943eb6053bf8f203af93e3e883d168c86 100644 (file)
@@ -171,6 +171,8 @@ int main(int argc, char **argv) {
 #ifdef TARGET_FEDORA
         if ((r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
                                 "SYSFONT", &vc_font,
 #ifdef TARGET_FEDORA
         if ((r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
                                 "SYSFONT", &vc_font,
+                                "SYSFONTACM", &vc_font_map,
+                                "UNIMAP", &vc_font_unimap,
                                 NULL)) < 0) {
 
                 if (r != -ENOENT)
                                 NULL)) < 0) {
 
                 if (r != -ENOENT)
@@ -179,11 +181,24 @@ int main(int argc, char **argv) {
 
         if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
                                 "KEYTABLE", &vc_keymap,
 
         if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
                                 "KEYTABLE", &vc_keymap,
+                                "KEYMAP", &vc_keymap,
                                 NULL)) < 0) {
 
                 if (r != -ENOENT)
                         log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
         }
                                 NULL)) < 0) {
 
                 if (r != -ENOENT)
                         log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
         }
+
+        if (access("/etc/sysconfig/console/default.kmap", F_OK) >= 0) {
+                char *t;
+
+                if (!(t = strdup("/etc/sysconfig/console/default.kmap"))) {
+                        log_error("Out of memory.");
+                        goto finish;
+                }
+
+                free(vc_keymap);
+                vc_keymap = t;
+        }
 #endif
 
         /* Override distribution-specific options with the
 #endif
 
         /* Override distribution-specific options with the