unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
@ 2007-08-17 20:18 Richard Stallman
  2007-08-24 23:04 ` Glenn Morris
  0 siblings, 1 reply; 14+ messages in thread
From: Richard Stallman @ 2007-08-17 20:18 UTC (permalink / raw)
  To: emacs-devel

Would someone please DTRT and ack?

------- Start of forwarded message -------
X-Spam-Status: No, score=0.5 required=5.0 tests=DNS_FROM_RFC_ABUSE,
	UNPARSEABLE_RELAY autolearn=no version=3.1.0
Date: Thu, 16 Aug 2007 20:28:11 -0700
From: William Paul Vrotney <vrotney@earthlink.net>
To: bug-gnu-emacs@gnu.org
FCC: ~/rmail/sent
Subject: Eamcs 22.1 comint-scroll-show-maximum-output bug


BUG DESCRIPTION:

First noticed in Emacs 22.1.  The comint variable

    comint-scroll-show-maximum-output 

does not work as documented when set to nil.  For example when setting this
variable to nil when using M-x shell the Emacs 22.1 manual says

        41.7 Shell Mode Options

           If `comint-scroll-show-maximum-output' is non-`nil', then arrival
        of output when point is at the end tries to scroll the last line of
        text to the bottom line of the window, showing as much useful text
        as possible.  (This mimics the scrolling behavior of most
        terminals.)  The default is `t'.


BUG REPLICATION:

    Emacs source: from http://ftp.gnu.org emacs-22.1.tar.gz
    Build: Simply: configure; make; make install;
    Emacs M-x version: Its value is "22.1.1"
    Operating System: Fedora core 3
    Emacs Invocation: emacs -q

    Then if you then do the following

        M-x set-variable comint-scroll-show-maximum-output nil
        M-x shell

    then once the shell buffer becomes full every output still scrolls the
    last line of text to the bottom as it does when
    comint-scroll-show-maximum-output is set to t.

    I've tried setting this variable in all possible ways: before/after
    running M-x shell and using 'setq' in ~/.emacs, 'M-x set-variable' and
    'M-x customize.  But with all the same results as explained above.


OTHER INFORMATION:  The M-x shell defaults to running the bash shell.

ADDITIONAL RELATED BUG:

    When I run the command M-x shell with comint-scroll-show-maximum-output
    set to nil the shell buffer window does not show the first line of bash
    shell output.  In my case it the first line of my two line prompt.  If I
    type M-x recenter then the first line of bash shell output comes into
    view in the buffer window.

PATCH: 

    If I use Emacs 22.1 but load in my ~/.emacs the comint.elc from Emacs
    21.3 then all works fine as it did for Emacs 23.1 and earlier.



_______________________________________________
bug-gnu-emacs mailing list
bug-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs
------- End of forwarded message -------

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-17 20:18 [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug] Richard Stallman
@ 2007-08-24 23:04 ` Glenn Morris
  2007-08-25  1:35   ` Stefan Monnier
                     ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Glenn Morris @ 2007-08-24 23:04 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Richard Stallman wrote:

>     comint-scroll-show-maximum-output 
>
> does not work as documented when set to nil.

This is caused by your 2002-12-28 change to comint-mode that sets
scroll-conseratively to 10000. This was reported and diagnosed two
years ago, and you said:

    From:      Richard M. Stallman
    Subject:   Re: scrolling in comint mode always conservative
    Date:      Mon, 19 Sep 2005 20:03:02 -0400

    I put that in because it did not work otherwise. So I can't take
    it out. I could imagine conditionalizing that setq on some of
    those other variables, such as comint-scroll-to-bottom... That
    would not be 100% correct, since changing those variables would
    not have the right effect on an existing shell buffer. But it
    might be better than nothing.

I tried let-binding scroll-conservatively in
comint-postoutput-scroll-to-bottom, but it does not help. In other
words, things like this don't work, for reasons I don't understand:

  (setq scroll-conservatively 0)
  (let ((scroll-conservatively 10000))  ; no effect
    (goto-char (point-max)))            ; still acts like s-c = 0

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-24 23:04 ` Glenn Morris
@ 2007-08-25  1:35   ` Stefan Monnier
  2007-08-25 19:13     ` Glenn Morris
  2007-08-26 14:15   ` Chong Yidong
  2007-08-27  3:07   ` Richard Stallman
  2 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2007-08-25  1:35 UTC (permalink / raw)
  To: Glenn Morris; +Cc: rms, emacs-devel

