diff --git a/src/conf.c b/src/conf.c
index 5f35d205d5d70369a0918d2f5cd4e349d2af5b1c..f9b6918e3df70cce1ba7ac5d0f5e717c6f4328bf 100644 (file)
--- a/src/conf.c
+++ b/src/conf.c
#define CONF_LYRICS_SHOW_PLUGIN "lyrics-show-plugin"
#define CONF_TEXT_EDITOR "text-editor"
#define CONF_TEXT_EDITOR_ASK "text-editor-ask"
+#define CONF_CHAT_PREFIX "chat-prefix"
#define CONF_SECOND_COLUMN "second-column"
static bool
options.text_editor_ask = str2bool(value);
#else
{}
+#endif
+ else if (!strcasecmp(name, CONF_CHAT_PREFIX))
+#ifdef ENABLE_CHAT_SCREEN
+ options.chat_prefix = get_format(value);
+#else
+ {}
#endif
else if (!strcasecmp(CONF_SECOND_COLUMN, name))
#ifdef NCMPC_MINI
return retval;
}
+char *
+build_user_conf_filename(void)
+{
+#ifdef WIN32
+ return g_build_filename(g_get_user_config_dir(), PACKAGE, "ncmpc.conf", NULL);
+#else
+ return g_build_filename(g_get_home_dir(), "." PACKAGE, "config", NULL);
+#endif
+}
+
+char *
+build_system_conf_filename(void)
+{
+#ifdef WIN32
+ const gchar* const *system_data_dirs;
+ gchar *pathname = NULL;
+
+ for (system_data_dirs = g_get_system_config_dirs (); *system_data_dirs != NULL; system_data_dirs++)
+ {
+ g_message (*system_data_dirs);
+ pathname = g_build_filename(*system_data_dirs, PACKAGE, "ncmpc.conf", NULL);
+ if (g_file_test(pathname, G_FILE_TEST_EXISTS))
+ {
+ break;
+ }
+ else
+ {
+ g_free (pathname);
+ pathname = NULL;
+ }
+ }
+ return pathname;
+#else
+ return g_build_filename(SYSCONFDIR, PACKAGE, "config", NULL);
+#endif
+}
+
char *
build_user_key_binding_filename(void)
{
+#ifdef WIN32
+ return g_build_filename(g_get_user_config_dir(), PACKAGE, "keys.conf", NULL);
+#else
return g_build_filename(g_get_home_dir(), "." PACKAGE, "keys", NULL);
+#endif
}
-int
+static char *
+g_build_system_key_binding_filename(void)
+{
+#ifdef WIN32
+ const gchar* const *system_data_dirs;
+ gchar *pathname = NULL;
+
+ for (system_data_dirs = g_get_system_config_dirs (); *system_data_dirs != NULL; system_data_dirs++)
+ {
+ g_message (*system_data_dirs);
+ pathname = g_build_filename(*system_data_dirs, PACKAGE, "keys.conf", NULL);
+ if (g_file_test(pathname, G_FILE_TEST_EXISTS))
+ {
+ break;
+ }
+ else
+ {
+ g_free (pathname);
+ pathname = NULL;
+ }
+ }
+ return pathname;
+#else
+ return g_build_filename(SYSCONFDIR, PACKAGE, "keys", NULL);
+#endif
+}
+
+void
read_configuration(void)
{
char *filename = NULL;
/* check for user configuration ~/.ncmpc/config */
if (filename == NULL) {
- filename = g_build_filename(g_get_home_dir(),
- "." PACKAGE, "config", NULL);
+ filename = build_user_conf_filename();
if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
g_free(filename);
filename = NULL;
/* check for global configuration SYSCONFDIR/ncmpc/config */
if (filename == NULL) {
- filename = g_build_filename(SYSCONFDIR, PACKAGE, "config", NULL);
+ filename = build_system_conf_filename();
if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
g_free(filename);
filename = NULL;
/* check for global key bindings SYSCONFDIR/ncmpc/keys */
if (filename == NULL) {
- filename = g_build_filename(SYSCONFDIR, PACKAGE, "keys", NULL);
+ filename = g_build_system_key_binding_filename();
if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
g_free(filename);
filename = NULL;
g_free(filename);
filename = NULL;
}
-
- return 0;
}