void load_key_defs (void) { char *libfile = concat_dir_and_file (mc_home, "mc.lib"); load_keys_from_section (getenv ("TERM"), profile_name); load_keys_from_section ("general", profile_name); load_keys_from_section (getenv ("TERM"), libfile); load_keys_from_section ("general", libfile); /* We don't want a huge database loaded in core */ free_profile_name (libfile); free (libfile); }
static void load_keys_from_section (const char *terminal, mc_config_t * cfg) { char *section_name; gchar **profile_keys, **keys; char *valcopy, *value; long key_code; if (terminal == NULL) return; section_name = g_strconcat ("terminal:", terminal, (char *) NULL); keys = mc_config_get_keys (cfg, section_name, NULL); for (profile_keys = keys; *profile_keys != NULL; profile_keys++) { /* copy=other causes all keys from [terminal:other] to be loaded. */ if (g_ascii_strcasecmp (*profile_keys, "copy") == 0) { valcopy = mc_config_get_string (cfg, section_name, *profile_keys, ""); load_keys_from_section (valcopy, cfg); g_free (valcopy); continue; } key_code = lookup_key (*profile_keys, NULL); if (key_code != 0) { gchar **values; values = mc_config_get_string_list (cfg, section_name, *profile_keys, NULL); if (values != NULL) { gchar **curr_values; for (curr_values = values; *curr_values != NULL; curr_values++) { valcopy = convert_controls (*curr_values); define_sequence (key_code, valcopy, MCKEY_NOACTION); g_free (valcopy); } g_strfreev (values); } else { value = mc_config_get_string (cfg, section_name, *profile_keys, ""); valcopy = convert_controls (value); define_sequence (key_code, valcopy, MCKEY_NOACTION); g_free (valcopy); g_free (value); } } } g_strfreev (keys); g_free (section_name); }
void load_key_defs (void) { /* * Load keys from mc.lib before ${XDG_CONFIG_HOME}/mc/ini, so that the user * definitions override global settings. */ mc_config_t *mc_global_config; mc_global_config = mc_config_init (global_profile_name, FALSE); if (mc_global_config != NULL) { load_keys_from_section ("general", mc_global_config); load_keys_from_section (getenv ("TERM"), mc_global_config); mc_config_deinit (mc_global_config); } load_keys_from_section ("general", mc_main_config); load_keys_from_section (getenv ("TERM"), mc_main_config); }