From 7c01dee153fe8b7dabbc4ff8f206097f4191b48f Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 5 May 2014 23:50:17 +0200 Subject: options: let unknown option case be handled by final option parser If an option is completely missing, let m_config_parse_option() handle this case, instead of erroring out early. Needed for the following commit. --- options/parse_commandline.c | 6 ++---- options/parse_configfile.c | 9 ++++----- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'options') diff --git a/options/parse_commandline.c b/options/parse_commandline.c index e1c84b9f27..cd1e70053c 100644 --- a/options/parse_commandline.c +++ b/options/parse_commandline.c @@ -82,11 +82,9 @@ static int split_opt_silent(struct parse_state *p) bool ambiguous = !bstr_split_tok(p->arg, "=", &p->arg, &p->param); - int r = m_config_option_requires_param(p->config, p->arg); - if (r < 0) - return r; + bool need_param = m_config_option_requires_param(p->config, p->arg) > 0; - if (ambiguous && r > 0) { + if (ambiguous && need_param) { if (p->argc < 1) return M_OPT_MISSING_PARAM; p->param = bstr0(p->argv[0]); diff --git a/options/parse_configfile.c b/options/parse_configfile.c index 5418082d03..a4ba67fd7e 100644 --- a/options/parse_configfile.c +++ b/options/parse_configfile.c @@ -228,13 +228,12 @@ int m_config_parse_config_file(m_config_t *config, const char *conffile, goto nextline; } - tmp = m_config_option_requires_param(config, bopt); - if (tmp > 0 && !param_set) - tmp = M_OPT_MISSING_PARAM; - if (tmp < 0) { + bool need_param = m_config_option_requires_param(config, bopt) > 0; + if (need_param && !param_set) { PRINT_LINENUM; MP_ERR(config, "error parsing option %.*s=%.*s: %s\n", - BSTR_P(bopt), BSTR_P(bparam), m_option_strerror(tmp)); + BSTR_P(bopt), BSTR_P(bparam), + m_option_strerror(M_OPT_MISSING_PARAM)); continue; } -- cgit v1.2.3