config: fallback to /etc/xdg if XDG_CONFIG_DIRS is unset

Closes #1008
This commit is contained in:
Daniel Eklöf 2022-04-06 18:44:09 +02:00
parent 58a1ffe724
commit 20608c987b
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 10 additions and 5 deletions

View file

@ -98,6 +98,8 @@
* Underline cursor sometimes being positioned too low, either making * Underline cursor sometimes being positioned too low, either making
it look thinner than what it should be, or being completely it look thinner than what it should be, or being completely
invisible (https://codeberg.org/dnkl/foot/issues/1005). invisible (https://codeberg.org/dnkl/foot/issues/1005).
* Fallback to `/etc/xdg` if `XDG_CONFIG_DIRS` is unset
(https://codeberg.org/dnkl/foot/issues/1008).
### Security ### Security

View file

@ -444,10 +444,12 @@ open_config(void)
} }
} }
/* Finally, try foot/foot.ini in all XDG_CONFIG_DIRS */ /* Finally, try foot/foot.ini in all XDG_CONFIG_DIRS, or /etc/xdg
* if unset */
const char *xdg_config_dirs = getenv("XDG_CONFIG_DIRS"); const char *xdg_config_dirs = getenv("XDG_CONFIG_DIRS");
xdg_config_dirs_copy = xdg_config_dirs != NULL xdg_config_dirs_copy = xdg_config_dirs != NULL
? strdup(xdg_config_dirs) : NULL; ? strdup(xdg_config_dirs)
: strdup("/etc/xdg");
if (xdg_config_dirs_copy != NULL) { if (xdg_config_dirs_copy != NULL) {
for (char *save = NULL, for (char *save = NULL,

View file

@ -13,9 +13,10 @@ say if it needs to be reopened after any of the other sections.
foot will search for a configuration file in the following locations, foot will search for a configuration file in the following locations,
in this order: in this order:
- *XDG_CONFIG_HOME/foot/foot.ini* - *XDG_CONFIG_HOME/foot/foot.ini* (defaulting to
- *~/.config/foot/foot.ini* *~/.config/foot/foot.ini* if unset)
- *XDG_CONFIG_DIRS/foot/foot.ini* - *XDG_CONFIG_DIRS/foot/foot.ini* (defaulting to
*/etc/xdg/foot/foot.ini* if unset)
# SECTION: main # SECTION: main