changeset 512:93c8ba1ef55f

Support XDG specification.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 05 Jun 2012 19:56:57 +0300
parents 291e3caa91a0
children ef5a2aa8382b
files main.c
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/main.c	Tue Jun 05 19:28:34 2012 +0300
+++ b/main.c	Tue Jun 05 19:56:57 2012 +0300
@@ -1363,6 +1363,7 @@
     th_cfg_add_string(&tmpcfg, "filename", &optLogFilename, optLogFilename);
     th_cfg_add_section(&cfg, "logging", tmpcfg);
 
+    // Get home directory path
 #ifdef __WIN32
     {
         char tmpPath[MAX_PATH];
@@ -1372,7 +1373,18 @@
         CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
     }
 #else
-    setHomeDir = th_strdup(getenv("HOME"));
+    {
+        char *xdgConfigDir = getenv("XDG_CONFIG_HOME"),
+             *userHomeDir = getenv("HOME");
+#ifdef USE_XDG
+        if (xdgConfigDir != NULL)
+            setHomeDir = th_strdup(xdgConfigDir);
+        else
+            setHomeDir = th_strdup_printf("%s/.config", userHomeDir);
+#else
+        setHomeDir = th_strdup(userHomeDir);
+#endif
+    }
 #endif
 
     if (setHomeDir != NULL)