Fix a bug in 'switch-to-buffer'

* lisp/window.el (switch-to-buffer): When asked to switch to the
buffer of the selected window,
'switch-to-buffer-obey-display-actions' is non-nil and
'pop-to-buffer' uses the selected window, don't try to restore
window start and point from 'window-prev-buffers' (Bug#71616).
This commit is contained in:
Martin Rudalics 2024-06-23 10:26:57 +02:00
parent 5f9b5803be
commit 5f8a9cd4b6

View file

@ -9171,9 +9171,14 @@ Return the buffer switched to."
(pop-to-buffer buffer norecord)))
(t
(when switch-to-buffer-obey-display-actions
(let ((selected-window (selected-window)))
(let* ((selected-window (selected-window))
(old-window-buffer (window-buffer selected-window)))
(pop-to-buffer-same-window buffer norecord)
(when (eq (selected-window) selected-window)
;; Do not ask for setting start and point when showing the
;; same buffer in the old selected window (Bug#71616).
(when (and (eq (selected-window) selected-window)
(not (eq (window-buffer selected-window)
old-window-buffer)))
(setq set-window-start-and-point t))))
(when set-window-start-and-point