(Fset_buffer_major_mode): Use initial-major-mode for
*scratch*.
This commit is contained in:
parent
f3fbd15535
commit
71a0f2c6e4
1 changed files with 14 additions and 5 deletions
19
src/buffer.c
19
src/buffer.c
|
@ -1449,7 +1449,9 @@ record_buffer (buf)
|
|||
}
|
||||
|
||||
DEFUN ("set-buffer-major-mode", Fset_buffer_major_mode, Sset_buffer_major_mode, 1, 1, 0,
|
||||
/* Set an appropriate major mode for BUFFER, according to `default-major-mode'.
|
||||
/* Set an appropriate major mode for BUFFER.
|
||||
For the *scratch* buffer, use `initial-major-mode', otherwise chose a mode
|
||||
according to `default-major-mode'.
|
||||
Use this function before selecting the buffer, since it may need to inspect
|
||||
the current buffer's major mode. */
|
||||
(buffer))
|
||||
|
@ -1458,10 +1460,17 @@ the current buffer's major mode. */
|
|||
int count;
|
||||
Lisp_Object function;
|
||||
|
||||
function = buffer_defaults.major_mode;
|
||||
if (NILP (function) && NILP (Fget (current_buffer->major_mode, Qmode_class)))
|
||||
function = current_buffer->major_mode;
|
||||
|
||||
if (STRINGP (XBUFFER (buffer)->name)
|
||||
&& strcmp (XSTRING (XBUFFER (buffer)->name)->data, "*scratch*") == 0)
|
||||
function = find_symbol_value (intern ("initial-major-mode"));
|
||||
else
|
||||
{
|
||||
function = buffer_defaults.major_mode;
|
||||
if (NILP (function)
|
||||
&& NILP (Fget (current_buffer->major_mode, Qmode_class)))
|
||||
function = current_buffer->major_mode;
|
||||
}
|
||||
|
||||
if (NILP (function) || EQ (function, Qfundamental_mode))
|
||||
return Qnil;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue