options: remove unneeded hack from command line parser

This was traditionally needed to silence terminal output from errors
during command line parsing preparsing. Preparsing is done so that
options controlling the terminal and config files are parsed and applied
first, with a second command line parsing pass applying all other
options, _and_ printing error messages for the preparsed ones.

But the hack silencing log output during the preparse pass is actually
not needed anymore, since the terminal is enabled only after preparsing
is finished. update_logging() in main.c does this.

So as long as update_logging() is called before
m_config_preparse_command_line(), this will work.
This commit is contained in:
wm4 2015-04-23 21:08:19 +02:00
parent b98949c72c
commit 91f6f2bf11
3 changed files with 1 additions and 16 deletions

View File

@ -61,8 +61,6 @@ struct mp_log_root {
int num_buffers; int num_buffers;
FILE *log_file; FILE *log_file;
FILE *stats_file; FILE *stats_file;
// --- semi-atomic access
bool mute;
// --- must be accessed atomically // --- must be accessed atomically
/* This is incremented every time the msglevels must be reloaded. /* This is incremented every time the msglevels must be reloaded.
* (This is perhaps better than maintaining a globally accessible and * (This is perhaps better than maintaining a globally accessible and
@ -133,7 +131,7 @@ static void update_loglevel(struct mp_log *log)
bool mp_msg_test(struct mp_log *log, int lev) bool mp_msg_test(struct mp_log *log, int lev)
{ {
struct mp_log_root *root = log->root; struct mp_log_root *root = log->root;
if (!root || root->mute) if (!root)
return false; return false;
if (atomic_load_explicit(&log->reload_counter, memory_order_relaxed) != if (atomic_load_explicit(&log->reload_counter, memory_order_relaxed) !=
atomic_load_explicit(&root->reload_counter, memory_order_relaxed)) atomic_load_explicit(&root->reload_counter, memory_order_relaxed))
@ -486,13 +484,6 @@ void mp_msg_update_msglevels(struct mpv_global *global)
pthread_mutex_unlock(&mp_msg_lock); pthread_mutex_unlock(&mp_msg_lock);
} }
void mp_msg_mute(struct mpv_global *global, bool mute)
{
struct mp_log_root *root = global->log->root;
root->mute = mute;
}
void mp_msg_force_stderr(struct mpv_global *global, bool force_stderr) void mp_msg_force_stderr(struct mpv_global *global, bool force_stderr)
{ {
struct mp_log_root *root = global->log->root; struct mp_log_root *root = global->log->root;

View File

@ -7,7 +7,6 @@ struct mpv_global;
void mp_msg_init(struct mpv_global *global); void mp_msg_init(struct mpv_global *global);
void mp_msg_uninit(struct mpv_global *global); void mp_msg_uninit(struct mpv_global *global);
void mp_msg_update_msglevels(struct mpv_global *global); void mp_msg_update_msglevels(struct mpv_global *global);
void mp_msg_mute(struct mpv_global *global, bool mute);
void mp_msg_force_stderr(struct mpv_global *global, bool force_stderr); void mp_msg_force_stderr(struct mpv_global *global, bool force_stderr);
bool mp_msg_has_status_line(struct mpv_global *global); bool mp_msg_has_status_line(struct mpv_global *global);

View File

@ -285,9 +285,6 @@ void m_config_preparse_command_line(m_config_t *config, struct mpv_global *globa
{ {
struct MPOpts *opts = global->opts; struct MPOpts *opts = global->opts;
// Hack to shut up parser error messages
mp_msg_mute(global, true);
struct parse_state p = {config, argv}; struct parse_state p = {config, argv};
while (split_opt_silent(&p) == 0) { while (split_opt_silent(&p) == 0) {
if (p.is_opt) { if (p.is_opt) {
@ -300,8 +297,6 @@ void m_config_preparse_command_line(m_config_t *config, struct mpv_global *globa
} }
} }
mp_msg_mute(global, false);
for (int n = 0; n < config->num_opts; n++) for (int n = 0; n < config->num_opts; n++)
config->opts[n].warning_was_printed = false; config->opts[n].warning_was_printed = false;
} }