Linux has special handling for directory searching that relies on stat. The issue was that the item names returned by dirent were just the name of the file itself, not a real path. So stat was always returning an error when trying to search for rom flies. This would lead to "No roms found" modal even if there was a rom file next to the .appimage.
This fixes it by building a real path using the passed in search path before querying stat and appending the path to the roms list.
I'm not entirely sure why we search directories differently for each platform, as the else case uses std::filesystem::directory_iterator which was standardized in C++17, so a future improvement would be to drop the platform handling for the simple case.
Linux has special handling for directory searching that relies on
stat
. The issue was that the item names returned bydirent
were just the name of the file itself, not a real path. Sostat
was always returning an error when trying to search for rom flies. This would lead to "No roms found" modal even if there was a rom file next to the .appimage.This fixes it by building a real path using the passed in search path before querying
stat
and appending the path to the roms list.I'm not entirely sure why we search directories differently for each platform, as the
else
case usesstd::filesystem::directory_iterator
which was standardized in C++17, so a future improvement would be to drop the platform handling for the simple case.Build Artifacts