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

From: Stefan Monnier <[email-masked]>
Date: Wed, 21 Sep 2011 21:16:40 -0400

>>> 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-*).
>> 
>> At least both Drew and I would consider it a bug fix if
>> special-display-* applies to *info*, so I'm not sure such a change is
>> a problem.

> I think you misunderstand.  Consider this:

> M-: (setq special-display-regexps '("foo")) RET
> M-: (get-buffer-create "foo") RET
> M-x switch-to-buffer RET foo RET

> In Emacs 23, this switches to the "foo" buffer in the selected window.
> With the proposed change, the direct switch-to-buffer call opens it in a
> special window (just like the switch-to-buffer call in `info').

> So we would be swapping on backward incompatibility for another.

M-x switch-to-buffer should never call display-buffer.
Only non-interactive calls should do that.

        Stefan