about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-02-19 03:59:02 +0800
committerGitHub <noreply@github.com>2025-02-18 20:59:02 +0100
commit49cba432c2d14520d5c9d3010bc740819d9503df (patch)
treeec8a37ca04987a25da878a1b3626cd36c9167d92 /src
parent39a9cf903f3043c4fb53969caa2a824e5f3c4b6e (diff)
downloadbox64-49cba432c2d14520d5c9d3010bc740819d9503df.tar.gz
box64-49cba432c2d14520d5c9d3010bc740819d9503df.zip
[CORE] Rework on function hookMangoHud (#2387)
Diffstat (limited to 'src')
-rw-r--r--src/core.c25
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);
 }