1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-01 11:14:55 +00:00

Cleanup comint-postoutput-scroll-to-bottom (Bug#13248).

* comint.el (comint-adjust-window-point): New function.
(comint-postoutput-scroll-to-bottom): Call
comint-adjust-window-point (Bug#13248).
This commit is contained in:
Vitalie Spinu 2012-12-27 08:33:47 +01:00 committed by Martin Rudalics
parent da42d41a90
commit c34339f3a2
2 changed files with 29 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2012-12-27 Vitalie Spinu <spinuvit@gmail.com> (tiny change)
* comint.el (comint-adjust-window-point): New function.
(comint-postoutput-scroll-to-bottom): Call
comint-adjust-window-point (Bug#13248).
2012-12-26 Dmitry Gutov <dgutov@yandex.ru>
* progmodes/ruby-mode.el (auto-mode-alist): `purecopy' the

View File

@ -2120,19 +2120,31 @@ This function should be in the list `comint-output-filter-functions'."
((bound-and-true-p follow-mode)
(follow-comint-scroll-to-bottom))
(t
(let ((selected (selected-window)))
(dolist (w (get-buffer-window-list current nil t))
(select-window w)
(unwind-protect
(progn
(comint-adjust-point selected)
;; Optionally scroll to the bottom of the window.
(and comint-scroll-show-maximum-output
(eobp)
(recenter (- -1 scroll-margin))))
(select-window selected))))))
(dolist (w (get-buffer-window-list current nil t))
(comint-adjust-window-point w process)
;; Optionally scroll to the bottom of the window.
(and comint-scroll-show-maximum-output
(eq (window-point w) (point-max))
(with-selected-window w
(recenter (- -1 scroll-margin)))))))
(set-buffer current))))
(defun comint-adjust-window-point (window process)
"Move point in WINDOW based on Comint settings.
For point adjustment use the process-mark of PROCESS."
(and (< (window-point window) (process-mark process))
(or (memq comint-move-point-for-output '(t all))
;; Maybe user wants point to jump to end.
(eq comint-move-point-for-output
(if (eq (selected-window) window) 'this 'others))
;; If point was at the end, keep it at end.
(and (marker-position comint-last-output-start)
(>= (window-point window) comint-last-output-start)))
(set-window-point window (process-mark process))))
;; this function is nowhere used
(defun comint-adjust-point (selected)
"Move point in the selected window based on Comint settings.
SELECTED is the window that was originally selected."