- 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,
+ "SYSFONTACM", &vc_font_map,
+ "UNIMAP", &vc_font_unimap,
+ 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,
+ "KEYMAP", &vc_keymap,
+ 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
+ * distribution-independent configuration */
+ if ((r = parse_env_file("/etc/vconsole", NEWLINE,
+ "KEYMAP", &vc_keymap,
+ "FONT", &vc_font,
+ "FONT_MAP", &vc_font_map,
+ "FONT_UNIMAP", &vc_font_unimap,
+ NULL)) < 0) {