* progmodes/compile.el (compilation-filter): If inserting at end

of accessible part of buffer, keep end of output visible.
This commit is contained in:
Richard M. Stallman 2009-05-18 16:30:59 +00:00
parent 4df49ff1d2
commit 0b508a2736
2 changed files with 14 additions and 2 deletions

View file

@ -1,5 +1,8 @@
2009-05-18 Richard M Stallman <rms@gnu.org>
* progmodes/compile.el (compilation-filter): If inserting at end
of accessible part of buffer, keep end of output visible.
* mail/rmail.el (rmail-expunge-confirmed): Return nil if nothing to do.
Don't call rmail-modify-format here.
(rmail-expunge): Call it here after expunge is confirmed.

View file

@ -1739,9 +1739,15 @@ and runs `compilation-filter-hook'."
(with-current-buffer (process-buffer proc)
(let ((inhibit-read-only t)
;; `save-excursion' doesn't use the right insertion-type for us.
(pos (copy-marker (point) t)))
(pos (copy-marker (point) t))
(min (point-min-marker))
(max (point-max-marker)))
(unwind-protect
(progn
;; If we are inserting at the end of the accessible part
;; of the buffer, keep the inserted text visible.
(set-marker-insertion-type max t)
(widen)
(goto-char (process-mark proc))
;; We used to use `insert-before-markers', so that windows with
;; point at `process-mark' scroll along with the output, but we
@ -1751,7 +1757,10 @@ and runs `compilation-filter-hook'."
(comint-carriage-motion (process-mark proc) (point)))
(set-marker (process-mark proc) (point))
(run-hooks 'compilation-filter-hook))
(goto-char pos))))))
(goto-char pos)
(narrow-to-region min max)
(set-marker min nil)
(set-marker max nil))))))
;;; test if a buffer is a compilation buffer, assuming we're in the buffer
(defsubst compilation-buffer-internal-p ()