From 1385ce20adf71d391c890ddc6f00c719f33469eb Mon Sep 17 00:00:00 2001 From: Simon Long Date: Sat, 6 Jan 2024 09:15:33 +0000 Subject: [PATCH] Correctly handle fallback config directories --- src/common/dir.c | 6 +++++- src/config/rcxml.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/common/dir.c b/src/common/dir.c index 41c230b2..09b8106b 100644 --- a/src/common/dir.c +++ b/src/common/dir.c @@ -144,7 +144,11 @@ config_dir_n(int n) .len = sizeof(buf), .dirs = config_dirs }; - return find_dir(&ctx, n); + if (n == 0) { + return find_dir(&ctx, getenv("XDG_CONFIG_HOME") ? 0 : 1); + } else { + return find_dir(&ctx, getenv("XDG_CONFIG_DIRS") ? 2 : 3); + } } char * diff --git a/src/config/rcxml.c b/src/config/rcxml.c index 84e32264..f89a8b30 100644 --- a/src/config/rcxml.c +++ b/src/config/rcxml.c @@ -1474,7 +1474,7 @@ rcxml_read(const char *filename) * the first time. The specified 'filename' is only respected the first * time. */ - for (int i = 3; i >= 0; i--) { + for (int i = 1; i >= 0; i--) { line = NULL; len = 0; if (filename) {