aboutsummaryrefslogtreecommitdiffstats
path: root/src/ConfigFile.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-01-30 19:44:59 +0100
committerMax Kellermann <max@duempel.org>2013-01-30 21:39:43 +0100
commite294ccae245a3ec86f9427075a06f045714e9b08 (patch)
treeff7310e06900b19e6300660dbce1b68970005cc9 /src/ConfigFile.cxx
parent72070f292b98ee8b38217b43dc046b047bcccd8e (diff)
downloadmpd-e294ccae245a3ec86f9427075a06f045714e9b08.tar.gz
mpd-e294ccae245a3ec86f9427075a06f045714e9b08.tar.xz
mpd-e294ccae245a3ec86f9427075a06f045714e9b08.zip
ConfigFile: move code to ConfigGlobal.cxx
Diffstat (limited to 'src/ConfigFile.cxx')
-rw-r--r--src/ConfigFile.cxx165
1 files changed, 4 insertions, 161 deletions
diff --git a/src/ConfigFile.cxx b/src/ConfigFile.cxx
index d10c90463..254d18410 100644
--- a/src/ConfigFile.cxx
+++ b/src/ConfigFile.cxx
@@ -18,26 +18,24 @@
*/
#include "config.h"
-#include "conf.h"
+#include "ConfigFile.hxx"
+#include "ConfigData.hxx"
#include "ConfigTemplates.hxx"
-#include "ConfigParser.hxx"
+#include "conf.h"
extern "C" {
-#include "utils.h"
#include "string_util.h"
#include "tokenizer.h"
}
#include "fs/Path.hxx"
#include "fs/FileSystem.hxx"
-#include "mpd_error.h"
#include <glib.h>
#include <assert.h>
#include <string.h>
#include <stdio.h>
-#include <stdlib.h>
#include <errno.h>
#undef G_LOG_DOMAIN
@@ -47,54 +45,6 @@ extern "C" {
#define CONF_COMMENT '#'
-static ConfigData config_data;
-
-static void
-config_param_free_callback(gpointer data, G_GNUC_UNUSED gpointer user_data)
-{
- struct config_param *param = (struct config_param *)data;
-
- config_param_free(param);
-}
-
-void config_global_finish(void)
-{
- for (auto i : config_data.params) {
- g_slist_foreach(i, config_param_free_callback, NULL);
- g_slist_free(i);
- }
-}
-
-void config_global_init(void)
-{
-}
-
-static void
-config_param_check(gpointer data, G_GNUC_UNUSED gpointer user_data)
-{
- struct config_param *param = (struct config_param *)data;
-
- if (!param->used)
- /* this whole config_param was not queried at all -
- the feature might be disabled at compile time?
- Silently ignore it here. */
- return;
-
- for (unsigned i = 0; i < param->num_block_params; i++) {
- struct block_param *bp = &param->block_params[i];
-
- if (!bp->used)
- g_warning("option '%s' on line %i was not recognized",
- bp->name, bp->line);
- }
-}
-
-void config_global_check(void)
-{
- for (auto i : config_data.params)
- g_slist_foreach(i, config_param_check, NULL);
-}
-
static bool
config_read_name_value(struct config_param *param, char *input, unsigned line,
GError **error_r)
@@ -187,7 +137,7 @@ config_read_block(FILE *fp, int *count, char *string, GError **error_r)
}
bool
-ReadConfigFile(const Path &path, GError **error_r)
+ReadConfigFile(ConfigData &config_data, const Path &path, GError **error_r)
{
assert(!path.IsNull());
const std::string path_utf8 = path.ToUTF8();
@@ -318,110 +268,3 @@ ReadConfigFile(const Path &path, GError **error_r)
return true;
}
-
-const struct config_param *
-config_get_next_param(ConfigOption option, const struct config_param * last)
-{
- GSList *node = config_data.params[unsigned(option)];
-
- if (last) {
- node = g_slist_find(node, last);
- if (node == NULL)
- return NULL;
-
- node = g_slist_next(node);
- }
-
- if (node == NULL)
- return NULL;
-
- struct config_param *param = (struct config_param *)node->data;
- param->used = true;
- return param;
-}
-
-const char *
-config_get_string(ConfigOption option, const char *default_value)
-{
- const struct config_param *param = config_get_param(option);
-
- if (param == NULL)
- return default_value;
-
- return param->value;
-}
-
-char *
-config_dup_path(ConfigOption option, GError **error_r)
-{
- assert(error_r != NULL);
- assert(*error_r == NULL);
-
- const struct config_param *param = config_get_param(option);
- if (param == NULL)
- return NULL;
-
- char *path = parsePath(param->value, error_r);
- if (G_UNLIKELY(path == NULL))
- g_prefix_error(error_r,
- "Invalid path at line %i: ",
- param->line);
-
- return path;
-}
-
-unsigned
-config_get_unsigned(ConfigOption option, unsigned default_value)
-{
- const struct config_param *param = config_get_param(option);
- long value;
- char *endptr;
-
- if (param == NULL)
- return default_value;
-
- value = strtol(param->value, &endptr, 0);
- if (*endptr != 0 || value < 0)
- MPD_ERROR("Not a valid non-negative number in line %i",
- param->line);
-
- return (unsigned)value;
-}
-
-unsigned
-config_get_positive(ConfigOption option, unsigned default_value)
-{
- const struct config_param *param = config_get_param(option);
- long value;
- char *endptr;
-
- if (param == NULL)
- return default_value;
-
- value = strtol(param->value, &endptr, 0);
- if (*endptr != 0)
- MPD_ERROR("Not a valid number in line %i", param->line);
-
- if (value <= 0)
- MPD_ERROR("Not a positive number in line %i", param->line);
-
- return (unsigned)value;
-}
-
-bool
-config_get_bool(ConfigOption option, bool default_value)
-{
- const struct config_param *param = config_get_param(option);
- bool success, value;
-
- if (param == NULL)
- return default_value;
-
- success = get_bool(param->value, &value);
- if (!success)
- MPD_ERROR("Expected boolean value (yes, true, 1) or "
- "(no, false, 0) on line %i\n",
- param->line);
-
- return value;
-}