summaryrefslogtreecommitdiffstats
path: root/m_option.h
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-04-19 04:11:52 +0300
committerUoti Urpala <uau@mplayer2.org>2011-04-20 04:22:52 +0300
commit2db33ab48cfa7858dacd2872b7e6b6b0c67b7214 (patch)
treec239ff1b2707431ef1d4fae191d29a600f3641eb /m_option.h
parentacc187cd208f20de9c5a71ac3de7e80b7f69c1dc (diff)
downloadmpv-2db33ab48cfa7858dacd2872b7e6b6b0c67b7214.tar.bz2
mpv-2db33ab48cfa7858dacd2872b7e6b6b0c67b7214.tar.xz
options: support string list separators other than ','
Allow specifying a custom separator character for options of string list type, and use that to define OPT_PATHLIST which takes a list of strings separated by ':' (or ';' on Windows).
Diffstat (limited to 'm_option.h')
-rw-r--r--m_option.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/m_option.h b/m_option.h
index 58deb9be8a..9486dd124e 100644
--- a/m_option.h
+++ b/m_option.h
@@ -22,6 +22,8 @@
#include <string.h>
#include <stddef.h>
+#include "config.h"
+
/// \defgroup Options
/// m_option allows to parse, print and copy data of various types.
/// It is the base of the \ref OptionsStruct, \ref Config and
@@ -536,11 +538,20 @@ m_option_free(const m_option_t* opt,void* dst) {
*/
int parse_timestring(const char *str, double *time, char endchar);
+#define OPTION_LIST_SEPARATOR ','
+
+#if HAVE_DOS_PATHS
+#define OPTION_PATH_SEPARATOR ';'
+#else
+#define OPTION_PATH_SEPARATOR ':'
+#endif
+
#define OPT_FLAG_ON(optname, varname, flags) {optname, NULL, &m_option_type_flag, flags, 0, 1, NULL, 1, offsetof(struct MPOpts, varname)}
#define OPT_FLAG_OFF(optname, varname, flags) {optname, NULL, &m_option_type_flag, flags, 1, 0, NULL, 1, offsetof(struct MPOpts, varname)}
#define OPT_MAKE_FLAGS(optname, varname, flags) OPT_FLAG_ON(optname, varname, flags), OPT_FLAG_OFF("no" optname, varname, flags)
#define OPT_FLAG_CONSTANTS(optname, varname, flags, offvalue, value) {optname, NULL, &m_option_type_flag, flags, offvalue, value, NULL, 1, offsetof(struct MPOpts, varname)}
#define OPT_STRINGLIST(optname, varname, flags) {optname, NULL, &m_option_type_string_list, flags, 0, 0, NULL, 1, offsetof(struct MPOpts, varname)}
+#define OPT_PATHLIST(optname, varname, flags) {optname, NULL, &m_option_type_string_list, flags, 0, 0, (void *)&(const char){OPTION_PATH_SEPARATOR}, 1, offsetof(struct MPOpts, varname)}
#define OPT_INT(optname, varname, flags) {optname, NULL, &m_option_type_int, flags, 0, 0, NULL, 1, offsetof(struct MPOpts, varname)}
#define OPT_INTRANGE(optname, varname, flags, min, max) {optname, NULL, &m_option_type_int, (flags)|CONF_RANGE, min, max, NULL, 1, offsetof(struct MPOpts, varname)}
#define OPT_INTPAIR(optname, varname, flags) {optname, NULL, &m_option_type_intpair, (flags), 0, 0, NULL, 1, offsetof(struct MPOpts, varname)}