summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2013-05-16 21:33:27 +0300
committerEli Zaretskii <eliz@gnu.org>2013-05-16 21:33:27 +0300
commit5bb98290d7f11fc6b9fb2d8b33277483f5f3ccc4 (patch)
treecaf01cea96812d4daa34c14b4198fd2b21fbbac4
parent721c9e8a682721c6010c4c685764cd2359baf46b (diff)
downloademacs-5bb98290d7f11fc6b9fb2d8b33277483f5f3ccc4.tar.gz
emacs-5bb98290d7f11fc6b9fb2d8b33277483f5f3ccc4.tar.bz2
emacs-5bb98290d7f11fc6b9fb2d8b33277483f5f3ccc4.zip
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.
-rw-r--r--src/ChangeLog4
-rw-r--r--src/xdisp.c10
2 files changed, 13 insertions, 1 deletions
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 <eliz@gnu.org>
+ * 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;