summaryrefslogtreecommitdiff
path: root/obt
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-01-20 10:29:09 -0500
committerDana Jansens <danakj@orodu.net>2008-01-31 12:25:30 -0500
commit2c64fe685ec3e2eae70958518e6fc27b2334bc10 (patch)
treefbfec90c7158b1d9d527eeb851d07b5792b1d16a /obt
parent46cf95d36b29cd6bda18ba2d511be10b8e9471cc (diff)
add support for XDG_CACHE_HOME to the obt paths
Diffstat (limited to 'obt')
-rw-r--r--obt/paths.c13
-rw-r--r--obt/paths.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/obt/paths.c b/obt/paths.c
index c43d48b8..61004998 100644
--- a/obt/paths.c
+++ b/obt/paths.c
@@ -34,6 +34,7 @@ struct _ObtPaths
gint ref;
gchar *config_home;
gchar *data_home;
+ gchar *cache_home;
GSList *config_dirs;
GSList *data_dirs;
};
@@ -95,6 +96,12 @@ ObtPaths* obt_paths_new(void)
p->data_home = g_build_filename(g_get_home_dir(), ".local",
"share", NULL);
+ path = g_getenv("XDG_CACHE_HOME");
+ if (path && path[0] != '\0') /* not unset or empty */
+ p->cache_home = g_build_filename(path, NULL);
+ else
+ p->cache_home = g_build_filename(g_get_home_dir(), ".cache", NULL);
+
path = g_getenv("XDG_CONFIG_DIRS");
if (path && path[0] != '\0') /* not unset or empty */
p->config_dirs = split_paths(path);
@@ -154,6 +161,7 @@ void obt_paths_unref(ObtPaths *p)
g_slist_free(p->data_dirs);
g_free(p->config_home);
g_free(p->data_home);
+ g_free(p->cache_home);
obt_free0(p, ObtPaths, 1);
}
@@ -223,6 +231,11 @@ const gchar* obt_paths_data_home(ObtPaths *p)
return p->data_home;
}
+const gchar* obt_paths_cache_home(ObtPaths *p)
+{
+ return p->cache_home;
+}
+
GSList* obt_paths_config_dirs(ObtPaths *p)
{
return p->config_dirs;
diff --git a/obt/paths.h b/obt/paths.h
index b9a09595..a6e32ae1 100644
--- a/obt/paths.h
+++ b/obt/paths.h
@@ -31,6 +31,7 @@ void obt_paths_unref(ObtPaths *p);
const gchar* obt_paths_config_home(ObtPaths *p);
const gchar* obt_paths_data_home(ObtPaths *p);
+const gchar* obt_paths_cache_home(ObtPaths *p);
GSList* obt_paths_config_dirs(ObtPaths *p);
GSList* obt_paths_data_dirs(ObtPaths *p);