summaryrefslogtreecommitdiffstats
path: root/m_option.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-08-06 17:42:53 +0200
committerwm4 <wm4@nowhere>2012-08-06 17:42:53 +0200
commit0c1dd8a8f54a152755faef3d323ce6fdc7d63f73 (patch)
treea36668b2ab9fead7c6dd6c0d72a26daa1b68f597 /m_option.h
parent1ce5ca5f26d65359de632cc96a3d745fdeab2465 (diff)
downloadmpv-0c1dd8a8f54a152755faef3d323ce6fdc7d63f73.tar.bz2
mpv-0c1dd8a8f54a152755faef3d323ce6fdc7d63f73.tar.xz
m_config: support flatten and merge flags for suboptions
M_OPT_PREFIXED allows adding top-level options with the suboption mechanism. The point of this is that, even though these options are top-level options, they don't need to be added directly to a top- level option array (such as mplayer_opts[]). Instead, the suboption can be defined in a separate source file. Only a suboption declaration is needed to add these options. M_OPT_MERGE is similar to M_OPT_PREFIXED, but doesn't add the name of the suboptions entry as prefix. Given you have a suboption declaration "prefix" and the suboption "subopt", you can pass them as follows on the command line: normal: --prefix=subopt=value M_OPT_PREFIXED: --prefix-subopt=value M_OPT_MERGE: --subopt=value
Diffstat (limited to 'm_option.h')
-rw-r--r--m_option.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/m_option.h b/m_option.h
index 4ab7e9c1d2..e0321d1de1 100644
--- a/m_option.h
+++ b/m_option.h
@@ -290,6 +290,14 @@ struct m_option {
// For m_option_type_choice, the first listed choice will be used.
#define M_OPT_IMPLICIT_DEFAULT (1 << 7)
+// For options with children, add all children as top-level arguments
+// (e.g. "--parent=child=value" becomes "--parent-child=value")
+#define M_OPT_PREFIXED (1 << 8)
+
+// Similar to M_OPT_PREFIXED, but drop the prefix.
+// (e.g. "--parent=child=value" becomes "--child=value")
+#define M_OPT_MERGE (1 << 9)
+
// These are kept for compatibility with older code.
#define CONF_MIN M_OPT_MIN
#define CONF_MAX M_OPT_MAX