>   (let ((scroll-conservatively 10000))  ; no effect
>     (goto-char (point-max)))            ; still acts like s-c = 0

Of course: the let-binding is only active during evaluation of `goto-char'
whereas `scroll-conservatively' is only used later on by the redisplay
engine (which only kicks in when the elisp code is done executing).


        Stefan

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
@ 2007-08-25  4:07 Richard Stallman
  0 siblings, 0 replies; 14+ messages in thread
From: Richard Stallman @ 2007-08-25  4:07 UTC (permalink / raw)
  To: emacs-devel

[I sent this message a week ago but did not get a response.]

Would someone please DTRT and ack?

------- Start of forwarded message -------
X-Spam-Status: No, score=0.5 required=5.0 tests=DNS_FROM_RFC_ABUSE,
	UNPARSEABLE_RELAY autolearn=no version=3.1.0
Date: Thu, 16 Aug 2007 20:28:11 -0700
From: William Paul Vrotney <vrotney@earthlink.net>
To: bug-gnu-emacs@gnu.org
FCC: ~/rmail/sent
Subject: Eamcs 22.1 comint-scroll-show-maximum-output bug


BUG DESCRIPTION:

First noticed in Emacs 22.1.  The comint variable

    comint-scroll-show-maximum-output 

does not work as documented when set to nil.  For example when setting this
variable to nil when using M-x shell the Emacs 22.1 manual says

        41.7 Shell Mode Options

           If `comint-scroll-show-maximum-output' is non-`nil', then arrival
        of output when point is at the end tries to scroll the last line of
        text to the bottom line of the window, showing as much useful text
        as possible.  (This mimics the scrolling behavior of most
        terminals.)  The default is `t'.


BUG REPLICATION:

    Emacs source: from http://ftp.gnu.org emacs-22.1.tar.gz
    Build: Simply: configure; make; make install;
    Emacs M-x version: Its value is "22.1.1"
    Operating System: Fedora core 3
    Emacs Invocation: emacs -q

    Then if you then do the following

        M-x set-variable comint-scroll-show-maximum-output nil
        M-x shell

    then once the shell buffer becomes full every output still scrolls the
    last line of text to the bottom as it does when
    comint-scroll-show-maximum-output is set to t.

    I've tried setting this variable in all possible ways: before/after
    running M-x shell and using 'setq' in ~/.emacs, 'M-x set-variable' and
    'M-x customize.  But with all the same results as explained above.


OTHER INFORMATION:  The M-x shell defaults to running the bash shell.

ADDITIONAL RELATED BUG:

    When I run the command M-x shell with comint-scroll-show-maximum-output
    set to nil the shell buffer window does not show the first line of bash
    shell output.  In my case it the first line of my two line prompt.  If I
    type M-x recenter then the first line of bash shell output comes into
    view in the buffer window.

PATCH: 

    If I use Emacs 22.1 but load in my ~/.emacs the comint.elc from Emacs
    21.3 then all works fine as it did for Emacs 23.1 and earlier.



_______________________________________________
bug-gnu-emacs mailing list
bug-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs
------- End of forwarded message -------

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-25  1:35   ` Stefan Monnier
@ 2007-08-25 19:13     ` Glenn Morris
  0 siblings, 0 replies; 14+ messages in thread
From: Glenn Morris @ 2007-08-25 19:13 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rms, emacs-devel

Stefan Monnier wrote:

> Of course: the let-binding is only active during evaluation of `goto-char'
> whereas `scroll-conservatively' is only used later on by the redisplay
> engine (which only kicks in when the elisp code is done executing).

I thought after the fact that it must be something like that.

I guess if all else fails, comint-scroll-show-maximum-output can just
become another one of those variables that should not be set directly,
only via M-x customize or some helper function.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-24 23:04 ` Glenn Morris
  2007-08-25  1:35   ` Stefan Monnier
@ 2007-08-26 14:15   ` Chong Yidong
  2007-08-27  1:18     ` Glenn Morris
  2007-08-27  3:07   ` Richard Stallman
  2 siblings, 1 reply; 14+ messages in thread
From: Chong Yidong @ 2007-08-26 14:15 UTC (permalink / raw)
  To: Glenn Morris; +Cc: rms, emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> This is caused by your 2002-12-28 change to comint-mode that sets
