summaryrefslogtreecommitdiffstats
path: root/m_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'm_config.c')
-rw-r--r--m_config.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/m_config.c b/m_config.c
index e8996670f4..7545cdb4eb 100644
--- a/m_config.c
+++ b/m_config.c
@@ -67,7 +67,8 @@ static int parse_profile(struct m_config *config, const struct m_option *opt,
}
char **list = NULL;
- int r = m_option_type_string_list.parse(opt, name, param, false, &list);
+ int r = m_option_type_string_list.parse(opt, name, param, false, &list,
+ NULL);
if (r < 0)
return r;
if (!list || !list[0])
@@ -144,7 +145,7 @@ static void m_option_save(const struct m_config *config,
{
if (opt->type->copy) {
const void *src = m_option_get_ptr(opt, config->optstruct);
- opt->type->copy(opt, dst, src);
+ opt->type->copy(opt, dst, src, NULL);
}
}
@@ -153,7 +154,7 @@ static void m_option_set(void *optstruct,
{
if (opt->type->copy) {
void *dst = m_option_get_ptr(opt, optstruct);
- opt->type->copy(opt, dst, src);
+ opt->type->copy(opt, dst, src, optstruct);
}
}
@@ -483,7 +484,8 @@ static int m_config_parse_option(struct m_config *config, void *optstruct,
}
void *dst = set ? m_option_get_ptr(co->opt, optstruct) : NULL;
- int r = m_option_parse(co->opt, name, param, ambiguous_param, dst);
+ int r = co->opt->type->parse(co->opt, name, param, ambiguous_param, dst,
+ optstruct);
// Parsing failed ?
if (r < 0)
return r;
@@ -498,7 +500,8 @@ static int parse_subopts(struct m_config *config, void *optstruct, char *name,
{
char **lst = NULL;
// Split the argument into child options
- int r = m_option_type_subconfig.parse(NULL, bstr(""), param, false, &lst);
+ int r = m_option_type_subconfig.parse(NULL, bstr(""), param, false, &lst,
+ optstruct);
if (r < 0)
return r;
// Parse the child options