summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-09-02 19:31:01 +0200
committerLennart Poettering <lennart@poettering.net>2008-09-02 19:31:01 +0200
commit290730ffc05735874a584063a838a8a30ce2baca (patch)
tree65d24ec1848dedd38b3f1e8cbf8db2c957353484
parent34638aee00db2f51ad378d0c9056faf894e82918 (diff)
export ca_get_data_home() and ca_get_data_dirs()
-rw-r--r--src/sound-theme-spec.c21
-rw-r--r--src/sound-theme-spec.h3
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