summaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 1ceec958a00..97c82a7468b 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1146,7 +1146,14 @@ window even if BUFFER is already visible in the selected window.")
if (NILP (bufname))
buf = Fother_buffer (Fcurrent_buffer (), Qnil);
else
- buf = Fget_buffer_create (bufname);
+ {
+ buf = Fget_buffer (bufname);
+ if (NILP (buf))
+ {
+ buf = Fget_buffer_create (bufname);
+ Fset_buffer_major_mode (buf);
+ }
+ }
Fset_buffer (buf);
record_buffer (buf);
Fselect_window (Fdisplay_buffer (buf, other));