* lisp/window.el (replace-buffer-in-windows): Preserve current
buffer when 'kill-buffer-quit-windows' is non-nil and a window
showing BUFFER shall be quit. Running 'kill-buffer-hook' relies
on it (Bug#75949).
(cherry picked from commit
4354cf73d7a5bdd18a5e5b385a06d9d140e8e472)
(cond
((window-minibuffer-p window))
(kill-buffer-quit-windows
- (quit-restore-window window 'killing))
+ ;; Try to preserve the current buffer set up by 'kill-buffer'
+ ;; before running the hooks on 'kill-buffer-hook' (Bug#75949).
+ (let ((current-buffer (current-buffer)))
+ (quit-restore-window window 'killing)
+ (when (buffer-live-p current-buffer)
+ (set-buffer current-buffer))))
(t
(let ((dedicated-side (eq (window-dedicated-p window) 'side)))
(when (or dedicated-side (not (window--delete window t 'kill)))