GNU bug report logs - #410
23.0.60; display-buffer regression

Previous Next

Package: emacs;

Reported by: Stephen Berman <stephen.berman <at> gmx.net>

Date: Fri, 13 Jun 2008 22:10:06 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


Message #20 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: bug-gnu-emacs <at> gnu.org
Cc: emacs-pretest-bug <at> gnu.org
Subject: Re: bug#410: 23.0.60; display-buffer regression
Date: Sun, 15 Jun 2008 00:34:47 +0200
On Sat, 14 Jun 2008 11:40:30 +0200 martin rudalics <rudalics <at> gmx.at> wrote:

>> The recent reimplementation of display-buffer in lisp resulted in the
>> following changed behavior, which I consider a regression:
>>
>> 1. emacs -Q
>>
>> 2. M-x calendar
>>    ==> The window is vertically split, the *scratch* buffer above and
>>    the Calendar buffer is below in a smaller window sized to fit.
>>
>> 3. M-: (pop-to-buffer (get-buffer "*Messages*"))
>>    ==> Now the *Messages* buffer is above and the Calendar buffer is
>>    still below, but the windows are evenly split, i.e. the Calendar
>>    window is no longer sized to fit but is too big.  Prior to the
>>    reimplementation of display-buffer doing this step did not change the
>>    height of the Calendar window.
>>
>> The behavior in step 3 results from the invocation of
>> window--even-window-heights in the last clause of the cond in
>> display-buffer, which happens because the *Messages* buffer exits but is
>> not displayed.  If the sexp in step 3 contained *scratch* instead of
>> *Messages*, the height of the Calendar window would not have changed.
>
> Thanks for noticing this.
>
>> Looking at the pre-reimplementation source of Fdisplay_buffer, it looks
>> like the window heights should get evened out just as in the lisp
>> reimplementation; nevertheless, this is not what happens in the above
>> recipe with the older code.
>
> It's because in the Elisp code I evened window heights whenever they
> were not equal.  The original code evened heights only when the height
> of the window to display BUFFER-OR-NAME was less than that of the
> selected window.  

Thanks for the explication, I didn't grasp that in my cursory perusal.

>                   I've tried to restore the original behavior.  Please
> try again.

Your patch makes display-buffer work as it previously did in cases like
the above; thanks.

Steve Berman






This bug report was last modified 16 years and 363 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.