GKeyFile *desmume_config_read_file() { gchar *config_file; GKeyFile *keyfile; GError *error = NULL; gboolean ret; config_file = g_build_filename(g_get_home_dir(), desmume_config_file, NULL); keyfile = g_key_file_new(); ret = g_key_file_load_from_file(keyfile, config_file, G_KEY_FILE_NONE, &error); if (!ret) { g_error_free(error); } g_free(config_file); load_default_config(gtk_kb_cfg); desmume_config_read_keys(keyfile); desmume_config_read_joykeys(keyfile); return keyfile; }
GKeyFile *desmume_config_read_file(const u16 *kb_cfg) { gchar *config_file, *config_dir, *old_config_file; GKeyFile *keyfile; GError *error = NULL; gboolean ret; old_config_file = g_build_filename(g_get_home_dir(), desmume_old_config_file, NULL); config_file = g_build_filename(g_get_user_config_dir(), desmume_config_dir, desmume_config_file, NULL); config_dir = g_build_filename(g_get_user_config_dir(), desmume_config_dir, NULL); g_mkdir_with_parents(config_dir, 0755); if (!g_file_test(config_file, G_FILE_TEST_IS_REGULAR) && g_file_test(old_config_file, G_FILE_TEST_IS_REGULAR)) { ret = g_rename(old_config_file, config_file); if (ret) { g_printerr("Failed to move old config file %s to new location %s \n", old_config_file, config_file); } } keyfile = g_key_file_new(); ret = g_key_file_load_from_file(keyfile, config_file, G_KEY_FILE_NONE, &error); if (!ret) { g_error_free(error); } g_free(config_file); g_free(config_dir); g_free(old_config_file); load_default_config(kb_cfg); desmume_config_read_keys(keyfile); desmume_config_read_joykeys(keyfile); return keyfile; }