HarbourMasters / 2ship2harkinian

Creative Commons Zero v1.0 Universal
885 stars 71 forks source link

Fix linux auto rom detection for built-in extractor #842

Closed Archez closed 1 week ago

Archez commented 1 week ago

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.

Build Artifacts