From 8e5f9c8160b5186c93c5d76789ffa88f3e5c2fde Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 9 Sep 2011 21:32:12 +0200 Subject: conf: turn config_get_path() into config_dup_path() config_get_path() was somewhat flawed, because it pretended to be a function, when it really had a side effect. The second flaw was that it did not return the parser error, instead it aborted the whole process, which is bad style. The new function returns a duplicated (modified) string that must be freed by the caller, and returns a GError on failure. --- src/log.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/log.c') diff --git a/src/log.c b/src/log.c index 140b50a2e..86dd86eaa 100644 --- a/src/log.c +++ b/src/log.c @@ -271,10 +271,18 @@ log_init(bool verbose, bool use_stdout, GError **error_r) return true; #endif } else { - const char *path = config_get_path(CONF_LOG_FILE); - assert(path != NULL); - - return log_init_file(path, param->line, error_r); + GError *error = NULL; + char *path = config_dup_path(CONF_LOG_FILE, &error); + if (path == NULL) { + assert(error != NULL); + g_propagate_error(error_r, error); + return false; + } + + bool success = log_init_file(path, param->line, + error_r); + g_free(path); + return success; } } } -- cgit v1.2.3