e env - set E_HOME_DIR to e's config dir (~/.e/e/ normally)

This commit is contained in:
Carsten Haitzler 2020-01-04 15:02:24 +00:00
parent aaea7865ef
commit 6fddd05d95
1 changed files with 20 additions and 22 deletions

View File

@ -131,6 +131,8 @@ e_user_icon_dir_get(void)
static const char *_e_user_dir = NULL; static const char *_e_user_dir = NULL;
static size_t _e_user_dir_len = 0; static size_t _e_user_dir_len = 0;
E_API void e_util_env_set(const char *var, const char *val);
/** /**
* Return ~/.e/e * Return ~/.e/e
*/ */
@ -141,36 +143,32 @@ e_user_dir_get(void)
if (!dir[0]) if (!dir[0])
{ {
char *d; char *d = getenv("E_HOME");
if ((d = getenv("E_HOME"))) if (d)
{ snprintf(dir, sizeof(dir), "E_HOME_DIR=%s/e", d);
snprintf(dir, sizeof(dir), "%s/e", d);
_e_user_dir_len = strlen(dir);
}
else else
{ {
#ifdef DOXDG #ifdef DOXDG
if ((d = getenv("XDG_CONFIG_HOME"))) if ((d = getenv("XDG_CONFIG_HOME")))
{ snprintf(dir, sizeof(dir), "E_HOME_DIR=%s/e", d);
snprintf(dir, sizeof(dir), "%s/e", d);
_e_user_dir_len = strlen(dir);
}
else else
#endif #endif
{ {
#ifdef DOXDG char buf[PATH_MAX - 128];
_e_user_dir_len = e_user_homedir_concat(dir, sizeof(dir), #ifdef DOXDG
".config/e"); e_user_homedir_concat(buf, sizeof(buf), ".config/e");
#else #else
_e_user_dir_len = e_user_homedir_concat(dir, sizeof(dir), e_user_homedir_concat(buf, sizeof(buf), ".e/e");
".e/e"); #endif
#endif snprintf(dir, sizeof(dir), "E_HOME_DIR=%s", buf);
} }
} }
_e_user_dir = dir; _e_user_dir = dir + strlen("E_HOME_DIR=");
_e_user_dir_len = strlen(_e_user_dir);
putenv(dir);
} }
return dir; return _e_user_dir;
} }
/** /**