]> git.eshelyaron.com Git - emacs.git/commitdiff
Keep point when switching from and to *terminal* buffer
authorEli Zaretskii <eliz@gnu.org>
Sat, 15 Oct 2016 13:53:36 +0000 (16:53 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 15 Oct 2016 13:53:36 +0000 (16:53 +0300)
* 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)

lisp/term.el

index f477bccbe2ecdaf6f5c848e9f831a3bcfd496d61..993e5803059a93df1062d04e11fb7bc9ce529f02 100644 (file)
@@ -1116,12 +1116,16 @@ Entry to this mode runs the hooks on `term-mode-hook'."
   (term-update-mode-line))
 \f
 (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.