about summary refs log tree commit diff stats
path: root/src/common.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-02-02 22:09:18 +0000
committerJames Booth <boothj5@gmail.com>2013-02-02 22:09:18 +0000
commit66647546f423e955fd07a8bc4db3baa7d17c5e0d (patch)
tree9a543bb0e67e1f9e2971c5f32f8946a564ed629e /src/common.c
parentd86a77495339c3a1156c19979036d704ddf0cead (diff)
downloadprofani-tty-66647546f423e955fd07a8bc4db3baa7d17c5e0d.tar.gz
Moved xdg functions to common
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/common.c b/src/common.c
index 46d03fb8..dc03201c 100644
--- a/src/common.c
+++ b/src/common.c
@@ -275,6 +275,44 @@ presence_valid_string(const char * const str)
     }
 }
 
+gchar *
+xdg_get_config_home(void)
+{
+    gchar *xdg_config_home = getenv("XDG_CONFIG_HOME");
+    if (xdg_config_home != NULL)
+        g_strstrip(xdg_config_home);
+
+    if ((xdg_config_home != NULL) && (strcmp(xdg_config_home, "") != 0)) {
+        return strdup(xdg_config_home);
+    } else {
+        GString *default_path = g_string_new(getenv("HOME"));
+        g_string_append(default_path, "/.config");
+        gchar *result = strdup(default_path->str);
+        g_string_free(default_path, TRUE);
+
+        return result;
+    }
+}
+
+gchar *
+xdg_get_data_home(void)
+{
+    gchar *xdg_data_home = getenv("XDG_DATA_HOME");
+    if (xdg_data_home != NULL)
+        g_strstrip(xdg_data_home);
+
+    if ((xdg_data_home != NULL) && (strcmp(xdg_data_home, "") != 0)) {
+        return strdup(xdg_data_home);
+    } else {
+        GString *default_path = g_string_new(getenv("HOME"));
+        g_string_append(default_path, "/.local/share");
+        gchar *result = strdup(default_path->str);
+        g_string_free(default_path, TRUE);
+
+        return result;
+    }
+}
+
 static size_t
 _data_callback(void *ptr, size_t size, size_t nmemb, void *data)
 {