- /* FIXME: a full memory page here - quite a waste... */
- static char homedir[PATH_MAX] = "";
-
- static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_lock (&lock);
-
- if (!*homedir)
- {
- const char *psz_localhome = getenv( "HOME" );
-#if defined(HAVE_GETPWUID_R)
- char buf[sysconf (_SC_GETPW_R_SIZE_MAX)];
- if (psz_localhome == NULL)
- {
- struct passwd pw, *res;
-
- if (!getpwuid_r (getuid (), &pw, buf, sizeof (buf), &res) && res)
- psz_localhome = pw.pw_dir;
- }
-#endif
- if (psz_localhome == NULL)
- psz_localhome = getenv( "TMP" );
- if (psz_localhome == NULL)
- psz_localhome = "/tmp";
-
- const char *uhomedir = FromLocale (psz_localhome);
- strncpy (homedir, uhomedir, sizeof (homedir) - 1);
- homedir[sizeof (homedir) - 1] = '\0';
- LocaleFree (uhomedir);
- }
- pthread_mutex_unlock (&lock);
- return homedir;
-}
-
-const char *config_GetConfDir( void )
-{
- static char path[PATH_MAX] = "";
-
-#warning FIXME: system config is not the same as shared app data...
- if( *path == '\0' )
- {
- snprintf( path, sizeof( path ), "%s" DIR_SEP "share", /* FIXME: Duh? */
- psz_vlcpath );
- path[sizeof( path ) - 1] = '\0';
- }
- return path;