> scroll-conseratively to 10000. This was reported and diagnosed two
> years ago, and you said:
>
>     From:      Richard M. Stallman
>     Subject:   Re: scrolling in comint mode always conservative
>     Date:      Mon, 19 Sep 2005 20:03:02 -0400
>
>     I put that in because it did not work otherwise. So I can't take
>     it out. I could imagine conditionalizing that setq on some of
>     those other variables, such as comint-scroll-to-bottom... That
>     would not be 100% correct, since changing those variables would
>     not have the right effect on an existing shell buffer. But it
>     might be better than nothing.

I don't understand what the original problem is.  Taking out the
binding of scroll-conservatively does not seem to affect how Emacs
scrolls to the bottom.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-26 14:15   ` Chong Yidong
@ 2007-08-27  1:18     ` Glenn Morris
  0 siblings, 0 replies; 14+ messages in thread
From: Glenn Morris @ 2007-08-27  1:18 UTC (permalink / raw)
  To: Chong Yidong; +Cc: rms, emacs-devel

Chong Yidong wrote:

> I don't understand what the original problem is.  Taking out the
> binding of scroll-conservatively does not seem to affect how Emacs
> scrolls to the bottom.

I await an answer along the lines of "I put that change in for a
reason, though I can't remember what it was. Please do not take it
out". ;)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-24 23:04 ` Glenn Morris
  2007-08-25  1:35   ` Stefan Monnier
  2007-08-26 14:15   ` Chong Yidong
@ 2007-08-27  3:07   ` Richard Stallman
  2007-08-27  7:24     ` Glenn Morris
  2 siblings, 1 reply; 14+ messages in thread
From: Richard Stallman @ 2007-08-27  3:07 UTC (permalink / raw)
  To: Glenn Morris, vrotney; +Cc: emacs-devel

Does this fix the bug?

*** comint.el	25 Jul 2007 11:49:09 -0400	1.361.2.2
--- comint.el	26 Aug 2007 21:04:46 -0400	
***************
*** 1875,1883 ****
  		     ;; ends at the bottom of the window.
  		     (if (and comint-scroll-show-maximum-output
  			      (= (point) (point-max)))
! 			 (save-excursion
! 			   (goto-char (point-max))
! 			   (recenter (- -1 scroll-margin))))
  		     (select-window selected)))))
  	     nil t))
        (set-buffer current))))
--- 1875,1884 ----
  		     ;; ends at the bottom of the window.
  		     (if (and comint-scroll-show-maximum-output
  			      (= (point) (point-max)))
! 			 (let ((scroll-conservatively nil))
! 			   (save-excursion
! 			     (goto-char (point-max))
! 			     (recenter (- -1 scroll-margin)))))
  		     (select-window selected)))))
  	     nil t))
        (set-buffer current))))

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-27  3:07   ` Richard Stallman
@ 2007-08-27  7:24     ` Glenn Morris
       [not found]       ` <E1IPj9q-0003bB-S3@fencepost.gnu.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Glenn Morris @ 2007-08-27  7:24 UTC (permalink / raw)
  To: rms; +Cc: vrotney, emacs-devel

Richard Stallman wrote:

> Does this fix the bug?

No. I already said I tried that and it does not work. (You should set
scroll-conservatively to 0 rather than nil BTW.)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
       [not found]       ` <E1IPj9q-0003bB-S3@fencepost.gnu.org>
@ 2007-08-27 18:34         ` Glenn Morris
       [not found]           ` <E1IQ3Ie-0008OM-HI@fencepost.gnu.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Glenn Morris @ 2007-08-27 18:34 UTC (permalink / raw)
  To: rms; +Cc: vrotney, emacs-devel

Richard Stallman wrote:

> Are you saying that the bug is not caused by setting
> scroll-conservatively at all?

I'm not sure why we have these failures to communicate.

The bug _is_ caused by setting scroll-conservatively to 10000 in
comint buffers as a buffer local variable. Let-binding it back to 0 in
the relevant command does not help (because of when redisplay
happens).

The offered solutions are:

1) Don't set it to 10000 in comint buffers, since it doesn't seem to
   be needed.

