prepend to XDG_DATA_DIRs so we get apps in e's prefix. :)
authorCarsten Haitzler <raster@rasterman.com>
Fri, 29 Jun 2012 13:00:30 +0000 (13:00 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Fri, 29 Jun 2012 13:00:30 +0000 (13:00 +0000)
SVN revision: 73036

src/bin/e_main.c

index 2c80f5a..cad04d6 100644 (file)
@@ -116,6 +116,28 @@ EAPI Eina_Bool stopping = EINA_FALSE;
 EAPI Eina_Bool restart = EINA_FALSE;
 
 static void
+_xdg_data_dirs_augment(void)
+{
+   const char *s = getenv("XDG_DATA_DIRS");
+   const char *p = e_prefix_get();
+   char newpath[PATH_MAX], buf[PATH_MAX];
+
+   if (!p) return;
+   
+   snprintf(newpath, sizeof(newpath), "%s:%s/share", e_prefix_data_get(), p);
+   if (s)
+     {
+        if (strncmp(s, newpath, strlen(newpath)))
+          {
+             snprintf(buf, sizeof(buf), "%s:%s", newpath, s);
+             e_util_env_set("XDG_DATA_DIRS", buf);
+          }
+     }
+   else
+     e_util_env_set("XDG_DATA_DIRS", newpath);
+}
+
+static void
 _fix_user_default_edj(void)
 {
    char buff[PATH_MAX];
@@ -444,6 +466,8 @@ main(int argc, char **argv)
    TS("E_Config Init Done");
    _e_main_shutdown_push(e_config_shutdown);
 
+   _xdg_data_dirs_augment();
+   
    _fix_user_default_edj();
 
    TS("E_Randr Init");