mirror of
https://github.com/libretro/RetroArch
synced 2025-02-05 06:40:07 +00:00
69ceb95ddc
* platform_win32: Fix sizeof for DEFAULT_DIR_PLAYLIST. * frontend/drivers/platform_win32.c (frontend_win32_env_get): Check the size of correct destination array. * frontend: Honor the LIBRETRO_ASSETS_DIRECTORY environment variable. This builds on 763fcd8267 ("unix, win32: Allow set the default libretro_directory via environment variable") to also allow specifying the assets directory via an environment variable. * frontend/drivers/platform_unix.c (frontend_unix_get_env) <libretro_assets_directory> New variable. Use it to set DEFAULT_DIR_ASSETS, when available. * frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise. * platform: Honor the LIBRETRO_DIRECTORY environment variable. Until now, and unlike the defaut core directory, the default core *info* directory would be hard-coded relative to the installation directory. Honor the LIBRETRO_DIRECTORY environment variable the same instead. * frontend/drivers/platform_unix.c (frontend_unix_get_env): Set DEFAULT_DIR_CORE_INFO default to the value of the LIBRETRO_DIRECTORY environment variable, if available. * frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise. * platform: Honor the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable. * frontend/drivers/platform_unix.c (libretro_autoconfig_directory): New variable. (frontend_unix_get_env): Set DEFAULT_DIR_AUTOCONFIG to the value of the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable, if available. * frontend/drivers/platform_win32.c: Likewise. * platform: Honor the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable. * frontend/drivers/platform_unix.c (libretro_video_filter_directory): New variable. (frontend_unix_get_env): Set DEFAULT_DIR_VIDEO_FILTER to the value of the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable, if available. * frontend/drivers/platform_win32.c: Likewise. * platform: Honor the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable. * frontend/drivers/platform_unix.c (libretro_video_shader_directory): New variable. (frontend_unix_get_env): Set DEFAULT_DIR_SHADER to the value of the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable, if available. * frontend/drivers/platform_win32.c: Likewise. * platform: Honor the LIBRETRO_SYSTEM_DIRECTORY environment variable. * frontend/drivers/platform_unix.c (libretro_system_directory): New variable. (frontend_unix_get_env): Set DEFAULT_DIR_SYSTEM to the value of the LIBRETRO_SYSTEM_DIRECTORY environment variable, if available. * frontend/drivers/platform_win32.c: Likewise. * configuration: Have environment variables override configuration. Because the configuration file is systematically written when RetroArch terminates, persisting any previous default/configured value, setting the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY, etc. environment variables would not have an effect unless the retroarch.cfg configuration file was cleared. This seems to go against the common expectation that environment variables are set by users to *override* the default behavior or configuration of an application. * configuration.c (config_load_file) <libretro_directory> <libretro_assets_directory, libretro_autoconfig_directory> <libretro_system_directory, libretro_video_filter_directory> <libretro_video_shader_directory>: New variables. Use the values of the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY, LIBRETRO_AUTOCONFIG_DIRECTORY, LIBRETRO_SYSTEM_DIRECTORY, LIBRETRO_VIDEO_FILTER_DIRECTORY and LIBRETRO_VIDEO_SHADER_DIRECTORY environment variables instead of their corresponding configured values, when set. * docs/retroarch.6: Document the environment variables honored and their behavior.