summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-05-22 18:30:39 +0200
committerwm4 <wm4@nowhere>2017-05-22 18:31:39 +0200
commit25a4d10c8e75d9ff94e843d4951ab1eb2917435e (patch)
treebe6df52ee4965ce2e9583e095c5f22cc70814541
parent5974f575a6ac9c107afa292bd877a73a5221952b (diff)
downloadmpv-25a4d10c8e75d9ff94e843d4951ab1eb2917435e.tar.bz2
mpv-25a4d10c8e75d9ff94e843d4951ab1eb2917435e.tar.xz
player: make sure version information is always included in --log-file
If --log-file was used in config files, this could be missing due to the exact timing when the messages are print, and when the options are applied. Fix this by always dumping the version again when a log file is opened.
-rw-r--r--common/msg.c13
-rw-r--r--common/msg_control.h1
-rw-r--r--player/main.c5
3 files changed, 19 insertions, 0 deletions
diff --git a/common/msg.c b/common/msg.c
index 875d933822..cf2bd5c242 100644
--- a/common/msg.c
+++ b/common/msg.c
@@ -537,7 +537,20 @@ void mp_msg_force_stderr(struct mpv_global *global, bool force_stderr)
{
struct mp_log_root *root = global->log->root;
+ pthread_mutex_lock(&mp_msg_lock);
root->force_stderr = force_stderr;
+ pthread_mutex_unlock(&mp_msg_lock);
+}
+
+bool mp_msg_has_log_file(struct mpv_global *global)
+{
+ struct mp_log_root *root = global->log->root;
+
+ pthread_mutex_lock(&mp_msg_lock);
+ bool res = !!root->log_file;
+ pthread_mutex_unlock(&mp_msg_lock);
+
+ return res;
}
void mp_msg_uninit(struct mpv_global *global)
diff --git a/common/msg_control.h b/common/msg_control.h
index 56091fdc2d..4b67190155 100644
--- a/common/msg_control.h
+++ b/common/msg_control.h
@@ -9,6 +9,7 @@ void mp_msg_uninit(struct mpv_global *global);
void mp_msg_update_msglevels(struct mpv_global *global);
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_log_file(struct mpv_global *global);
void mp_msg_flush_status_line(struct mp_log *log);
diff --git a/player/main.c b/player/main.c
index 2045e3b40a..fa00f0a463 100644
--- a/player/main.c
+++ b/player/main.c
@@ -114,6 +114,8 @@ static bool cas_terminal_owner(struct MPContext *old, struct MPContext *new)
void mp_update_logging(struct MPContext *mpctx, bool preinit)
{
+ bool had_log_file = mp_msg_has_log_file(mpctx->global);
+
mp_msg_update_msglevels(mpctx->global);
bool enable = mpctx->opts->use_terminal;
@@ -128,6 +130,9 @@ void mp_update_logging(struct MPContext *mpctx, bool preinit)
}
}
+ if (mp_msg_has_log_file(mpctx->global) && !had_log_file)
+ mp_print_version(mpctx->log, false); // for log-file=... in config files
+
if (enabled && !preinit && mpctx->opts->consolecontrols)
terminal_setup_getch(mpctx->input);
}