From: Max Kellermann Date: Fri, 8 Nov 2013 18:41:53 +0000 (+0100) Subject: conf: simplify read_configuration() X-Git-Tag: v0.22~17 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=ebda16c6541f5eaf89801999511e0a791d455f62;p=ncmpc.git conf: simplify read_configuration() Move code to find_config_file() and find_keys_file(). --- diff --git a/src/conf.c b/src/conf.c index 87dd310..87fa51e 100644 --- a/src/conf.c +++ b/src/conf.c @@ -678,66 +678,66 @@ g_build_system_key_binding_filename(void) #endif } -void -read_configuration(void) +static char * +find_config_file(void) { - char *filename = NULL; - /* check for command line configuration file */ - if (options.config_file) - filename = g_strdup(options.config_file); + if (options.config_file != NULL) + return g_strdup(options.config_file); /* check for user configuration ~/.ncmpc/config */ - if (filename == NULL) { - filename = build_user_conf_filename(); - if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { - g_free(filename); - filename = NULL; - } - } + char *filename = build_user_conf_filename(); + if (g_file_test(filename, G_FILE_TEST_IS_REGULAR)) + return filename; + + g_free(filename); /* check for global configuration SYSCONFDIR/ncmpc/config */ - if (filename == NULL) { - filename = build_system_conf_filename(); - if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { - g_free(filename); - filename = NULL; - } - } + filename = build_system_conf_filename(); + if (g_file_test(filename, G_FILE_TEST_IS_REGULAR)) + return filename; - /* load configuration */ - if (filename) { - read_rc_file(filename); - g_free(filename); - filename = NULL; - } + g_free(filename); + return NULL; +} +static char * +find_keys_file(void) +{ /* check for command line key binding file */ - if (options.key_file) - filename = g_strdup(options.key_file); + if (options.key_file != NULL) + return g_strdup(options.key_file); /* check for user key bindings ~/.ncmpc/keys */ - if (filename == NULL) { - filename = build_user_key_binding_filename(); - if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { - g_free(filename); - filename = NULL; - } - } + char *filename = build_user_key_binding_filename(); + if (g_file_test(filename, G_FILE_TEST_IS_REGULAR)) + return filename; + + g_free(filename); /* check for global key bindings SYSCONFDIR/ncmpc/keys */ - if (filename == NULL) { - filename = g_build_system_key_binding_filename(); - if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { - g_free(filename); - filename = NULL; - } + filename = g_build_system_key_binding_filename(); + if (g_file_test(filename, G_FILE_TEST_IS_REGULAR)) + return filename; + + g_free(filename); + return NULL; +} + +void +read_configuration(void) +{ + /* load configuration */ + char *filename = find_config_file(); + if (filename != NULL) { + read_rc_file(filename); + g_free(filename); } /* load key bindings */ - if (filename) { + filename = find_keys_file(); + if (filename != NULL) { read_rc_file(filename); g_free(filename); - filename = NULL; } }