aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog8
-rw-r--r--src/buffer.c8
2 files changed, 12 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 889c8efebdb..1040b93fe70 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,13 @@
12012-08-28 Dmitry Antipov <dmantipov@yandex.ru> 12012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2 2
3 Do not allow to set major mode for a dead buffer.
4 * buffer.c (Fset_buffer_major_mode): Signal an error
5 if the buffer is dead.
6 (Fother_buffer, other_buffer_safely): Remove redundant
7 nested declaration.
8
92012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
10
3 Always use set_buffer_if_live to restore original buffer at unwind. 11 Always use set_buffer_if_live to restore original buffer at unwind.
4 * buffer.h (record_unwind_current_buffer): New function. 12 * buffer.h (record_unwind_current_buffer): New function.
5 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c: 13 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
diff --git a/src/buffer.c b/src/buffer.c
index 61ec736ad1a..0e2e50d9f51 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
1553exists, return the buffer `*scratch*' (creating it if necessary). */) 1553exists, return the buffer `*scratch*' (creating it if necessary). */)
1554 (register Lisp_Object buffer, Lisp_Object visible_ok, Lisp_Object frame) 1554 (register Lisp_Object buffer, Lisp_Object visible_ok, Lisp_Object frame)
1555{ 1555{
1556 Lisp_Object Fset_buffer_major_mode (Lisp_Object buffer);
1557 Lisp_Object tail, buf, pred; 1556 Lisp_Object tail, buf, pred;
1558 Lisp_Object notsogood = Qnil; 1557 Lisp_Object notsogood = Qnil;
1559 1558
@@ -1624,7 +1623,6 @@ exists, return the buffer `*scratch*' (creating it if necessary). */)
1624Lisp_Object 1623Lisp_Object
1625other_buffer_safely (Lisp_Object buffer) 1624other_buffer_safely (Lisp_Object buffer)
1626{ 1625{
1627 Lisp_Object Fset_buffer_major_mode (Lisp_Object buffer);
1628 Lisp_Object tail, buf; 1626 Lisp_Object tail, buf;
1629 1627
1630 tail = Vbuffer_alist; 1628 tail = Vbuffer_alist;
@@ -2064,8 +2062,10 @@ the current buffer's major mode. */)
2064 2062
2065 CHECK_BUFFER (buffer); 2063 CHECK_BUFFER (buffer);
2066 2064
2067 if (STRINGP (BVAR (XBUFFER (buffer), name)) 2065 if (NILP (BVAR (XBUFFER (buffer), name)))
2068 && strcmp (SSDATA (BVAR (XBUFFER (buffer), name)), "*scratch*") == 0) 2066 error ("Attempt to set major mode for a dead buffer");
2067
2068 if (strcmp (SSDATA (BVAR (XBUFFER (buffer), name)), "*scratch*") == 0)
2069 function = find_symbol_value (intern ("initial-major-mode")); 2069 function = find_symbol_value (intern ("initial-major-mode"));
2070 else 2070 else
2071 { 2071 {