add function to give the list of autostart directories
This commit is contained in:
parent
0b9910b442
commit
4cff6c0e3b
2 changed files with 16 additions and 0 deletions
15
obt/paths.c
15
obt/paths.c
|
@ -37,6 +37,7 @@ struct _ObtPaths
|
|||
gchar *cache_home;
|
||||
GSList *config_dirs;
|
||||
GSList *data_dirs;
|
||||
GSList *autostart_dirs;
|
||||
};
|
||||
|
||||
static gint slist_path_cmp(const gchar *a, const gchar *b)
|
||||
|
@ -79,6 +80,7 @@ ObtPaths* obt_paths_new(void)
|
|||
{
|
||||
ObtPaths *p;
|
||||
const gchar *path;
|
||||
GSList *it;
|
||||
|
||||
p = g_slice_new0(ObtPaths);
|
||||
p->ref = 1;
|
||||
|
@ -119,6 +121,11 @@ ObtPaths* obt_paths_new(void)
|
|||
g_strdup(p->config_home),
|
||||
(GSListFunc) g_slist_prepend);
|
||||
|
||||
for (it = p->config_dirs; it; it = g_slist_next(it)) {
|
||||
gchar *const s = g_strdup_printf("%s/autostart", (gchar*)it->data);
|
||||
p->autostart_dirs = g_slist_append(p->autostart_dirs, s);
|
||||
}
|
||||
|
||||
path = g_getenv("XDG_DATA_DIRS");
|
||||
if (path && path[0] != '\0') /* not unset or empty */
|
||||
p->data_dirs = split_paths(path);
|
||||
|
@ -159,6 +166,9 @@ void obt_paths_unref(ObtPaths *p)
|
|||
for (it = p->data_dirs; it; it = g_slist_next(it))
|
||||
g_free(it->data);
|
||||
g_slist_free(p->data_dirs);
|
||||
for (it = p->autostart_dirs; it; it = g_slist_next(it))
|
||||
g_free(it->data);
|
||||
g_slist_free(p->autostart_dirs);
|
||||
g_free(p->config_home);
|
||||
g_free(p->data_home);
|
||||
g_free(p->cache_home);
|
||||
|
@ -247,3 +257,8 @@ GSList* obt_paths_data_dirs(ObtPaths *p)
|
|||
{
|
||||
return p->data_dirs;
|
||||
}
|
||||
|
||||
GSList* obt_paths_autostart_dirs(ObtPaths *p)
|
||||
{
|
||||
return p->autostart_dirs;
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ 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);
|
||||
GSList* obt_paths_autostart_dirs(ObtPaths *p);
|
||||
|
||||
gchar *obt_paths_expand_tilde(const gchar *f);
|
||||
gboolean obt_paths_mkdir(const gchar *path, gint mode);
|
||||
|
|
Loading…
Reference in a new issue