raster pushed a commit to branch master.

commit efda5de46662300958d89374a8e3d3d786bc6d0c
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Tue May 28 12:31:59 2013 +0900

    allow xdg dir usage if you add -DDOXDG to CFLAGS.
---
 src/lib/elm_config.c | 36 ++++++++++++++++++++++++++++--------
 1 file changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c
index dedb293..3ac06fb 100644
--- a/src/lib/elm_config.c
+++ b/src/lib/elm_config.c
@@ -522,18 +522,38 @@ _elm_user_dir_snprintf(char       *dst,
 
 #ifdef _WIN32
    home = evil_homedir_get();
+   user_dir_len = eina_str_join_len
+     (dst, size, '/', home, strlen(home),
+         ELEMENTARY_BASE_DIR, sizeof(ELEMENTARY_BASE_DIR) - 1);
 #else
-   home = getenv("HOME");
+#ifdef DOXDG   
+   home = getenv("XDG_CONFIG_HOME");
+   if (home)
+     {
+        user_dir_len = eina_str_join_len
+          (dst, size, '/', home, strlen(home),
+              "elementary", sizeof("elementary") - 1);
+     }
+   else
+#endif     
+     {
+        if (!home) home = getenv("HOME");
+        if (!home) home = "/";
+#ifdef DOXDG
+        user_dir_len = eina_str_join_len
+          (dst, size, '/', home, strlen(home),
+              ".config", sizeof(".config") - 1,
+              "elementary", sizeof("elementary") - 1);
+#else
+        user_dir_len = eina_str_join_len
+          (dst, size, '/', home, strlen(home),
+              ELEMENTARY_BASE_DIR, sizeof(ELEMENTARY_BASE_DIR) - 1);
+#endif        
+     }
 #endif
-   if (!home)
-     home = "/";
-
-   user_dir_len = eina_str_join_len(dst, size, '/', home, strlen(home),
-                                    ELEMENTARY_BASE_DIR, 
sizeof(ELEMENTARY_BASE_DIR) - 1);
 
    off = user_dir_len + 1;
-   if (off >= size)
-     goto end;
+   if (off >= size) goto end;
 
    va_start(ap, fmt);
    dst[user_dir_len] = '/';

-- 

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may

Reply via email to