Fastfetch: fix loading presets in {exePath}/presets

Regression of v2.40.0
This commit is contained in:
Carter Li
2025-04-08 09:11:08 +08:00
committed by 李通洲
parent 09d683b706
commit 03bc2dade9
3 changed files with 12 additions and 19 deletions
+12 -3
View File
@@ -483,13 +483,22 @@ static void optionParseConfigFile(FFdata* data, const char* key, const char* val
if (instance.state.platform.exePath.length)
{
ffStrbufSet(&absolutePath, &instance.state.platform.exePath);
ffStrbufSubstrBeforeLastC(&absolutePath, '/');
ffStrbufAppendS(&absolutePath, "/");
uint32_t lastSlash = ffStrbufLastIndexC(&instance.state.platform.exePath, '/') + 1;
assert(lastSlash < instance.state.platform.exePath.length);
// Try {exePath}/
ffStrbufSetNS(&absolutePath, lastSlash, instance.state.platform.exePath.chars);
ffStrbufAppendS(&absolutePath, value);
if (needExtension)
ffStrbufAppendS(&absolutePath, ".jsonc");
if (parseJsoncFile(absolutePath.chars, strictJson)) return;
// Try {exePath}/presets/
ffStrbufSubstrBefore(&absolutePath, lastSlash);
ffStrbufAppendS(&absolutePath, "presets/");
ffStrbufAppendS(&absolutePath, value);
if (needExtension)
ffStrbufAppendS(&absolutePath, ".jsonc");
if (parseJsoncFile(absolutePath.chars, strictJson)) return;
}
-8
View File
@@ -172,14 +172,6 @@ static void getDataDirs(FFPlatform* platform)
#endif
ffPlatformPathAddAbsolute(&platform->dataDirs, FASTFETCH_TARGET_DIR_USR "/local/share/");
ffPlatformPathAddAbsolute(&platform->dataDirs, FASTFETCH_TARGET_DIR_USR "/share/");
if (platform->exePath.length > 0)
{
// Add ${currentExePath}
FF_STRBUF_AUTO_DESTROY path = ffStrbufCreateCopy(&platform->exePath);
ffStrbufSubstrBeforeLastC(&path, '/');
ffPlatformPathAddAbsolute(&platform->dataDirs, path.chars);
}
}
static void getUserName(FFPlatform* platform, const struct passwd* pwd)
-8
View File
@@ -129,14 +129,6 @@ static void getDataDirs(FFPlatform* platform)
platformPathAddKnownFolder(&platform->dataDirs, &FOLDERID_RoamingAppData);
platformPathAddKnownFolder(&platform->dataDirs, &FOLDERID_LocalAppData);
ffPlatformPathAddHome(&platform->dataDirs, platform, "");
if (platform->exePath.length > 0)
{
// Add ${currentExePath}
FF_STRBUF_AUTO_DESTROY path = ffStrbufCreateCopy(&platform->exePath);
ffStrbufSubstrBeforeLastC(&path, '/');
ffPlatformPathAddAbsolute(&platform->dataDirs, path.chars);
}
}
static void getUserName(FFPlatform* platform)