diff --git a/options/m_config.c b/options/m_config.c index 08465df97f..5c8a99b372 100644 --- a/options/m_config.c +++ b/options/m_config.c @@ -676,6 +676,12 @@ static int handle_set_opt_flags(struct m_config *config, return set ? 2 : 1; } +void m_config_mark_co_flags(struct m_config_option *co, int flags) +{ + if (flags & M_SETOPT_FROM_CMDLINE) + co->is_set_from_cmdline = true; +} + // Unlike m_config_set_option_raw() this does not go through the property layer // via config.option_set_callback. int m_config_set_option_raw_direct(struct m_config *config, @@ -696,9 +702,7 @@ int m_config_set_option_raw_direct(struct m_config *config, m_option_copy(co->opt, co->data, data); - if (flags & M_SETOPT_FROM_CMDLINE) - co->is_set_from_cmdline = true; - + m_config_mark_co_flags(co, flags); m_config_notify_change_co(config, co); return 0; diff --git a/options/m_config.h b/options/m_config.h index 74390f150b..4571488051 100644 --- a/options/m_config.h +++ b/options/m_config.h @@ -184,6 +184,8 @@ static inline int m_config_set_option0(struct m_config *config, int m_config_set_option_raw(struct m_config *config, struct m_config_option *co, void *data, int flags); +void m_config_mark_co_flags(struct m_config_option *co, int flags); + int m_config_set_option_raw_direct(struct m_config *config, struct m_config_option *co, void *data, int flags); diff --git a/player/command.c b/player/command.c index eae3f7116e..fe1596f18c 100644 --- a/player/command.c +++ b/player/command.c @@ -320,9 +320,8 @@ int mp_on_set_option(void *ctx, struct m_config_option *co, void *data, int flag if (r != M_PROPERTY_OK) return M_OPT_INVALID; - // The flag can't be passed through the property layer correctly. - if (flags & M_SETOPT_FROM_CMDLINE) - co->is_set_from_cmdline = true; + // The flags can't be passed through the property layer correctly. + m_config_mark_co_flags(co, flags); return 0;