e-xdg: augment XDG_CONFIG_DIRS as well
authorSebastian Dransfeld <sd@tango.flipp.net>
Wed, 11 Jun 2014 09:18:54 +0000 (11:18 +0200)
committerSebastian Dransfeld <sd@tango.flipp.net>
Wed, 11 Jun 2014 09:18:54 +0000 (11:18 +0200)
src/bin/e_main.c

index 40bea9b..8cbd2b8 100644 (file)
@@ -119,12 +119,13 @@ EINTERN double e_first_frame_start_time = -1;
 static void
 _xdg_data_dirs_augment(void)
 {
-   const char *s = getenv("XDG_DATA_DIRS");
+   const char *s;
    const char *p = e_prefix_get();
    char newpath[4096], buf[4096];
 
    if (!p) return;
 
+   s = getenv("XDG_DATA_DIRS");
    snprintf(newpath, sizeof(newpath), "%s:%s/share", e_prefix_data_get(), p);
    if (s)
      {
@@ -140,6 +141,22 @@ _xdg_data_dirs_augment(void)
         e_util_env_set("XDG_DATA_DIRS", buf);
      }
 
+   s = getenv("XDG_CONFIG_DIRS");
+   snprintf(newpath, sizeof(newpath), "%s/etc/xdg", p);
+   if (s)
+     {
+        if (strncmp(s, newpath, strlen(newpath)))
+          {
+             snprintf(buf, sizeof(buf), "%s:%s", newpath, s);
+             e_util_env_set("XDG_CONFIG_DIRS", buf);
+          }
+     }
+   else
+     {
+        snprintf(buf, sizeof(buf), "%s:/etc/xdg", newpath);
+        e_util_env_set("XDG_CONFIG_DIRS", buf);
+     }
+
    if (!getenv("XDG_RUNTIME_DIR"))
      {
         const char *dir;