config: use $HOME instead of getpwuid() to retrieve users’s home dir

When searching for foot.ini, use $HOME instead of getpwuid() to
retrieve the user’s home directory.
This commit is contained in:
Daniel Eklöf 2022-05-24 18:18:15 +02:00
parent 7e8b5f9610
commit bc7214cd88
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 13 additions and 13 deletions

View file

@ -50,6 +50,11 @@
### Changed ### Changed
* Use `$HOME` instead of `getpwuid()` to retrieve the users home
directory when searching for `foot.ini`.
### Deprecated ### Deprecated
### Removed ### Removed
### Fixed ### Fixed

View file

@ -311,15 +311,6 @@ struct config_file {
int fd; /* FD of file, O_RDONLY */ int fd; /* FD of file, O_RDONLY */
}; };
static const char *
get_user_home_dir(void)
{
const struct passwd *passwd = getpwuid(getuid());
if (passwd == NULL)
return NULL;
return passwd->pw_dir;
}
static struct config_file static struct config_file
open_config(void) open_config(void)
{ {
@ -328,7 +319,7 @@ open_config(void)
const char *xdg_config_home = getenv("XDG_CONFIG_HOME"); const char *xdg_config_home = getenv("XDG_CONFIG_HOME");
const char *xdg_config_dirs = getenv("XDG_CONFIG_DIRS"); const char *xdg_config_dirs = getenv("XDG_CONFIG_DIRS");
const char *home_dir = get_user_home_dir(); const char *home_dir = getenv("HOME");
char *xdg_config_dirs_copy = NULL; char *xdg_config_dirs_copy = NULL;
/* First, check XDG_CONFIG_HOME (or .config, if unset) */ /* First, check XDG_CONFIG_HOME (or .config, if unset) */
@ -756,7 +747,7 @@ parse_section_main(struct context *ctx)
const char *include_path = NULL; const char *include_path = NULL;
if (value[0] == '~' && value[1] == '/') { if (value[0] == '~' && value[1] == '/') {
const char *home_dir = get_user_home_dir(); const char *home_dir = getenv("HOME");
if (home_dir == NULL) { if (home_dir == NULL) {
LOG_CONTEXTUAL_ERRNO("failed to expand '~'"); LOG_CONTEXTUAL_ERRNO("failed to expand '~'");

View file

@ -361,7 +361,7 @@ foot will search for a configuration file in the following locations,
in this order: in this order:
- *XDG_CONFIG_HOME/foot/foot.ini* (defaulting to - *XDG_CONFIG_HOME/foot/foot.ini* (defaulting to
*~/.config/foot/foot.ini* if unset) *$HOME/.config/foot/foot.ini* if unset)
- *XDG_CONFIG_DIRS/foot/foot.ini* (defaulting to - *XDG_CONFIG_DIRS/foot/foot.ini* (defaulting to
*/etc/xdg/foot/foot.ini* if unset) */etc/xdg/foot/foot.ini* if unset)
@ -464,6 +464,10 @@ The following environment variables are used by foot:
The default child process to run, when no _command_ argument is The default child process to run, when no _command_ argument is
specified and the *shell* option in *foot.ini*(5) is not set. specified and the *shell* option in *foot.ini*(5) is not set.
*HOME*
Used to determine the location of the configuration file, see
*foot.ini*(5) for details.
*XDG\_CONFIG\_HOME* *XDG\_CONFIG\_HOME*
Used to determine the location of the configuration file, see Used to determine the location of the configuration file, see
*foot.ini*(5) for details. *foot.ini*(5) for details.

View file

@ -15,7 +15,7 @@ foot will search for a configuration file in the following locations,
in this order: in this order:
- *XDG_CONFIG_HOME/foot/foot.ini* (defaulting to - *XDG_CONFIG_HOME/foot/foot.ini* (defaulting to
*~/.config/foot/foot.ini* if unset) *$HOME/.config/foot/foot.ini* if unset)
- *XDG_CONFIG_DIRS/foot/foot.ini* (defaulting to - *XDG_CONFIG_DIRS/foot/foot.ini* (defaulting to
*/etc/xdg/foot/foot.ini* if unset) */etc/xdg/foot/foot.ini* if unset)