From 4f67ed2b77ce6a4c036c1eab7bbeb169edcb466d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 14 Oct 2022 19:02:51 +0800 Subject: [PATCH] TerminalShell: add some pretty names --- .../terminalshell/terminalshell_linux.c | 17 ++++++++++++++--- src/util/FFstrbuf.h | 10 ++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/detection/terminalshell/terminalshell_linux.c b/src/detection/terminalshell/terminalshell_linux.c index 80ace12bd..e04f41f66 100644 --- a/src/detection/terminalshell/terminalshell_linux.c +++ b/src/detection/terminalshell/terminalshell_linux.c @@ -316,10 +316,21 @@ const FFTerminalShellResult* ffDetectTerminalShell(const FFinstance* instance) else ffStrbufSet(&result.userShellVersion, &result.shellVersion); - // https://github.com/LinusDierheimer/fastfetch/discussions/280#discussioncomment-3831734 - ffStrbufInitS(&result.shellPrettyName, result.shellExeName); + if(ffStrbufEqualS(&result.shellProcessName, "pwsh")) + ffStrbufInitS(&result.shellPrettyName, "PowerShell"); + else if(ffStrbufEqualS(&result.shellProcessName, "nu")) + ffStrbufInitS(&result.shellPrettyName, "nushell"); + else + { + // https://github.com/LinusDierheimer/fastfetch/discussions/280#discussioncomment-3831734 + ffStrbufInitS(&result.shellPrettyName, result.shellExeName); + } - if(strncmp(result.terminalExeName, result.terminalProcessName.chars, result.terminalProcessName.length) == 0) // if exeName starts with processName, print it. Otherwise print processName + if(ffStrbufEqualS(&result.terminalProcessName, "iTerm.app")) + ffStrbufInitS(&result.terminalPrettyName, "iTerm"); + else if(ffStrbufEqualS(&result.terminalProcessName, "Apple_Terminal")) + ffStrbufInitS(&result.terminalPrettyName, "Apple Terminal"); + else if(strncmp(result.terminalExeName, result.terminalProcessName.chars, result.terminalProcessName.length) == 0) // if exeName starts with processName, print it. Otherwise print processName ffStrbufInitS(&result.terminalPrettyName, result.terminalExeName); else ffStrbufInitCopy(&result.terminalPrettyName, &result.terminalProcessName); diff --git a/src/util/FFstrbuf.h b/src/util/FFstrbuf.h index 8966b569e..cfe6449d4 100644 --- a/src/util/FFstrbuf.h +++ b/src/util/FFstrbuf.h @@ -147,11 +147,21 @@ static inline int ffStrbufComp(const FFstrbuf* strbuf, const FFstrbuf* comp) return memcmp(strbuf->chars, comp->chars, length + 1); } +static inline FF_C_NODISCARD int ffStrbufEqual(const FFstrbuf* strbuf, const FFstrbuf* comp) +{ + return ffStrbufComp(strbuf, comp) == 0; +} + static inline FF_C_NODISCARD int ffStrbufCompS(const FFstrbuf* strbuf, const char* comp) { return strcmp(strbuf->chars, comp); } +static inline FF_C_NODISCARD int ffStrbufEqualS(const FFstrbuf* strbuf, const char* comp) +{ + return ffStrbufCompS(strbuf, comp) == 0; +} + static inline FF_C_NODISCARD int ffStrbufIgnCaseCompS(const FFstrbuf* strbuf, const char* comp) { return strcasecmp(strbuf->chars, comp);