chiark / gitweb /
vconsole: fall back to fedora specific configuration
authorLennart Poettering <lennart@poettering.net>
Wed, 15 Sep 2010 23:58:16 +0000 (01:58 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 15 Sep 2010 23:58:16 +0000 (01:58 +0200)
src/vconsole-setup.c

index 8e4fedef0ed779b9856720888c01dd3722e32d2e..cb8fc43d2f43b98ee947e49aa003335f69745f22 100644 (file)
@@ -168,31 +168,47 @@ int main(int argc, char **argv) {
         if (!(utf8 = is_locale_utf8()))
                 disable_utf8(fd);
 
-        if ((r = parse_env_file(
-                             "/etc/vconsole",
-                             NEWLINE,
-                             "VCONSOLE_KEYMAP", &vc_keymap,
-                             "VCONSOLE_FONT", &vc_font,
-                             "VCONSOLE_FONT_MAP", &vc_font_map,
-                             "VCONSOLE_FONT_UNIMAP", &vc_font_unimap,
-                             NULL)) < 0) {
+#ifdef TARGET_FEDORA
+        if ((r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
+                                "SYSFONT", &vc_font,
+                                NULL)) < 0) {
+
+                if (r != -ENOENT)
+                        log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
+        }
+
+        if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
+                                "KEYTABLE", &vc_keymap,
+                                NULL)) < 0) {
+
+                if (r != -ENOENT)
+                        log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
+        }
+#endif
+
+        /* Override distribution-specific options with the
+         * distribution-independent configuration */
+        if ((r = parse_env_file("/etc/vconsole", NEWLINE,
+                                "VCONSOLE_KEYMAP", &vc_keymap,
+                                "VCONSOLE_FONT", &vc_font,
+                                "VCONSOLE_FONT_MAP", &vc_font_map,
+                                "VCONSOLE_FONT_UNIMAP", &vc_font_unimap,
+                                NULL)) < 0) {
 
                 if (r != -ENOENT)
                         log_warning("Failed to read /etc/vconsole: %s", strerror(-r));
         }
 
-        if ((r = parse_env_file(
-                             "/proc/cmdline",
-                             WHITESPACE,
+        if ((r = parse_env_file("/proc/cmdline", WHITESPACE,
 #ifdef TARGET_FEDORA
-                             "SYSFONT", &vc_font,
-                             "KEYTABLE", &vc_keymap,
+                                "SYSFONT", &vc_font,
+                                "KEYTABLE", &vc_keymap,
 #endif
-                             "vconsole.keymap", &vc_keymap,
-                             "vconsole.font", &vc_font,
-                             "vconsole.font.map", &vc_font_map,
-                             "vconsole.font.unimap", &vc_font_unimap,
-                             NULL)) < 0) {
+                                "vconsole.keymap", &vc_keymap,
+                                "vconsole.font", &vc_font,
+                                "vconsole.font.map", &vc_font_map,
+                                "vconsole.font.unimap", &vc_font_unimap,
+                                NULL)) < 0) {
 
                 if (r != -ENOENT)
                         log_warning("Failed to read /proc/cmdline: %s", strerror(-r));