The following is for XEmacs 21.4.10 (the current Debian package) and
recent other version that I've tried...
In my ~/.emacs (or equivalent), I do the following reasonable thing:
This stops certain help (and similar) buffers from cluttering up my
world. Under GNU Emacs (20.x, 21.x) I can kill the displayed buffer
and the new frame goes away. Pop-up help - wild! :-)
Under XEmacs this results in:
(error "display-buffer switched frames on its own!!")
Now, display buffer will do that if you tell it to! :-)
The pieces of the problem are:
* help.el/with-displaying-help-buffer uses temp-buffer-show-function.
* temp-buffer-show-function is set to
show-temp-buffer-in-current-frame, by default.
* frame.el/show-temp-buffer-in-current-frame, as the name suggests,
really wants the stuff displayed in the current frame and signals an
error if this isn't the case.
Commenting out the sanity check makes the error go away, but killing
the buffer doesn't make the new frame go away.
I do a similar thing for "*shell*" buffers and it works better. I
guess that since "*shell*" buffers don't use a temporary buffer I
don't see the error. However, killing the buffer doesn't make the
frame go away...
Any ideas? I guess "don't do that" is one idea, but I like doing
peace & happiness,