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:
parent
f5ff00bba4
commit
83fc948008
@ -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]);
|
||||||
|
Loading…
Reference in New Issue
Block a user