diff --git a/configuration.c b/configuration.c index e424969b39..77910c8e8a 100644 --- a/configuration.c +++ b/configuration.c @@ -1656,7 +1656,7 @@ bool config_load_override(void) settings_t *settings = config_get_ptr(); //early return in case a library isn't loaded - if(!global->system.info.library_name || !strcmp(global->system.info.library_name,"No Core")) + if (!global->system.info.library_name || !strcmp(global->system.info.library_name,"No Core")) return false; RARCH_LOG("Game name: %s\n",global->basename); @@ -1701,6 +1701,11 @@ bool config_load_override(void) // If a core override exists, add it's location to append_config_path if (new_conf) { + if (settings->core_specific_config) + { + RARCH_LOG("Can't use overrides in conjunction with per-core configs, disabling overrides\n"); + return false; + } RARCH_LOG("Core-specific overrides found at %s. Appending.\n", core_path); strlcpy(global->append_config_path, core_path, sizeof(global->append_config_path)); should_append = true; @@ -1716,8 +1721,13 @@ bool config_load_override(void) // If a game override exists, add it's location to append_config_path if (new_conf) { + if (settings->core_specific_config) + { + RARCH_LOG("Can't use overrides in conjunction with per-core configs, disabling overrides\n"); + return false; + } RARCH_LOG("Game-specific overrides found at %s. Appending.\n", game_path); - if(should_append) + if (should_append) { strlcat(global->append_config_path, "|", sizeof(global->append_config_path)); strlcat(global->append_config_path, game_path, sizeof(global->append_config_path)); @@ -1731,10 +1741,13 @@ bool config_load_override(void) RARCH_LOG("No game-specific overrides found at %s.\n", game_path); // Re-load the configuration with any overrides that might have been found - if(should_append) + if (should_append) { - if(config_load_file(global->config_path, false)) + if (config_load_file(global->config_path, false)) + { + rarch_main_msg_queue_push("Configuration override loaded", 1, 100, true); return true; + } } return false; @@ -1788,7 +1801,7 @@ bool config_load_remap(void) settings_t *settings = config_get_ptr(); /* config pointer */ //early return in case a library isn't loaded or remapping is disabled - if(!global->system.info.library_name || !strcmp(global->system.info.library_name,"No Core")) + if (!global->system.info.library_name || !strcmp(global->system.info.library_name,"No Core")) return false; RARCH_LOG("Game name: %s\n",global->basename); @@ -1824,10 +1837,13 @@ bool config_load_remap(void) if (new_conf) { RARCH_LOG("Game-specific remap found at %s. Appending.\n", game_path); - if(input_remapping_load_file(game_path)) + if (input_remapping_load_file(game_path)) + { + rarch_main_msg_queue_push("Game remap file loaded", 1, 100, true); return true; + } } - else + else { RARCH_LOG("No core-specific remap found at %s.\n", core_path); *settings->input.remapping_path= '\0'; @@ -1843,8 +1859,11 @@ bool config_load_remap(void) if (new_conf) { RARCH_LOG("Core-specific remap found at %s. Loading.\n", core_path); - if(input_remapping_load_file(core_path)) + if (input_remapping_load_file(core_path)) + { + rarch_main_msg_queue_push("Core remap file loaded", 1, 100, true); return true; + } } else { @@ -1852,7 +1871,6 @@ bool config_load_remap(void) *settings->input.remapping_path= '\0'; input_remapping_set_defaults(); } - new_conf = NULL; @@ -2131,6 +2149,9 @@ bool config_save_file(const char *path) settings->load_dummy_on_core_shutdown); config_set_bool(conf, "fps_show", settings->fps_show); config_set_bool(conf, "ui_menubar_enable", settings->ui.menubar_enable); + config_set_path(conf, "libretro_path", settings->libretro); + config_set_path(conf, "core_options_path", settings->core_options_path); + config_set_bool(conf, "suspend_screensaver_enable", settings->ui.suspend_screensaver_enable); config_set_path(conf, "libretro_directory", settings->libretro_directory); config_set_path(conf, "libretro_info_path", settings->libretro_info_path); diff --git a/input/input_remapping.c b/input/input_remapping.c index 32e401c4fd..37693a1744 100644 --- a/input/input_remapping.c +++ b/input/input_remapping.c @@ -69,9 +69,12 @@ bool input_remapping_load_file(const char *path) * @path : Path to remapping file (relative path). * * Saves remapping values to file. + * + * Returns: true (1) if successfull, otherwise false (0). **/ -void input_remapping_save_file(const char *path) +bool input_remapping_save_file(const char *path) { + bool ret; unsigned i, j; char buf[PATH_MAX_LENGTH]; char remap_file[PATH_MAX_LENGTH]; @@ -86,10 +89,10 @@ void input_remapping_save_file(const char *path) conf = config_file_new(remap_file); if (!conf) + { conf = config_file_new(NULL); - - if (!conf) - return; + return false; + } for (i = 0; i < settings->input.max_users; i++) { @@ -106,8 +109,10 @@ void input_remapping_save_file(const char *path) } } - config_file_write(conf, remap_file); + ret = config_file_write(conf, remap_file); config_file_free(conf); + + return ret; } void input_remapping_set_defaults(void) diff --git a/input/input_remapping.h b/input/input_remapping.h index 7a1ab57278..1e37fd2914 100644 --- a/input/input_remapping.h +++ b/input/input_remapping.h @@ -39,8 +39,10 @@ bool input_remapping_load_file(const char *path); * @path : Path to remapping file (relative path). * * Saves remapping values to file. + * + * Returns: true (1) if successfull, otherwise false (0). **/ -void input_remapping_save_file(const char *path); +bool input_remapping_save_file(const char *path); void input_remapping_set_defaults(void); diff --git a/menu/menu_entries_cbs_ok.c b/menu/menu_entries_cbs_ok.c index b6f48e0d38..2c49f26ffd 100644 --- a/menu/menu_entries_cbs_ok.c +++ b/menu/menu_entries_cbs_ok.c @@ -127,7 +127,7 @@ static int action_ok_shader_pass(const char *path, return menu_list_push_stack_refresh( menu->menu_list, - settings->video.shader_dir, + settings->video.shader_dir, label, type, idx); @@ -183,7 +183,7 @@ static int action_ok_shader_preset(const char *path, return menu_list_push_stack_refresh( menu->menu_list, - settings->video.shader_dir, + settings->video.shader_dir, label, type, idx); } @@ -528,14 +528,18 @@ static int action_ok_remap_file_save_core(const char *path, char directory[PATH_MAX_LENGTH]; char file[PATH_MAX_LENGTH]; - + fill_pathname_join(directory,settings->input_remapping_directory,core_name,PATH_MAX_LENGTH); fill_pathname_join(file,core_name,core_name,PATH_MAX_LENGTH); - + if(!path_file_exists(directory)) path_mkdir(directory); - - input_remapping_save_file(file); + + if(input_remapping_save_file(file)) + rarch_main_msg_queue_push("Remap file saved successfully", 1, 100, true); + else + rarch_main_msg_queue_push("Error saving remap file", 1, 100, true); + return 0; } @@ -547,20 +551,24 @@ static int action_ok_remap_file_save_game(const char *path, const char *core_name; core_name = global->system.info.library_name; - + const char *game_name; game_name = path_basename(global->basename); char directory[PATH_MAX_LENGTH]; char file[PATH_MAX_LENGTH]; - + fill_pathname_join(directory,settings->input_remapping_directory,core_name,PATH_MAX_LENGTH); fill_pathname_join(file,core_name,game_name,PATH_MAX_LENGTH); - + if(!path_file_exists(directory)) path_mkdir(directory); - - input_remapping_save_file(file); + + if(input_remapping_save_file(file)) + rarch_main_msg_queue_push("Remap file saved successfully", 1, 100, true); + else + rarch_main_msg_queue_push("Error saving remap file", 1, 100, true); + return 0; } @@ -1087,7 +1095,7 @@ static int action_ok_rdb_entry_submenu(const char *path, if (!label) return -1; - str_list = string_split(label, "|"); + str_list = string_split(label, "|"); if (!str_list) return -1; @@ -1161,7 +1169,7 @@ static int action_ok_video_resolution(const char *path, { unsigned width = 0, height = 0; global_t *global = global_get_ptr(); - + (void)global; (void)width; (void)height; @@ -1324,7 +1332,7 @@ void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs, else if (!strcmp(label, "remap_file_save_core")) cbs->action_ok = action_ok_remap_file_save_core; else if (!strcmp(label, "remap_file_save_game")) - cbs->action_ok = action_ok_remap_file_save_game; + cbs->action_ok = action_ok_remap_file_save_game; else if (!strcmp(label, "core_list")) cbs->action_ok = action_ok_core_list; else if (!strcmp(label, "disk_image_append")) @@ -1391,7 +1399,7 @@ void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs, case MENU_FILE_RDB: if (!strcmp(menu_label, "deferred_database_manager_list")) cbs->action_ok = action_ok_database_manager_list_deferred; - else if (!strcmp(menu_label, "database_manager_list") + else if (!strcmp(menu_label, "database_manager_list") || !strcmp(menu_label, "Horizontal Menu")) cbs->action_ok = action_ok_database_manager_list; else