From a98c71aab4068f1cfebb7a8828a9b95f2eef11e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 2 Jan 2023 17:27:06 +0800 Subject: [PATCH] Config: search for user config file in the order of `configDirs` This is necessary to keep forward compatibility for Windows / macOS users. Since `$LOCALAPPPATH` and `~/Library/Preferences` are now the first element of `configDirs`, config files in `~/.config` won't be used in previous manner. --- CHANGELOG.md | 1 + src/fastfetch.c | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa60ad865..858ea4776 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Notable Changes: * fastfetch no longer creates a sample config file silently. Use `--gen-config` to generate one. +* fastfetch now search for user config file in the order of `fastfetch --list-config-paths` Features: * `--logo-padding-top` option (@CarterLi, #372) diff --git a/src/fastfetch.c b/src/fastfetch.c index cfd51195d..0ac0420f8 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -1312,14 +1312,18 @@ static void parseConfigFileUser(FFinstance* instance, FFdata* data) if(!data->loadUserConfig) return; - FFstrbuf* filename = ffListGet(&instance->state.configDirs, 0); - uint32_t filenameLength = filename->length; + FF_LIST_FOR_EACH(FFstrbuf, filename, instance->state.configDirs) + { + uint32_t filenameLength = filename->length; - ffStrbufAppendS(filename, "fastfetch/config.conf"); + ffStrbufAppendS(filename, "fastfetch/config.conf"); - parseConfigFile(instance, data, filename->chars); + bool found = parseConfigFile(instance, data, filename->chars); - ffStrbufSubstrBefore(filename, filenameLength); + ffStrbufSubstrBefore(filename, filenameLength); + + if(found) break; + } } static void parseArguments(FFinstance* instance, FFdata* data, int argc, const char** argv)