libretro / libretro/RetroArch

Use either "_directory_path" or "_file_path" for related variables

Open
#16,309 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Description

In retroarch.cfg, directory variables end with "_directory", "_dir", or sometimes even "_path". This confusing since file variables names also are using "_path". So, for the sake of consistency, it would be simpler to only make them end with either "_directory_path" or "_file_path".

Expected behavior

Alternative variables that can be used in addition to the current variables:

# File paths

# Replace "_path" with "_directory_file_path"
content_favorites_path = content_favorites_file_path
content_history_path = content_history_file_path
content_image_history_path = content_image_history_file_path
content_music_history_path = content_music_history_file_path
content_video_history_path = content_video_history_file_path

# Directory paths

# Replace "_path" with "_directory_path"
bundle_assets_dst_path = bundle_assets_dst_directory_path
bundle_assets_src_path = bundle_assets_src_directory_path
cheat_database_path = cheat_database_directory_path
content_database_path = content_database_directory_path
core_options_path = core_options_directory_path
libretro_info_path = libretro_info_directory_path
video_font_path = video_font_directory_path

# Replace "_dir" with "_directory_path"
audio_filter_dir = audio_filter_directory_path
joypad_autoconfig_dir = joypad_autoconfig_directory_path
log_dir = log_directory_path
video_filter_dir = video_filter_directory_path
video_shader_dir = video_shader_directory_path

# Replace "_directory" with "_directory_path"
assets_directory = assets_directory_path
cache_directory = cache_directory_path
content_favorites_directory = content_favorites_directory_path
content_history_directory = content_history_directory_path
content_image_history_directory = content_image_history_directory_path
content_music_history_directory = content_music_history_directory_path
content_video_directory = content_video_directory_path
core_assets_directory = core_assets_directory_path
dynamic_wallpapers_directory = dynamic_wallpapers_directory_path
input_remapping_directory = input_remapping_directory_path
libretro_directory = libretro_directory_path
osk_overlay_directory = osk_overlay_directory_path
overlay_directory = overlay_directory_path
playlist_directory = playlist_directory_path
recording_config_directory = recording_config_directory_path
recording_output_directory = recording_output_directory_path
resampler_directory = resampler_directory_path
rgui_browser_directory = rgui_browser_directory_path
rgui_config_directory = rgui_config_directory_path
runtime_log_directory = runtime_log_directory_path
savefile_directory = savefile_directory_path
savestate_directory = savestate_directory_path
screenshot_directory = screenshot_directory_path
system_directory = system_directory_path
thumbnails_directory = thumbnails_directory_path
Actual behavior

[What is actually happening]

Steps to reproduce the bug
file=~/Downloads/Software/RetroArch-Linux-x86_64/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/retroarch.cfg; grep '_dir =\|_directory =\|_path =' $file | sort | grep -v 'true\|false'

assets_directory = "/usr/share/libretro/assets/"
audio_filter_dir = "/usr/lib/x86_64-linux-gnu/retroarch/filters/audio/"
bundle_assets_dst_path = ""
bundle_assets_src_path = ""
cache_directory = "/tmp"
cheat_database_path = "~/.config/retroarch/cheats"
content_database_path = "~/.config/retroarch/database/rdb"
content_favorites_directory = "default"
content_favorites_path = "~/.config/retroarch/content_favorites.lpl"
content_history_directory = "default"
content_history_path = "~/.config/retroarch/content_history.lpl"
content_image_history_directory = "default"
content_image_history_path = "~/.config/retroarch/content_image_history.lpl"
content_music_history_directory = "default"
content_music_history_path = "~/.config/retroarch/content_music_history.lpl"
content_video_directory = "default"
content_video_history_path = "~/.config/retroarch/content_video_history.lpl"
core_assets_directory = "~/.config/retroarch/downloads"
core_options_path = ""
dynamic_wallpapers_directory = "default"
input_remapping_directory = "~/.config/retroarch/config/remaps"
joypad_autoconfig_dir = "~/.config/retroarch/autoconfig"
libretro_directory = "/usr/lib/x86_64-linux-gnu/libretro/"
libretro_info_path = "/usr/share/libretro/info/"
log_dir = "~/.config/retroarch/logs"
osk_overlay_directory = "~/.config/retroarch/overlays/keyboards"
overlay_directory = "~/.config/retroarch/overlays"
playlist_directory = "~/.config/retroarch/playlists"
recording_config_directory = "~/.config/retroarch/records_config"
recording_output_directory = "~/.config/retroarch/records"
resampler_directory = ""
rgui_browser_directory = "~/"
rgui_config_directory = "~/.config/retroarch/config/"
runtime_log_directory = "default"
savefile_directory = "~/.config/retroarch/saves"
savestate_directory = "~/.config/retroarch/states"
screenshot_directory = "~/.config/retroarch/screenshots"
system_directory = "~/.config/retroarch/system"
thumbnails_directory = "~/.config/retroarch/thumbnails"
video_filter_dir = "/usr/lib/x86_64-linux-gnu/retroarch/filters/video/"
video_font_path = ""
video_shader_dir = "~/.config/retroarch/shaders"
Bisect Results

[Try to bisect and tell us when this started happening]

Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.17.0 Appimage
Environment information
  • OS: GNU/Linux
  • Compiler: [In case you are running local builds]

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the retroarch.cfg definitions and the source usages for the listed _dir, _directory, and _path variables. Check how configuration aliases are parsed and whether existing names must remain supported; done means the proposed *_directory_path and *_file_path names work consistently without breaking current configurations.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
developer-experience
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.