[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8368: 24.0.50; "temp" means "help" - rename or at least document
From: |
Drew Adams |
Subject: |
bug#8368: 24.0.50; "temp" means "help" - rename or at least document |
Date: |
Fri, 27 Apr 2012 17:15:53 -0700 |
> From: Stefan Monnier Sent: Saturday, September 10, 2011 9:58 PM
>
Lars> There's been no response in two months.
Lars> I think the following is a bug:
Lars> ;; This makes `with-output-to-temp-buffer' buffers use `help-mode'.
Lars> (add-hook 'temp-buffer-setup-hook 'help-mode-setup)
Lars> (add-hook 'temp-buffer-show-hook 'help-mode-finish)
Lars> Would removing these be a good idea?
>
> Not at this stage of the development, no.
So now it's been over a year since the bug was filed.
Can't the help mode code add those hooks only for the use of *Help* and other
help-mode buffers? Why should all uses of `with-output-to-temp-buffer' end up
running those hook functions that are, after all, specific to help mode?
Can we please move forward on fixing this bug?
There is lots of stuff in a "temp" buffer now that has nothing to do with a
temporary buffer.
emacs -Q
(setq debug-on-error t)
(defun foo ()
"..."
(with-output-to-temp-buffer "*TEMP*"
(princ "FOOOOO\n-----\n\n")))
(foo)
C-x b *TEMP*
TAB
Debugger entered--Lisp error: (error "No buttons!")
signal(error ("No buttons!"))
error("No buttons!")
forward-button(1 1 1)
call-interactively(forward-button nil nil)
No f___ing buttons? WTF? Who cares?
Look at all the keys bound now in a "temporary" buffer (below). How many of
them have to do with a temporary display of something other than outright
*Help*?
The only keys I can think of that might generally make sense for a temporary
buffer mode are SPC, DEL, <, >, ?, h, q, maybe z (but why was `z' chosen to
kill?), maybe the digits and -, and maybe (if `revert-buffer-function' says so)
g.
All of the special help link and navigation commands should be reserved for a
help mode that is _derived_ from a (minimal) temporary buffer mode.
While waiting for that, users have to do something like this, just to get rid of
the *Help*-imposed stuff:
(defmacro with-output-to-plain-temp-buffer (buf &rest body)
"Like `with-output-to-temp-buffer', but with no *Help* navigation stuff."
`(unwind-protect
(progn
(remove-hook 'temp-buffer-setup-hook 'help-mode-setup)
(remove-hook 'temp-buffer-show-hook 'help-mode-finish)
(with-output-to-temp-buffer ,buf ,@body))
(add-hook 'temp-buffer-setup-hook 'help-mode-setup)
(add-hook 'temp-buffer-show-hook 'help-mode-finish)))
It makes no more sense for *Help* to have co-opted temporary buffer display than
it would have made for Info to have co-opted it. Dunno how we ever went down
this road.
key binding
--- -------
C-c Prefix Command
TAB forward-button
RET help-follow
ESC Prefix Command
SPC scroll-up-command
- negative-argument
0 .. 9 digit-argument
< beginning-of-buffer
> end-of-buffer
? describe-mode
g revert-buffer
h describe-mode
q quit-window
z kill-this-buffer
DEL scroll-down-command
<backtab> backward-button
<mouse-2> help-follow-mouse
<remap> Prefix Command
C-c C-b help-go-back
C-c C-c help-follow-symbol
C-c C-f help-go-forward
M-TAB backward-button
- bug#8368: 24.0.50; "temp" means "help" - rename or at least document,
Drew Adams <=
bug#8368: 24.0.50; "temp" means "help" - rename or at least document, Stefan Monnier, 2012/04/28