summaryrefslogtreecommitdiffstats
path: root/options
diff options
context:
space:
mode:
authorwd0 <wd@europa>2015-03-29 03:03:34 -0400
committerwm4 <wm4@nowhere>2015-03-29 13:44:34 +0200
commit38b05daf7d16898f4a63e4ccf48479d8964e6e19 (patch)
tree1a2b4577dcafb6426f2128781ed835084156cb2f /options
parent4f7abd5e43796c8d47cf0d33546fb647cd137cb3 (diff)
downloadmpv-38b05daf7d16898f4a63e4ccf48479d8964e6e19.tar.bz2
mpv-38b05daf7d16898f4a63e4ccf48479d8964e6e19.tar.xz
parse_commandline: fail gracefully on bad args
Args of zero length (i.e. --=) now display a proper error message. Signed-off-by: wm4 <wm4@nowhere>
Diffstat (limited to 'options')
-rw-r--r--options/m_option.c2
-rw-r--r--options/parse_commandline.c7
2 files changed, 6 insertions, 3 deletions
diff --git a/options/m_option.c b/options/m_option.c
index ea4b8d18b9..2b34c4e918 100644
--- a/options/m_option.c
+++ b/options/m_option.c
@@ -61,7 +61,7 @@ char *m_option_strerror(int code)
case M_OPT_MISSING_PARAM:
return "option requires parameter";
case M_OPT_INVALID:
- return "option parameter could not be parsed";
+ return "option could not be parsed";
case M_OPT_OUT_OF_RANGE:
return "parameter is outside values allowed for option";
case M_OPT_DISALLOW_PARAM:
diff --git a/options/parse_commandline.c b/options/parse_commandline.c
index 6898075430..651f4a9728 100644
--- a/options/parse_commandline.c
+++ b/options/parse_commandline.c
@@ -80,6 +80,9 @@ static int split_opt_silent(struct parse_state *p)
bool ambiguous = !bstr_split_tok(p->arg, "=", &p->arg, &p->param);
+ if (!p->arg.len)
+ return M_OPT_INVALID;
+
bool need_param = m_config_option_requires_param(p->config, p->arg) > 0;
if (ambiguous && need_param) {
@@ -100,7 +103,7 @@ static bool split_opt(struct parse_state *p)
return r == 0;
p->error = true;
- MP_FATAL(p->config, "Error parsing commandline option %.*s: %s\n",
+ MP_FATAL(p->config, "Error parsing command line option '%.*s': %s\n",
BSTR_P(p->arg), m_option_strerror(r));
return false;
}
@@ -154,7 +157,7 @@ int m_config_parse_mp_command_line(m_config_t *config, struct playlist *files,
goto err_out;
}
if (r < 0) {
- MP_FATAL(config, "Setting commandline option --%.*s=%.*s failed.\n",
+ MP_FATAL(config, "Setting command line option '--%.*s=%.*s' failed.\n",
BSTR_P(p.arg), BSTR_P(p.param));
goto err_out;
}