@ -225,11 +225,20 @@ transform_config_pathname(char **cfg, const char *secret)
if ( base ) {
const char * env_info ;
char * config_dir = NULL ;
if ( ( env_info = getenv ( " XDG_CONFIG_HOME " ) ) & & * env_info )
xasprintf ( cfg , " %s/gfsecret/%s.conf " , env_info , base ) ;
if ( ( env_info = getenv ( " XDG_CONFIG_HOME " ) ) & & * env_info )
xasprintf ( & con fi g_dir , " %s/gfsecret " , env_info ) ;
else if ( ( env_info = getenv ( " HOME " ) ) & & * env_info )
xasprintf ( cfg , " %s/.config/gfsecret/%s.conf " , env_info , base ) ;
xasprintf ( & config_dir , " %s/.config/gfsecret " , env_info ) ;
if ( config_dir ) {
if ( makedir ( config_dir , 0700 ) = = - 1 )
err ( EXIT_FAILURE , " Cannot create configuration directory " ) ;
xasprintf ( cfg , " %s/%s.conf " , config_dir , base ) ;
free ( config_dir ) ;
}
else
xasprintf ( cfg , " %s.conf " , base ) ;