aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGlenn Morris2013-09-17 00:39:54 -0700
committerGlenn Morris2013-09-17 00:39:54 -0700
commit90582f05bc41bb832716926be1593c66b8219151 (patch)
tree3d611c640a9fe398573933b46d4125ee44a61a59 /src
parent33b83dd70c242357e542278b9d011f2c545d1f77 (diff)
downloademacs-90582f05bc41bb832716926be1593c66b8219151.tar.gz
emacs-90582f05bc41bb832716926be1593c66b8219151.zip
Add a major-mode for the *Messages* buffer
Ref: http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00135.html * lisp/simple.el (messages-buffer-mode): New major mode. (messages-buffer): New function. * lisp/startup.el (normal-top-level): Switch mode of *Messages* buffer. * src/xdisp.c (message_dolog): If we create *Messages*, switch it to messages-buffer-mode. * lisp/emacs-lisp/ert.el (ert--force-message-log-buffer-truncation) (ert-run-test): Use `message-buffer' function. (ert--force-message-log-buffer-truncation): Ignore read-only. * lisp/help.el (view-echo-area-messages): Use `message-buffer' function. * lisp/mail/emacsbug.el (report-emacs-bug): Use `message-buffer' function. * lisp/gnus/gnus-util.el (gnus-message-with-timestamp-1): Use `message-buffer' function if available. Ignore read-only. * etc/NEWS: Mention this.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c18
2 files changed, 20 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b4ec77780e4..00b59e89e67 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-09-17 Glenn Morris <rgm@gnu.org>
2
3 * xdisp.c (message_dolog): If we create *Messages*,
4 switch it to messages-buffer-mode.
5
12013-09-17 Paul Eggert <eggert@cs.ucla.edu> 62013-09-17 Paul Eggert <eggert@cs.ucla.edu>
2 7
3 Don't overuse 'const' in types of locals. 8 Don't overuse 'const' in types of locals.
diff --git a/src/xdisp.c b/src/xdisp.c
index 4582002fa0e..b07aad51bc9 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1,7 +1,6 @@
1/* Display generation from window structure and buffer text. 1/* Display generation from window structure and buffer text.
2 2
3Copyright (C) 1985-1988, 1993-1995, 1997-2013 Free Software Foundation, 3Copyright (C) 1985-1988, 1993-1995, 1997-2013 Free Software Foundation, Inc.
4Inc.
5 4
6This file is part of GNU Emacs. 5This file is part of GNU Emacs.
7 6
@@ -9538,7 +9537,20 @@ message_dolog (const char *m, ptrdiff_t nbytes, bool nlflag, bool multibyte)
9538 9537
9539 old_deactivate_mark = Vdeactivate_mark; 9538 old_deactivate_mark = Vdeactivate_mark;
9540 oldbuf = current_buffer; 9539 oldbuf = current_buffer;
9541 Fset_buffer (Fget_buffer_create (Vmessages_buffer_name)); 9540
9541 /* Ensure the Messages buffer exists, and switch to it.
9542 If we created it, set the major-mode. */
9543 {
9544 int newbuffer = 0;
9545 if (NILP (Fget_buffer (Vmessages_buffer_name))) newbuffer = 1;
9546
9547 Fset_buffer (Fget_buffer_create (Vmessages_buffer_name));
9548
9549 if (newbuffer &&
9550 !NILP (Ffboundp (intern ("messages-buffer-mode"))))
9551 call0 (intern ("messages-buffer-mode"));
9552 }
9553
9542 bset_undo_list (current_buffer, Qt); 9554 bset_undo_list (current_buffer, Qt);
9543 9555
9544 oldpoint = message_dolog_marker1; 9556 oldpoint = message_dolog_marker1;