From: Eli Zaretskii Date: Wed, 8 May 2019 17:34:09 +0000 (+0300) Subject: Fix positioning client buffer as instructed by emacsclient X-Git-Tag: emacs-26.2.90~65 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e7ab351caa884755c032fd9544ba67a3c953144f;p=emacs.git Fix positioning client buffer as instructed by emacsclient * lisp/server.el (server-switch-buffer): Let-bind switch-to-buffer-preserve-window-point to nil when switching to the client buffer, when the client requested a specific position. (Bug#35602) --- diff --git a/lisp/server.el b/lisp/server.el index a39b1cb46d4..42329e853ba 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -1621,7 +1621,14 @@ be a cons cell (LINENUMBER . COLUMNNUMBER)." (frame-terminal)))) 'nomini 'visible (selected-window)))) (condition-case nil - (switch-to-buffer next-buffer) + ;; If the client specified a new buffer position, + ;; treat that as an explicit point-move command, and + ;; override switch-to-buffer-preserve-window-point. + (let ((switch-to-buffer-preserve-window-point + (if filepos + nil + switch-to-buffer-preserve-window-point))) + (switch-to-buffer next-buffer)) ;; After all the above, we might still have ended up with ;; a minibuffer/dedicated-window (if there's no other). (error (pop-to-buffer next-buffer)))))))