Subject: bug#9532: 24.0.50; `special-display-regexps' is no longer respected

From: Chong Yidong <[email-masked]>
Date: Wed, 21 Sep 2011 12:06:29 -0400

Stefan Monnier <[email-masked]> writes:

> I think the problem here is that display-buffer--special should not just
> be in display-buffer-fallback-action but should take precedence over the
> ACTION argument (it's largely equivalent to display-buffer-alist).

The problem with this is that if the "special" buffer is already
displayed in a window, that window is supposed to be used instead of
popping up a special window (at least, according to old behavior).

We could accomodate this by changing display-buffer--special to also
call display-buffer--maybe-same-window and display-buffer-reuse-window
for special-display-p buffers.

Then another problem arises: all direct switch-to-buffer calls will
trigger special display for special buffers, which is not consistent
with old behavior.  The key difference here is that in Emacs 23 the
`info' command calls display-buffer (using same-window-regexps to force
it into the same window), whereas currently `info' uses switch-to-buffer
(with the intention of transitioning away from same-window-*).

OTOH, I don't see an easy way to handle all the backward compatibility
exceptions in this case.  One possibility is to change `info' etc. back
to using same-window-regexps with display-buffer, which mostly kicks the
can down the road to a later release.  Or maybe we should just require
use of display-buffer-alist for this case.

Any thoughts?