raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=6fddd05d95e2bdf33f0d864f0003d66ba7d101d7

commit 6fddd05d95e2bdf33f0d864f0003d66ba7d101d7
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sat Jan 4 15:02:24 2020 +0000

    e env - set E_HOME_DIR to e's config dir (~/.e/e/ normally)
---
 src/bin/e_user.c | 42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

diff --git a/src/bin/e_user.c b/src/bin/e_user.c
index c4270207a..703d20c02 100644
--- a/src/bin/e_user.c
+++ b/src/bin/e_user.c
@@ -131,6 +131,8 @@ e_user_icon_dir_get(void)
 static const char *_e_user_dir = NULL;
 static size_t _e_user_dir_len = 0;
 
+E_API void         e_util_env_set(const char *var, const char *val);
+
 /**
  * Return ~/.e/e
  */
@@ -141,36 +143,32 @@ e_user_dir_get(void)
 
    if (!dir[0])
      {
-        char *d;
-        
-        if ((d = getenv("E_HOME")))
-          {
-             snprintf(dir, sizeof(dir), "%s/e", d);
-             _e_user_dir_len = strlen(dir);
-          }
+        char *d = getenv("E_HOME");
+
+        if (d)
+          snprintf(dir, sizeof(dir), "E_HOME_DIR=%s/e", d);
         else
           {
-#ifdef DOXDG             
+#ifdef DOXDG
              if ((d = getenv("XDG_CONFIG_HOME")))
-               {
-                  snprintf(dir, sizeof(dir), "%s/e", d);
-                  _e_user_dir_len = strlen(dir);
-               }
+               snprintf(dir, sizeof(dir), "E_HOME_DIR=%s/e", d);
              else
-#endif               
+#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                  
+                  char buf[PATH_MAX - 128];
+#ifdef DOXDG
+                  e_user_homedir_concat(buf, sizeof(buf), ".config/e");
+#else
+                  e_user_homedir_concat(buf, sizeof(buf), ".e/e");
+#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;
 }
 
 /**

-- 


Reply via email to