From 2e25a05e0b9eb3a891be369bc7428fb017d8902f Mon Sep 17 00:00:00 2001 From: Zajcev Evgeny Date: Mon, 30 Nov 2020 20:51:18 +0300 Subject: [PATCH] Fix use of switch-to-buffer-preserve-window-point * lisp/window.el (switch-to-buffer): Regard buffer local value for switch-to-buffer-preserve-window-point variable --- lisp/window.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lisp/window.el b/lisp/window.el index 82976bf836..ea3f581a2f 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -8566,13 +8566,13 @@ switch-to-buffer (when set-window-start-and-point (let* ((entry (assq buffer (window-prev-buffers))) - (displayed (and (eq switch-to-buffer-preserve-window-point - 'already-displayed) + (preserver-win-point + (buffer-local-value 'switch-to-buffer-preserve-window-point + buffer)) + (displayed (and (eq preserver-win-point 'already-displayed) (get-buffer-window buffer 0)))) (set-window-buffer nil buffer) - (when (and entry - (or (eq switch-to-buffer-preserve-window-point t) - displayed)) + (when (and entry (or (eq preserver-win-point t) displayed)) ;; Try to restore start and point of buffer in the selected ;; window (Bug#4041). (set-window-start (selected-window) (nth 1 entry) t) -- 2.25.1