Subject: Re: bug#31653: 26.1; comint-scroll-show-maximum-output nil regression

From: Eli Zaretskii <[email-masked]>
Date: Wed, 30 May 2018 09:56:49 +0300

On May 30, 2018 8:56:13 AM GMT+03:00, Mark H Weaver <[email-masked]> wrote:
> Emacs 26.1 has introduced a regression compared with 25.3 in the
> handling of 'comint-scroll-show-maximum-output', which I prefer to set
> to nil.  Here's how to reproduce the problem:
> 
> * Run "emacs-26.1 -Q", with or without "-nw" as you prefer.
> * M-x shell
> * M-: (setq comint-scroll-show-maximum-output nil)
> * Press RET repeatedly until the window starts scrolling.
> 
> Observe that after the point reaches the bottom of the window, it is
> subsequently kept at the bottom of the window by aggressively
> scrolling
> one line at a time.
> 
> If you perform the same steps above with emacs-25.3, you'll see that
> it
> always recenters, so that scrolling occurs only once for every ~N/2
> lines of output, where N is the window height.
> 
> Note that (setq comint-scroll-show-maximum-output nil) still has some
> effect.  After performing the steps above, try this:
> 
> * C-l
> * Press RET repeatedly until the window starts scrolling.
> * M-: (setq comint-scroll-show-maximum-output t)
> * C-l
> * Press RET just once.
> 
> Observe that with 'comint-scroll-show-maximum-output' set to t, the
> first RET after C-l immediately scrolls the window to show the maximum
> output.
> 
> If you can suggest a workaround or a patch to fix this issue, I would
> be
> grateful.
> 
> Thanks very much for your work on Emacs.
> 
>      Mark

It's a deliberate change, by popular demand: shell-mode now sets
scroll-conservatively to a large value locally in shell buffers.  Reset
that in your mode hook, and Bob's your uncle.

If you are interested in the reasons for the change, see the log
message of commit d7ac7b15ca9, it points to the relevant discussion.

(This should have been in NEWS, sigh...)