From 091d3228b724a5f46124cb106138488678f2ac51 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 29 Oct 2014 17:17:18 +0200 Subject: [PATCH] Fix bug #18874 with rgrep not obeying grep-scroll-output. lisp/progmodes/compile.el (compilation-start): If compilation-scroll-output is non-nil, don't force window-start of the compilation buffer to be at beginning of buffer. --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/compile.el | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 67efd558528..b3b8ba4c1a9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-10-29 Eli Zaretskii + + * progmodes/compile.el (compilation-start): If + compilation-scroll-output is non-nil, don't force window-start of + the compilation buffer to be at beginning of buffer. (Bug#18874) + 2014-10-23 Tassilo Horn * doc-view.el (doc-view-open-text): View the document's plain text diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 30f30dfe83f..d2f7d595cbc 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1651,7 +1651,16 @@ Returns the compilation buffer created." (list command mode name-function highlight-regexp)) (set (make-local-variable 'revert-buffer-function) 'compilation-revert-buffer) - (and outwin (set-window-start outwin (point-min))) + (and outwin + ;; Forcing the window-start overrides the usual redisplay + ;; feature of bringing point into view, so setting the + ;; window-start to top of the buffer risks losing the + ;; effect of moving point to EOB below, per + ;; compilation-scroll-output, if the command is long + ;; enough to push point outside of the window. This + ;; could happen, e.g., in `rgrep'. + (not compilation-scroll-output) + (set-window-start outwin (point-min))) ;; Position point as the user will see it. (let ((desired-visible-point -- 2.39.5