diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-02-19 03:59:02 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-18 20:59:02 +0100 |
| commit | 49cba432c2d14520d5c9d3010bc740819d9503df (patch) | |
| tree | ec8a37ca04987a25da878a1b3626cd36c9167d92 /src | |
| parent | 39a9cf903f3043c4fb53969caa2a824e5f3c4b6e (diff) | |
| download | box64-49cba432c2d14520d5c9d3010bc740819d9503df.tar.gz box64-49cba432c2d14520d5c9d3010bc740819d9503df.zip | |
[CORE] Rework on function hookMangoHud (#2387)
Diffstat (limited to 'src')
| -rw-r--r-- | src/core.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/core.c b/src/core.c index 59267a29..10d0b11e 100644 --- a/src/core.c +++ b/src/core.c @@ -478,19 +478,20 @@ static void hookMangoHud() if (FileExist("/etc/MangoHud.conf", IS_FILE)) return; const char* configdir = getenv("XDG_CONFIG_HOME"); const char* homedir = getenv("HOME"); - if (!homedir) homedir = getpwuid(getuid())->pw_dir; + homedir = homedir ? homedir : getpwuid(getuid())->pw_dir; if (!homedir) return; - const char* p = configdir ? configdir : homedir; - static char buf[512] = {}; - memcpy(buf, p, strlen(p)); - if (!configdir) strcat(buf, "/.config"); - strcat(buf, "/MangoHud/MangoHud.conf"); - if (FileExist(buf, IS_FILE)) return; - - memcpy(buf, p, strlen(p)); - if (!configdir) strcat(buf, "/.config"); - strcat(buf, "/MangoHud/box64.conf"); - if (FileExist(buf, IS_FILE)) return; + + static char config_base[512]; + snprintf(config_base, sizeof(config_base), "%s%s", + configdir ? configdir : homedir, + configdir ? "" : "/.config"); + + const char* files[] = { "MangoHud.conf", "box64.conf" }; + for (int i = 0; i < 2; i++) { + static char path[512]; + snprintf(path, sizeof(path), "%s/MangoHud/%s", config_base, files[i]); + if (FileExist(path, IS_FILE)) return; + } setenv("MANGOHUD_CONFIG", "legacy_layout=0,custom_text_center=" BOX64_BUILD_INFO_STRING ",gpu_stats=1,cpu_stats=1,fps=1,frame_timing=1", 0); } |