Subject: bug#8368: 24.0.50; "temp" means "help" - rename or at least document

From: "Drew Adams" <[email-masked]>
Date: Mon, 30 Apr 2012 07:28:04 -0700

>  >> You don't have to remove and re-add any hooks.  It's
>  >> sufficient to turn off help mode in the body of
>  >> `with-output-to-temp-buffer'.  Similarly,
>  >> if you don't want to run `completion-list-mode-finish', turn off
>  >> `completion-list-mode' in the buffer.
>  >
>  > Sufficient?  That sounds like more work, not less.  Why 
>  > turn help mode etc. on automatically and then turn it off again.
>  > Why not just remove the hook so it does not get turned on?
> 
> Because it's non-trivial to "just" do that.  We have to go through all
> users of `with-output-to-temp-buffer' and check whether they want to
> turn on help mode or not.  I don't have the slightest idea 
> whether, for example, the calls in ada-xref.el require activating
> help mode or not.

We might be miscommunicating.

First, let me say that I don't really want to argue about the solution so much
as report the problem and ask for a solution.

Second, I was not talking about changing any existing code, especially Emacs Dev
code.  I was simply saying that because help-mode stuff is currently hard-coded
into `w-o-t-t-b', then IF a programmer wants a temp buffer without that help
stuff then s?he can do something like what I wrote, as a workaround: define a
macro that uses `w-o-t-t-b', but first removes the help-stuff hooks and restores
them afterward.  That's all.

Your suggestion was IIUC to instead use `w-o-t-t-b' and just turn off help-mode
in the BODY.  OK, but that means that help-mode is entered and exited for
nothing - the hooks are run uselessly.  That's all I was pointing out.  Nothing
wrong with such useless work, but it, like my workaround, does not seem like the
solution to the problem.

> Obviously, dealing with `temp-buffer-show-hook' in
> `with-output-to-plain-temp-buffer' isn't necessary either if you don't
> run `help-mode-setup' before.

Ah, yes.  Of course that means paying even more attention etc.

Anyway, thanks for thinking about this.  I really would like to see Emacs fixed
in this regard.  To my mind (not having thought much about it, and being pretty
ignorant about it), I would think that inheritance could be used to factor out
the stuff that is not specifically for help mode (i.e., have the help-mode stuff
inherit from that).