diff options
author | Lennart Poettering <lennart@poettering.net> | 2008-09-02 19:31:01 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2008-09-02 19:31:01 +0200 |
commit | 290730ffc05735874a584063a838a8a30ce2baca (patch) | |
tree | 65d24ec1848dedd38b3f1e8cbf8db2c957353484 | |
parent | 34638aee00db2f51ad378d0c9056faf894e82918 (diff) |
export ca_get_data_home() and ca_get_data_dirs()
-rw-r--r-- | src/sound-theme-spec.c | 21 | ||||
-rw-r--r-- | src/sound-theme-spec.h | 3 |
2 files changed, 17 insertions, 7 deletions
diff --git a/src/sound-theme-spec.c b/src/sound-theme-spec.c index ffa5b5b..e906e9a 100644 --- a/src/sound-theme-spec.c +++ b/src/sound-theme-spec.c @@ -56,7 +56,7 @@ struct ca_theme_data { ca_bool_t loaded_fallback_theme; }; -static int get_data_home(char **e) { +int ca_get_data_home(char **e) { const char *env, *subdir; char *r; ca_return_val_if_fail(e, CA_ERROR_INVALID); @@ -314,6 +314,15 @@ fail: return ret; } +const char *ca_get_data_dirs(void) { + const char *g; + + if (!(g = getenv("XDG_DATA_DIRS")) || *g == 0) + return "/usr/local/share:/usr/share"; + + return g; +} + static int load_theme_dir(ca_theme_data *t, const char *name) { int ret; char *e; @@ -326,7 +335,7 @@ static int load_theme_dir(ca_theme_data *t, const char *name) { if (ca_streq(name, FALLBACK_THEME)) t->loaded_fallback_theme = TRUE; - if ((ret = get_data_home(&e)) < 0) + if ((ret = ca_get_data_home(&e)) < 0) return ret; if (e) { @@ -337,8 +346,7 @@ static int load_theme_dir(ca_theme_data *t, const char *name) { return ret; } - if (!(g = getenv("XDG_DATA_DIRS")) || *g == 0) - g = "/usr/local/share:/usr/share"; + g = ca_get_data_dirs(); for (;;) { size_t k; @@ -603,7 +611,7 @@ static int find_sound_in_subdir( ca_return_val_if_fail(sfopen, CA_ERROR_INVALID); ca_return_val_if_fail(name, CA_ERROR_INVALID); - if ((ret = get_data_home(&e)) < 0) + if ((ret = ca_get_data_home(&e)) < 0) return ret; if (e) { @@ -614,8 +622,7 @@ static int find_sound_in_subdir( return ret; } - if (!(g = getenv("XDG_DATA_DIRS")) || *g == 0) - g = "/usr/local/share:/usr/share"; + g = ca_get_data_dirs(); for (;;) { size_t k; diff --git a/src/sound-theme-spec.h b/src/sound-theme-spec.h index 57278b9..7511eed 100644 --- a/src/sound-theme-spec.h +++ b/src/sound-theme-spec.h @@ -30,4 +30,7 @@ int ca_lookup_sound(ca_sound_file **f, ca_theme_data **t, ca_proplist *cp, ca_pr int ca_lookup_sound_with_callback(ca_sound_file **f, ca_sound_file_open_callback_t sfopen, ca_theme_data **t, ca_proplist *cp, ca_proplist *sp); void ca_theme_data_free(ca_theme_data *t); +int ca_get_data_home(char **e); +const char *ca_get_data_dirs(void); + #endif |