From 5bb98290d7f11fc6b9fb2d8b33277483f5f3ccc4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 16 May 2013 21:33:27 +0300 Subject: [PATCH] Fix bug #14408 with updating *Messages* display. src/xdisp.c (message_dolog): If the *Messages* buffer is shown in some window, increment windows_or_buffers_changed, so that *Messages* display in that window is updated. --- src/ChangeLog | 4 ++++ src/xdisp.c | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index e5308e2db3b..42b21abc8ae 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2013-05-16 Eli Zaretskii + * xdisp.c (message_dolog): If the *Messages* buffer is shown in + some window, increment windows_or_buffers_changed, so that + *Messages* display in that window is updated. (Bug#14408) + * w32.c: Include epaths.h. (init_environment): Use cmdproxy.exe without leading directories. Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that diff --git a/src/xdisp.c b/src/xdisp.c index 0a79e6fd891..3f7e8610a09 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -9537,7 +9537,15 @@ message_dolog (const char *m, ptrdiff_t nbytes, bool nlflag, bool multibyte) shown = buffer_window_count (current_buffer) > 0; set_buffer_internal (oldbuf); - if (!shown) + /* We called insert_1_both above with its 5th argument (PREPARE) + zero, which prevents insert_1_both from calling + prepare_to_modify_buffer, which in turns prevents us from + incrementing windows_or_buffers_changed even if *Messages* is + shown in some window. So we must manually incrementing + windows_or_buffers_changed here to make up for that. */ + if (shown) + windows_or_buffers_changed++; + else windows_or_buffers_changed = old_windows_or_buffers_changed; message_log_need_newline = !nlflag; Vdeactivate_mark = old_deactivate_mark; -- 2.11.4.GIT