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)
This commit is contained in:
Eli Zaretskii 2016-10-15 16:53:36 +03:00
parent 21300051eb
commit 528997daa1

View file

@ -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.