2) Make it a variable that should not be set directly, only via M-x
   customize or a function that sets scroll-conservatively at the same
   time.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
       [not found]             ` <modgrcyc6.fsf@fencepost.gnu.org>
@ 2007-08-30  7:15               ` Richard Stallman
  2007-08-31  3:54                 ` Glenn Morris
  0 siblings, 1 reply; 14+ messages in thread
From: Richard Stallman @ 2007-08-30  7:15 UTC (permalink / raw)
  To: Glenn Morris; +Cc: vrotney, emacs-devel

    But the default for scroll-conservatively is 0, and you saw no problem
    in unconditionally changing it to 10000 in all comint-mode buffers for
    the sake of comint-scroll-show-maximum-output.

I don't think it was for the sake fo comint-scroll-show-maximum-output.
Why do you think so?

My 2005 message seems to say it was for the sake of
comint-scroll-to-bottom-on-input.

    1) Don't set it to 10000 in comint buffers, since it doesn't seem to
       be needed.

How did you reach the conclusion that it isn't needed?

To see if this setting really avoids a problem, we'd have to try some
cases that make comint-scroll-to-bottom-on-input to something
nontrivial.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-30  7:15               ` Richard Stallman
@ 2007-08-31  3:54                 ` Glenn Morris
  2007-08-31 18:21                   ` Richard Stallman
  0 siblings, 1 reply; 14+ messages in thread
From: Glenn Morris @ 2007-08-31  3:54 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Richard Stallman wrote:

> I don't think it was for the sake fo comint-scroll-show-maximum-output.
> Why do you think so?

Because the changelog entry looks like this:

        * comint.el (comint-mode): Locally set scroll-conservatively.
        (comint-postoutput-scroll-to-bottom):
        comint-scroll-show-maximum-output is active only when point is at end.

> My 2005 message seems to say it was for the sake of
> comint-scroll-to-bottom-on-input.

I don't know how you reach that conclusion.

>     1) Don't set it to 10000 in comint buffers, since it doesn't seem to
>        be needed.
>
> How did you reach the conclusion that it isn't needed?

I could answer that more easily if you could tell me how you reached
the conclusion that it _is_ needed.

I find nothing in devel, bugs, or pretest-bug when searching for
comint or scroll-conservatively in the relevant time.

emacs22 -Q
M-x shell
M-: (setq comint-scroll-to-bottom-on-input t)
press return a lot to get shell buffer longer than window height
scroll to top
type "ls"
-> window scrolls so that end of buffer is in the middle of the screen

Repeat the above with scroll-conservatively set to 0. No change.


You can leave it set at 10000 if you want. I don't know how to solve
the current, well-defined problem. Perhaps someone else does, but
nobody seems to be jumping in with suggestions.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-31  3:54                 ` Glenn Morris
@ 2007-08-31 18:21                   ` Richard Stallman
  2007-08-31 18:42                     ` Glenn Morris
  0 siblings, 1 reply; 14+ messages in thread
From: Richard Stallman @ 2007-08-31 18:21 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

    > My 2005 message seems to say it was for the sake of
    > comint-scroll-to-bottom-on-input.

    I don't know how you reach that conclusion.

Look at the words in the message.

    >     1) Don't set it to 10000 in comint buffers, since it doesn't seem to
    >        be needed.
    >
    > How did you reach the conclusion that it isn't needed?

    I could answer that more easily if you could tell me how you reached
    the conclusion that it _is_ needed.

Unfortunately, I do not remember that.
I can tell you what that old message seems to say,
but I don't recall anything about it myself.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug]
  2007-08-31 18:21                   ` Richard Stallman
@ 2007-08-31 18:42                     ` Glenn Morris
  0 siblings, 0 replies; 14+ messages in thread
From: Glenn Morris @ 2007-08-31 18:42 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Richard Stallman wrote:

> Look at the words in the message.

Gosh, thanks, I never thought of that.

I don't think I'm helping here. I invite any of the keen and eager
team of bug fixers to deal with this.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2007-08-31 18:42 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-17 20:18 [vrotney@earthlink.net: Eamcs 22.1 comint-scroll-show-maximum-output bug] Richard Stallman
2007-08-24 23:04 ` Glenn Morris
2007-08-25  1:35   ` Stefan Monnier
2007-08-25 19:13     ` Glenn Morris
2007-08-26 14:15   ` Chong Yidong
2007-08-27  1:18     ` Glenn Morris
2007-08-27  3:07   ` Richard Stallman
2007-08-27  7:24     ` Glenn Morris
     [not found]       ` <E1IPj9q-0003bB-S3@fencepost.gnu.org>
2007-08-27 18:34         ` Glenn Morris
     [not found]           ` <E1IQ3Ie-0008OM-HI@fencepost.gnu.org>
     [not found]             ` <modgrcyc6.fsf@fencepost.gnu.org>
2007-08-30  7:15               ` Richard Stallman
2007-08-31  3:54                 ` Glenn Morris
2007-08-31 18:21                   ` Richard Stallman
2007-08-31 18:42                     ` Glenn Morris
  -- strict thread matches above, loose matches on Subject: below --
2007-08-25  4:07 Richard Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).