From: Eli Zaretskii Date: Sat, 15 Oct 2016 13:53:36 +0000 (+0300) Subject: Keep point when switching from and to *terminal* buffer X-Git-Tag: emacs-25.1.90~121 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=528997daa15d6e864f4f7119fe073fe37ab4c685;p=emacs.git Keep point when switching from and to *terminal* buffer * lisp/term.el (term-reset-size): Don't reset the size if it didn't change. If the size did change, restore point after adjusting the size. (Bug#24465) --- diff --git a/lisp/term.el b/lisp/term.el index f477bccbe2e..993e5803059 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -1116,12 +1116,16 @@ Entry to this mode runs the hooks on `term-mode-hook'." (term-update-mode-line)) (defun term-reset-size (height width) - (setq term-height height) - (setq term-width width) - (setq term-start-line-column nil) - (setq term-current-row nil) - (setq term-current-column nil) - (term-set-scroll-region 0 height)) + (when (or (/= height term-height) + (/= width term-width)) + (let ((point (point))) + (setq term-height height) + (setq term-width width) + (setq term-start-line-column nil) + (setq term-current-row nil) + (setq term-current-column nil) + (term-set-scroll-region 0 height) + (goto-char point)))) ;; Recursive routine used to check if any string in term-kill-echo-list ;; matches part of the buffer before point.