cmdline: use g_build_filename() for ~/.mpdconf

Build the path with g_build_filename().  Also use g_get_home_dir() and
g_file_test().
This commit is contained in:
Max Kellermann 2008-12-27 19:46:43 +01:00
parent f5ff00bba4
commit 83fc948008

View File

@ -29,15 +29,10 @@
#include <glib.h> #include <glib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SYSTEM_CONFIG_FILE_LOCATION "/etc/mpd.conf" #define SYSTEM_CONFIG_FILE_LOCATION "/etc/mpd.conf"
#define USER_CONFIG_FILE_LOCATION "/.mpdconf" #define USER_CONFIG_FILE_LOCATION ".mpdconf"
static void version(void) static void version(void)
{ {
@ -131,21 +126,16 @@ void parseOptions(int argc, char **argv, Options *options)
if (argc <= 1) { if (argc <= 1) {
/* default configuration file path */ /* default configuration file path */
struct stat st; char *path;
char *homedir = getenv("HOME");
char userfile[MPD_PATH_MAX] = "";
if (homedir && (strlen(homedir) + path = g_build_filename(g_get_home_dir(),
strlen(USER_CONFIG_FILE_LOCATION)) < USER_CONFIG_FILE_LOCATION, NULL);
MPD_PATH_MAX) { if (g_file_test(path, G_FILE_TEST_IS_REGULAR))
strcpy(userfile, homedir); readConf(path);
strcat(userfile, USER_CONFIG_FILE_LOCATION); else if (g_file_test(SYSTEM_CONFIG_FILE_LOCATION,
} G_FILE_TEST_IS_REGULAR))
if (strlen(userfile) && 0 == stat(userfile, &st))
readConf(userfile);
else if (0 == stat(SYSTEM_CONFIG_FILE_LOCATION, &st))
readConf(SYSTEM_CONFIG_FILE_LOCATION); readConf(SYSTEM_CONFIG_FILE_LOCATION);
g_free(path);
} else if (argc == 2) { } else if (argc == 2) {
/* specified configuration file */ /* specified configuration file */
readConf(argv[1]); readConf(argv[1]);