From: Lennart Poettering Date: Fri, 11 Apr 2008 16:58:07 +0000 (+0000) Subject: add new pa_get_state_dir() function, move pa_strnull() here X-Git-Tag: submit/2.0-panda/20130828.192557~2837^2^2~141 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cdb273de904a0a66fee2c0dc0c164455f8c035ac;p=profile%2Fivi%2Fpulseaudio-panda.git add new pa_get_state_dir() function, move pa_strnull() here git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2257 fefdeb5f-60dc-0310-8127-8f9354f1896f --- diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 61d04c2..28885b2 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -1093,6 +1093,35 @@ int pa_unlock_lockfile(const char *fn, int fd) { return r; } +char *pa_get_state_dir(void) { + const char *e; + char *d; + + if ((e = getenv("PULSE_STATE_PATH"))) + d = pa_xstrdup(e); + else { + char h[PATH_MAX]; + + if (!pa_get_home_dir(h, sizeof(h))) { + pa_log_error("Failed to get home directory."); + return NULL; + } + + d = pa_sprintf_malloc("%s/.pulse", h); + } + + mkdir(d, 0755); + + if (access(d, W_OK) == 0) + return d; + + pa_log_error("Failed to set up state directory %s", d); + + pa_xfree(d); + + return NULL; +} + /* Try to open a configuration file. If "env" is specified, open the * value of the specified environment variable. Otherwise look for a * file "local" in the home directory or a file "global" in global diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h index c8760a1..d5c0a3f 100644 --- a/src/pulsecore/core-util.h +++ b/src/pulsecore/core-util.h @@ -30,7 +30,7 @@ #include #include -#include +#include #include struct timeval; @@ -67,6 +67,10 @@ static inline const char *pa_yes_no(pa_bool_t b) { return b ? "yes" : "no"; } +static inline const char *pa_strnull(const char *x) { + return x ? x : "(null)"; +} + char *pa_split(const char *c, const char*delimiters, const char **state); char *pa_split_spaces(const char *c, const char **state); @@ -129,4 +133,6 @@ void pa_close_pipe(int fds[2]); char *pa_readlink(const char *p); +char *pa_get_state_dir(void); + #endif