diff options
author | wm4 <wm4@nowhere> | 2015-05-07 21:03:14 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-05-07 21:03:14 +0200 |
commit | 036a49478ff6cc19abfa06b7807bd4653eb9ce33 (patch) | |
tree | 869659161cc067659aa72b477b58f4a777cd4717 /options/m_config.c | |
parent | b12ca2b980f8c5c620b42c2c034bb27a824cc112 (diff) | |
download | mpv-036a49478ff6cc19abfa06b7807bd4653eb9ce33.tar.bz2 mpv-036a49478ff6cc19abfa06b7807bd4653eb9ce33.tar.xz |
m_config: make m_config_set_profile() use a name
Is simpler and avoids exposing profile structs to a degree.
Diffstat (limited to 'options/m_config.c')
-rw-r--r-- | options/m_config.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/options/m_config.c b/options/m_config.c index 4809191efc..e513019c59 100644 --- a/options/m_config.c +++ b/options/m_config.c @@ -102,12 +102,10 @@ static int parse_profile(struct m_config *config, const struct m_option *opt, if (!list || !list[0]) return M_OPT_INVALID; for (int i = 0; list[i]; i++) { - struct m_profile *p = m_config_get_profile0(config, list[i]); - if (!p) { - MP_WARN(config, "Unknown profile '%s'.\n", list[i]); - r = M_OPT_INVALID; - } else if (set) - m_config_set_profile(config, p, flags); + if (set) + r = m_config_set_profile(config, list[i], flags); + if (r < 0) + break; } m_option_free(opt, &list); return r; @@ -897,12 +895,17 @@ int m_config_set_profile_option(struct m_config *config, struct m_profile *p, return 1; } -void m_config_set_profile(struct m_config *config, struct m_profile *p, - int flags) +int m_config_set_profile(struct m_config *config, char *name, int flags) { + struct m_profile *p = m_config_get_profile0(config, name); + if (!p) { + MP_WARN(config, "Unknown profile '%s'.\n", name); + return M_OPT_INVALID; + } + if (config->profile_depth > MAX_PROFILE_DEPTH) { MP_WARN(config, "WARNING: Profile inclusion too deep.\n"); - return; + return M_OPT_UNKNOWN; } config->profile_depth++; for (int i = 0; i < p->num_opts; i++) { @@ -912,6 +915,8 @@ void m_config_set_profile(struct m_config *config, struct m_profile *p, flags | M_SETOPT_FROM_CONFIG_FILE); } config->profile_depth--; + + return 0; } void *m_config_alloc_struct(void *talloc_ctx, |