summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-24 19:44:10 +0200
committerwm4 <wm4@nowhere>2013-07-24 19:44:10 +0200
commit31c271f4ad1c0ee2af8d1223243f0606ef3aa735 (patch)
treef287e0552df31596d11babf7c11a6b4dd2ed5f74
parent837377a6ce8b7088aa6f8dba639a84dc4949338b (diff)
downloadmpv-31c271f4ad1c0ee2af8d1223243f0606ef3aa735.tar.bz2
mpv-31c271f4ad1c0ee2af8d1223243f0606ef3aa735.tar.xz
m_config: don't override profile option if not required
The --profile top-level option is handled specially in m_config.c. But this code also broke sub-options that happened to be named "profile" (e.g. when trying to use "-af-add=bs2b=profile=cmoy"). Handle it specially only if it's the top-level --profile option.
-rw-r--r--core/m_config.c4
-rw-r--r--core/m_config.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/core/m_config.c b/core/m_config.c
index 84713276df..b5d1c3fefd 100644
--- a/core/m_config.c
+++ b/core/m_config.c
@@ -253,6 +253,8 @@ struct m_config *m_config_new(void *optstruct,
config->includefunc = includefunc;
}
+ config->use_profiles = true;
+
return config;
}
@@ -542,7 +544,7 @@ static int m_config_parse_option(struct m_config *config, void *optstruct,
if (config->includefunc && !bstrcmp0(name, "include")) {
return parse_include(config, param, set);
- } else if (!bstrcmp0(name, "profile"))
+ } else if (config->use_profiles && !bstrcmp0(name, "profile"))
return parse_profile(config, co->opt, name, param, set);
// Option with children are a bit different to parse
diff --git a/core/m_config.h b/core/m_config.h
index 28983944df..35955cfa4b 100644
--- a/core/m_config.h
+++ b/core/m_config.h
@@ -87,6 +87,7 @@ typedef struct m_config {
void *optstruct; // struct mpopts or other
int (*includefunc)(struct m_config *conf, char *filename);
+ bool use_profiles;
} m_config_t;
// Create a new config object.