summaryrefslogtreecommitdiffstats
path: root/core/m_config.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-09-20 03:32:01 +0200
committerwm4 <wm4@nowhere>2013-02-09 00:21:16 +0100
commit830560979c02b4e06924a813cf9bacb1629d40c9 (patch)
treec90295bcc2bc77bee2d2a8c13d661d5b20772117 /core/m_config.h
parentae070a6f1eff9f38dcd3ec785dd1f251e3761472 (diff)
downloadmpv-830560979c02b4e06924a813cf9bacb1629d40c9.tar.bz2
mpv-830560979c02b4e06924a813cf9bacb1629d40c9.tar.xz
options: change handling of "no-" options
Normally, all flag options can be negated by prepending a "no-", for example "--no-opt" becomes "--opt=no". Some flag options can't actually be negated, so add a CONF_TYPE_STORE option type to disallow the "no-" fallback. Do the same for choice options. Remove the explicit "no-" prefixed options, add "no" as choice. Move the handling of automatic "no-" options from parser-mpcmd.c to m_config.c, and use it in m_config_set_option/m_config_parse_option. This makes these options available in the config file. It also simplifies sub-option parsing, because it doesn't need to handle "no-" anymore.
Diffstat (limited to 'core/m_config.h')
-rw-r--r--core/m_config.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/m_config.h b/core/m_config.h
index de89803cac..8b9b0dc7f7 100644
--- a/core/m_config.h
+++ b/core/m_config.h
@@ -155,6 +155,17 @@ const struct m_option *m_config_get_option(const struct m_config *config,
struct m_config_option *m_config_get_co(const struct m_config *config,
struct bstr name);
+/* Map options like "no-opt=" to "opt=no".
+ * config The config object.
+ * \param name The option's name. May be set to a new name.
+ * \param param The option value. May be set to a new value.
+ * \return The following error codes:
+ * M_OPT_UNKNOWN: option not found
+ * M_OPT_INVALID: parameter non-empty in map case, prevents the mapping
+ * 0: success, *name and *param have been changed (or not)
+ */
+int m_config_map_option(struct m_config *config, bstr *name, bstr *param);
+
/* Print a list of all registered options.
* \param config The config object.
*/