Rewrite populate_settings_path so it's C89-compatible again
This commit is contained in:
parent
fbcd2bda10
commit
cf5911f107
185
configuration.c
185
configuration.c
|
@ -3087,106 +3087,121 @@ int populate_settings_string(settings_t *settings, struct config_string_setting
|
||||||
return ARRAY_SIZE(tmp);
|
return ARRAY_SIZE(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define SETTING_PATH(key, defval, configval) \
|
||||||
|
{ \
|
||||||
|
if (count == 0) \
|
||||||
|
tmp = (struct config_path_setting*)malloc(sizeof(struct config_path_setting) * (count + 1)); \
|
||||||
|
else \
|
||||||
|
tmp = (struct config_path_setting*)realloc(tmp, sizeof(struct config_path_setting) * (count + 1)); \
|
||||||
|
tmp[count].ident = key; \
|
||||||
|
tmp[count].defaults = defval; \
|
||||||
|
tmp[count].value = configval; \
|
||||||
|
count++; \
|
||||||
|
} \
|
||||||
|
|
||||||
int populate_settings_path(settings_t *settings, struct config_path_setting *out)
|
int populate_settings_path(settings_t *settings, struct config_path_setting *out)
|
||||||
{
|
{
|
||||||
global_t *global = global_get_ptr();
|
unsigned count = 0;
|
||||||
struct config_path_setting tmp[] = {
|
struct config_path_setting *tmp = NULL;
|
||||||
{ "recording_output_directory", false,
|
global_t *global = global_get_ptr();
|
||||||
global->record.output_dir},
|
|
||||||
{ "recording_config_directory", false,
|
SETTING_PATH("recording_output_directory", false,
|
||||||
global->record.config_dir},
|
global->record.output_dir);
|
||||||
{ "libretro_directory", false,
|
SETTING_PATH("recording_config_directory", false,
|
||||||
settings->directory.libretro},
|
global->record.config_dir);
|
||||||
{ "core_options_path", false,
|
SETTING_PATH("libretro_directory", false,
|
||||||
settings->path.core_options},
|
settings->directory.libretro);
|
||||||
{ "libretro_info_path", false,
|
SETTING_PATH("core_options_path", false,
|
||||||
settings->path.libretro_info},
|
settings->path.core_options);
|
||||||
{ "video_shader", false,
|
SETTING_PATH("libretro_info_path", false,
|
||||||
settings->path.shader},
|
settings->path.libretro_info);
|
||||||
{ "content_database_path", false,
|
SETTING_PATH("video_shader", false,
|
||||||
settings->path.content_database},
|
settings->path.shader);
|
||||||
{ "cheat_database_path", false,
|
SETTING_PATH("content_database_path", false,
|
||||||
settings->path.cheat_database},
|
settings->path.content_database);
|
||||||
|
SETTING_PATH("cheat_database_path", false,
|
||||||
|
settings->path.cheat_database);
|
||||||
#ifdef HAVE_MENU
|
#ifdef HAVE_MENU
|
||||||
{ "menu_wallpaper", false,
|
SETTING_PATH("menu_wallpaper", false,
|
||||||
settings->path.menu_wallpaper},
|
settings->path.menu_wallpaper);
|
||||||
#endif
|
#endif
|
||||||
{ "content_history_path", false,
|
SETTING_PATH("content_history_path", false,
|
||||||
settings->path.content_history},
|
settings->path.content_history);
|
||||||
{ "content_music_history_path", false,
|
SETTING_PATH("content_music_history_path", false,
|
||||||
settings->path.content_music_history},
|
settings->path.content_music_history);
|
||||||
{ "content_video_history_path", false,
|
SETTING_PATH("content_video_history_path", false,
|
||||||
settings->path.content_video_history},
|
settings->path.content_video_history);
|
||||||
{ "content_image_history_path", false,
|
SETTING_PATH("content_image_history_path", false,
|
||||||
settings->path.content_image_history},
|
settings->path.content_image_history);
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
{ "input_overlay", false,
|
SETTING_PATH("input_overlay", false,
|
||||||
settings->path.overlay},
|
settings->path.overlay);
|
||||||
{ "input_osk_overlay", false,
|
SETTING_PATH("input_osk_overlay", false,
|
||||||
settings->path.osk_overlay},
|
settings->path.osk_overlay);
|
||||||
#endif
|
#endif
|
||||||
{ "video_font_path", false,
|
SETTING_PATH("video_font_path", false,
|
||||||
settings->path.font},
|
settings->path.font);
|
||||||
{ "cursor_directory", false,
|
SETTING_PATH("cursor_directory", false,
|
||||||
settings->directory.cursor},
|
settings->directory.cursor);
|
||||||
{ "content_history_dir", false,
|
SETTING_PATH("content_history_dir", false,
|
||||||
settings->directory.content_history},
|
settings->directory.content_history);
|
||||||
{ "screenshot_directory", true,
|
SETTING_PATH("screenshot_directory", true,
|
||||||
settings->directory.screenshot},
|
settings->directory.screenshot);
|
||||||
{ "system_directory", true,
|
SETTING_PATH("system_directory", true,
|
||||||
settings->directory.system},
|
settings->directory.system);
|
||||||
{ "cache_directory", false,
|
SETTING_PATH("cache_directory", false,
|
||||||
settings->directory.cache},
|
settings->directory.cache);
|
||||||
{ "input_remapping_directory", false,
|
SETTING_PATH("input_remapping_directory", false,
|
||||||
settings->directory.input_remapping},
|
settings->directory.input_remapping);
|
||||||
{ "resampler_directory", false,
|
SETTING_PATH("resampler_directory", false,
|
||||||
settings->directory.resampler},
|
settings->directory.resampler);
|
||||||
{ "video_shader_dir", true,
|
SETTING_PATH("video_shader_dir", true,
|
||||||
settings->directory.video_shader},
|
settings->directory.video_shader);
|
||||||
{ "video_filter_dir", true,
|
SETTING_PATH("video_filter_dir", true,
|
||||||
settings->directory.video_filter},
|
settings->directory.video_filter);
|
||||||
{ "core_assets_directory", true,
|
SETTING_PATH("core_assets_directory", true,
|
||||||
settings->directory.core_assets},
|
settings->directory.core_assets);
|
||||||
{ "assets_directory", true,
|
SETTING_PATH("assets_directory", true,
|
||||||
settings->directory.assets},
|
settings->directory.assets);
|
||||||
{ "dynamic_wallpapers_directory", true,
|
SETTING_PATH("dynamic_wallpapers_directory", true,
|
||||||
settings->directory.dynamic_wallpapers},
|
settings->directory.dynamic_wallpapers);
|
||||||
{ "thumbnails_directory", true,
|
SETTING_PATH("thumbnails_directory", true,
|
||||||
settings->directory.thumbnails},
|
settings->directory.thumbnails);
|
||||||
{ "playlist_directory", true,
|
SETTING_PATH("playlist_directory", true,
|
||||||
settings->directory.playlist},
|
settings->directory.playlist);
|
||||||
{ "joypad_autoconfig_dir", false,
|
SETTING_PATH("joypad_autoconfig_dir", false,
|
||||||
settings->directory.autoconfig},
|
settings->directory.autoconfig);
|
||||||
{ "audio_filter_dir", true,
|
SETTING_PATH("audio_filter_dir", true,
|
||||||
settings->directory.audio_filter},
|
settings->directory.audio_filter);
|
||||||
{ "savefile_directory", true,
|
SETTING_PATH("savefile_directory", true,
|
||||||
global->dir.savefile},
|
global->dir.savefile);
|
||||||
{ "savestate_directory", true,
|
SETTING_PATH("savestate_directory", true,
|
||||||
global->dir.savestate},
|
global->dir.savestate);
|
||||||
#ifdef HAVE_MENU
|
#ifdef HAVE_MENU
|
||||||
{ "rgui_browser_directory", true,
|
SETTING_PATH("rgui_browser_directory", true,
|
||||||
settings->directory.menu_content},
|
settings->directory.menu_content);
|
||||||
{ "rgui_config_directory", true,
|
SETTING_PATH("rgui_config_directory", true,
|
||||||
settings->directory.menu_config},
|
settings->directory.menu_config);
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
{ "overlay_directory", true,
|
SETTING_PATH("overlay_directory", true,
|
||||||
settings->directory.overlay},
|
settings->directory.overlay);
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
{ "osk_overlay_directory", true,
|
SETTING_PATH("osk_overlay_directory", true,
|
||||||
global->dir.osk_overlay},
|
global->dir.osk_overlay);
|
||||||
#endif
|
#endif
|
||||||
#ifndef HAVE_DYNAMIC
|
#ifndef HAVE_DYNAMIC
|
||||||
{ "libretro_path", false,
|
SETTING_PATH("libretro_path", false,
|
||||||
config_get_active_core_path()},
|
config_get_active_core_path());
|
||||||
#endif
|
#endif
|
||||||
{ "screenshot_directory", true,
|
SETTING_PATH(
|
||||||
settings->directory.screenshot}
|
"screenshot_directory", true,
|
||||||
};
|
settings->directory.screenshot);
|
||||||
|
|
||||||
memcpy(out, tmp, sizeof(tmp));
|
memcpy(out, tmp, sizeof(*tmp));
|
||||||
return ARRAY_SIZE(tmp);
|
free(tmp);
|
||||||
|
return ARRAY_SIZE(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue