diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-09 02:55:57 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-09 02:55:57 -0400 |
commit | f96805e2322e061e088bb5725f8e1ee6006167f8 (patch) | |
tree | 888f20f86c77769e179ef5ba592cdcb4ed15910c /src/libsystemd/sd-path/sd-path.c | |
parent | acd190019d99fe25abf4515ca1834eb277161833 (diff) | |
parent | f6e7ffdf3fe8e3ed5e659f747946461350ade5a8 (diff) |
Merge branch 'parabola' into lukeshu/premove
# Conflicts:
# Makefile.am
Diffstat (limited to 'src/libsystemd/sd-path/sd-path.c')
-rw-r--r-- | src/libsystemd/sd-path/sd-path.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c index 480f1ad065..b7aec1f20a 100644 --- a/src/libsystemd/sd-path/sd-path.c +++ b/src/libsystemd/sd-path/sd-path.c @@ -89,7 +89,8 @@ static int from_home_dir(const char *envname, const char *suffix, char **buffer, static int from_user_dir(const char *field, char **buffer, const char **ret) { _cleanup_fclose_ FILE *f = NULL; _cleanup_free_ char *b = NULL; - const char *fn = NULL; + _cleanup_free_ const char *fn = NULL; + const char *c = NULL; char line[LINE_MAX]; size_t n; int r; @@ -98,10 +99,14 @@ static int from_user_dir(const char *field, char **buffer, const char **ret) { assert(buffer); assert(ret); - r = from_home_dir(NULL, ".config/user-dirs.dirs", &b, &fn); + r = from_home_dir("XDG_CONFIG_HOME", ".config", &b, &c); if (r < 0) return r; + fn = strappend(c, "/user-dirs.dirs"); + if (!fn) + return -ENOMEM; + f = fopen(fn, "re"); if (!f) { if (errno == ENOENT) |