From 4f2daf31078e2cc059710e129dffe0beed8fc7c2 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Tue, 28 Aug 2012 14:59:17 +0400 Subject: [PATCH] Do not allow to set major mode for a dead buffer. * buffer.c (Fset_buffer_major_mode): Signal an error if the buffer is dead. (Fother_buffer, other_buffer_safely): Remove redundant nested declaration. --- src/ChangeLog | 8 ++++++++ src/buffer.c | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 889c8efebd..1040b93fe7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2012-08-28 Dmitry Antipov + + Do not allow to set major mode for a dead buffer. + * buffer.c (Fset_buffer_major_mode): Signal an error + if the buffer is dead. + (Fother_buffer, other_buffer_safely): Remove redundant + nested declaration. + 2012-08-28 Dmitry Antipov Always use set_buffer_if_live to restore original buffer at unwind. diff --git a/src/buffer.c b/src/buffer.c index 61ec736ad1..0e2e50d9f5 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1553,7 +1553,6 @@ list first, followed by the list of all buffers. If no other buffer exists, return the buffer `*scratch*' (creating it if necessary). */) (register Lisp_Object buffer, Lisp_Object visible_ok, Lisp_Object frame) { - Lisp_Object Fset_buffer_major_mode (Lisp_Object buffer); Lisp_Object tail, buf, pred; Lisp_Object notsogood = Qnil; @@ -1624,7 +1623,6 @@ exists, return the buffer `*scratch*' (creating it if necessary). */) Lisp_Object other_buffer_safely (Lisp_Object buffer) { - Lisp_Object Fset_buffer_major_mode (Lisp_Object buffer); Lisp_Object tail, buf; tail = Vbuffer_alist; @@ -2064,8 +2062,10 @@ the current buffer's major mode. */) CHECK_BUFFER (buffer); - if (STRINGP (BVAR (XBUFFER (buffer), name)) - && strcmp (SSDATA (BVAR (XBUFFER (buffer), name)), "*scratch*") == 0) + if (NILP (BVAR (XBUFFER (buffer), name))) + error ("Attempt to set major mode for a dead buffer"); + + if (strcmp (SSDATA (BVAR (XBUFFER (buffer), name)), "*scratch*") == 0) function = find_symbol_value (intern ("initial-major-mode")); else { -- 2.20.1