diff options
author | Uoti Urpala <uau@mplayer2.org> | 2011-07-29 07:52:29 +0300 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-07-29 07:58:56 +0300 |
commit | ad48f8038cf3aa6392912ba65fede7cf71250001 (patch) | |
tree | c9b1352d6e83f80a7b8fbe55075272061d94c32f /parser-mpcmd.c | |
parent | 5d5ca22a6d9e87d3865ea2feb54218a6e0dfffea (diff) | |
download | mpv-ad48f8038cf3aa6392912ba65fede7cf71250001.tar.bz2 mpv-ad48f8038cf3aa6392912ba65fede7cf71250001.tar.xz |
options: commandline: print error type for parse failures
If parsing an option fails, print a string corresponding to the parse
function return value (M_OPT_MISSING_PARAM etc). The primary
motivation is that the parsing code already outputs messages
explaining most problems, but does not itself print anything in the
missing parameter case. Before double-dash --options such errors were
rare (or rather they resulted in the next commandline argument being
silently misinterpreted as an argument to the previous option
instead); but now an argument like "--ss" should give a better
indication about the problem than just "Error parsing option".
Diffstat (limited to 'parser-mpcmd.c')
-rw-r--r-- | parser-mpcmd.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/parser-mpcmd.c b/parser-mpcmd.c index 112c5fdba8..59b35f0faa 100644 --- a/parser-mpcmd.c +++ b/parser-mpcmd.c @@ -192,8 +192,15 @@ play_tree_t *m_config_parse_mp_command_line(m_config_t *config, int argc, if (r <= M_OPT_EXIT) { opt_exit = true; r = M_OPT_EXIT - r; - } else if (r < 0) - goto print_err; + } else if (r < 0) { + char *msg = m_option_strerror(r); + if (!msg) + goto print_err; + mp_tmsg(MSGT_CFGPARSER, MSGL_FATAL, + "Error parsing commandline option \"%.*s\": %s\n", + BSTR_P(orig_opt), msg); + goto err_out; + } if (old_syntax) i += r; } |