Subject: RE: bug#16038: 24.3; latest change to with-help-window makes temp-buffer-browse useless

From: Drew Adams <[email-masked]>
Date: Mon, 27 Jan 2014 07:14:37 -0800 (PST)

>  >>> And just what problem is that?  You say there is a problem to
>  >>> fix in my code.  What is the problem?
>  >>
>  >> The one from
>  >> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8368#32.
>  >
>  > That demo example was not from my code, as you know.  It
>  > demonstrates bug #8368, showing why it needs to be fixed.
>  > And it is still pertinent, AFAIK.
> 
> So this example bears no resemblance to code you ever wrote or run?
> It's just a hoax to attract the attention of developers to how
> people could shoot themselves in the foot?  Now I understand why
> no-one else cared.  This taught me a lesson ...

What are you on about, Martin?  That example underlines, in a
simple way, the mismatch between `with-output-to-temp-buffer', which
is only for help buffers, and "with output to a temporary buffer",
which its name suggests.  That's all.  It is entirely germain to
the bug.

It is a trivial, minimal example pointing out some of the problems
described in the bug report:

  (defun foo () "..."
    (with-output-to-temp-buffer "*TEMP*" (princ "FOOO\n---\n\n")))
  (foo) C-x b *TEMP* TAB
  Debugger entered--Lisp error: (error "No buttons!")

And no, I do not use `with-output-to-temp-buffer' that way in my
code.  I know enough not to expect that it does what it says, and
to use it only for a help buffer.

That does not change the fact that the name is misleading and
that Emacs could benefit from a real "with output to a temporary
buffer", in addition to this misnamed macro, which is really
"with output to a help buffer".

It's not a hoax.  It's a bug report.  Whether no one besides me
cares is their choice.  But I suspect that someone does care,
since you have gone to some trouble to write a new macro and
there is now some talk (even if you say it is not from you) in
favor of deprecating the name `with-output-to-temp-buffer'.

Wrt such a possible deprecation: let's do it right.  That's all.