From 4be1d4537aa15b35ee6be55801138d8682c4973d Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 28 May 2013 12:32:31 +0900 Subject: [PATCH] allow xdg dir usage if you add -DDOXDG to CFLAGS. --- src/bin/e_user.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/bin/e_user.c b/src/bin/e_user.c index 801decc89..2576690dc 100644 --- a/src/bin/e_user.c +++ b/src/bin/e_user.c @@ -130,23 +130,38 @@ EAPI const char * e_user_dir_get(void) { static char dir[PATH_MAX] = ""; - static char buf[PATH_MAX] = ""; if (!dir[0]) { - char *e_home = getenv("E_HOME"); - if (e_home) + char *d; + + if ((d = getenv("E_HOME"))) { - snprintf(buf, sizeof(buf), "%s/e", e_home); + snprintf(dir, sizeof(dir), "%s/e", d); + _e_user_dir_len = strlen(dir); } else { - snprintf(buf, sizeof(buf), ".e/e"); +#ifdef DOXDG + if ((d = getenv("XDG_CONFIG_HOME"))) + { + snprintf(dir, sizeof(dir), "%s/e", d); + _e_user_dir_len = strlen(dir); + } + else +#endif + { +#ifdef DOXDG + _e_user_dir_len = e_user_homedir_concat(dir, sizeof(dir), + ".config/e"); +#else + _e_user_dir_len = e_user_homedir_concat(dir, sizeof(dir), + ".e/e"); +#endif + } } - _e_user_dir_len = e_user_homedir_concat(dir, sizeof(dir), buf); _e_user_dir = dir; } - return dir; }