From eea70020c30029fd8fccc63a431ad75c7462fa8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sun, 16 Jul 2023 20:39:28 +0800 Subject: [PATCH] Terminal (macOS): fix compatibility with Fig --- src/detection/terminalshell/terminalshell_linux.c | 6 ++++++ src/util/stringUtils.h | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/detection/terminalshell/terminalshell_linux.c b/src/detection/terminalshell/terminalshell_linux.c index a6777f570..91852519e 100644 --- a/src/detection/terminalshell/terminalshell_linux.c +++ b/src/detection/terminalshell/terminalshell_linux.c @@ -172,6 +172,12 @@ static void getTerminalShell(FFTerminalShellResult* result, pid_t pid) return; } + #ifdef __APPLE__ + // https://github.com/fastfetch-cli/fastfetch/discussions/501 + if (ffStrEndsWith(name, " (figterm)")) + getProcessNameAndPpid(ppid, name, &ppid); + #endif + result->terminalPid = (uint32_t) pid; ffStrbufSetS(&result->terminalProcessName, name); getProcessInformation(pid, &result->terminalProcessName, &result->terminalExe, &result->terminalExeName); diff --git a/src/util/stringUtils.h b/src/util/stringUtils.h index 2283b0aec..80894ad26 100644 --- a/src/util/stringUtils.h +++ b/src/util/stringUtils.h @@ -25,6 +25,15 @@ static inline bool ffStrStartsWith(const char* str, const char* compareTo) return strncmp(str, compareTo, strlen(compareTo)) == 0; } +static inline bool ffStrEndsWith(const char* str, const char* compareTo) +{ + size_t strLength = strlen(str); + size_t compareToLength = strlen(compareTo); + if (strLength < compareToLength) + return false; + return memcmp(str + strLength - compareToLength, compareTo, compareToLength) == 0; +} + static inline bool ffStrEquals(const char* str, const char* compareTo) { return strcmp(str, compareTo) == 0;