diff options
author | wm4 <wm4@nowhere> | 2014-05-05 23:50:17 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-05-05 23:55:47 +0200 |
commit | 7c01dee153fe8b7dabbc4ff8f206097f4191b48f (patch) | |
tree | 05f1b8ae1c33fd44b0fd2fcf69e3ba7b0292d994 | |
parent | 20b5fecdf14736b739db5c53c740484cedb2fbf5 (diff) | |
download | mpv-7c01dee153fe8b7dabbc4ff8f206097f4191b48f.tar.bz2 mpv-7c01dee153fe8b7dabbc4ff8f206097f4191b48f.tar.xz |
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.
-rw-r--r-- | options/parse_commandline.c | 6 | ||||
-rw-r--r-- | options/parse_configfile.c | 9 |
2 files changed, 6 insertions, 9 deletions
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; } |