diff options
author | James Booth <boothj5@gmail.com> | 2013-02-02 22:09:18 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2013-02-02 22:09:18 +0000 |
commit | 66647546f423e955fd07a8bc4db3baa7d17c5e0d (patch) | |
tree | 9a543bb0e67e1f9e2971c5f32f8946a564ed629e /src/common.c | |
parent | d86a77495339c3a1156c19979036d704ddf0cead (diff) | |
download | profani-tty-66647546f423e955fd07a8bc4db3baa7d17c5e0d.tar.gz |
Moved xdg functions to common
Diffstat (limited to 'src/common.c')
-rw-r--r-- | src/common.c | 38 |
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) { |