summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 07d0f676aa2..f6c45852b51 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1684,9 +1684,13 @@ the window-buffer correspondences. */)
char *err;
if (EQ (buffer, Fwindow_buffer (selected_window)))
- /* Basically a NOP. Avoid signalling an error if the selected window
- is dedicated, or a minibuffer, ... */
- return Fset_buffer (buffer);
+ {
+ if (NILP (norecord) && !EQ (buffer, XCDR (XCAR (Vbuffer_alist))))
+ record_buffer (buffer);
+ /* Basically a NOP. Avoid signalling an error if the selected window
+ is dedicated, or a minibuffer, ... */
+ return Fset_buffer (buffer);
+ }
err = no_switch_window (selected_window);
if (err) error (err);