Browse Source

[qt] fix relative ROM paths passed on the CLI on macOS

On Mac, we need to change the relative path to an absolute path or else you could get an error that says format not supported, even if it's a valid switch format.

Fixes: https://github.com/eden-emulator/Issue-Reports/issues/404
pull/4105/head
BoiledElectricity 2 months ago
parent
commit
d1e0945f36
  1. 16
      src/yuzu/main.cpp

16
src/yuzu/main.cpp

@ -19,6 +19,12 @@
#include <sys/resource.h>
#endif
#if defined(__APPLE__)
#include <climits>
#include <cstdlib>
#include <cstring>
#endif
#include "main_window.h"
#ifdef _WIN32
@ -131,6 +137,16 @@ int main(int argc, char* argv[]) {
#endif // _WIN32
#if defined(__APPLE__)
// Convert the relative path to an absolute path before the chdir
char resolved[PATH_MAX];
for (int i = 1; i < argc; ++i) {
if (strcmp(argv[i], "-u") == 0 || strcmp(argv[i], "-input-profile") == 0) {
++i;
} else if (argv[i][0] != '-' && argv[i][0] != '/' && realpath(argv[i], resolved)) {
argv[i] = strdup(resolved);
}
}
// If you start a bundle (binary) on OSX without the Terminal, the working directory is "/".
// But since we require the working directory to be the executable path for the location of
// the user folder in the Qt Frontend, we need to cd into that working directory

Loading…
Cancel
Save