diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/buffer.c | 8 |
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 @@ | |||
| 1 | 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru> | 1 | 2012-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 | |||
| 9 | 2012-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 | |||
| 1553 | exists, return the buffer `*scratch*' (creating it if necessary). */) | 1553 | exists, 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). */) | |||
| 1624 | Lisp_Object | 1623 | Lisp_Object |
| 1625 | other_buffer_safely (Lisp_Object buffer) | 1624 | other_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 | { |