Subject: Re: bug#17210: 24.3.50; help mode [back] link to a C-h b keybind listing fails with message "Current buffer is not in Help mode"

From: martin rudalics <[email-masked]>
Date: Mon, 07 Apr 2014 09:48:43 +0200

> Repro steps:
 > emacs -Q
 > C-h b
 > click function name link
 > click back
 >
 > expected:
 > go back to the C-h b keymap listing
 >
 > acutal
 > in echo area: "Current buffer is not in Help mode"
 > the help buffer does no change.
 >
 >
 > The problem does not always happen, but it seems consistent on the first try in a
 > fresh emacs. Toggling debug on error, gives this trace:
 >
 > Debugger entered--Lisp error: (error "Current buffer is not in Help mode")
 >    signal(error ("Current buffer is not in Help mode"))
 >    error("Current buffer is not in Help mode")
 >    help-buffer()
 >    describe-bindings-internal(nil nil)
 >    describe-bindings(nil #<buffer *scratch*>)
 >    apply(describe-bindings (nil #<buffer *scratch*>))
 >    help-xref-go-back(#<buffer *Help*>)
 >    apply(help-xref-go-back #<buffer *Help*>)
 >    help-do-xref(63 help-xref-go-back (#<buffer *Help*>))
 >    help-button-action(#<marker (moves after insertion) at 66 in *Help*>)
 >    button-activate(#<marker (moves after insertion) at 66 in *Help*> nil)
 >    push-button(66)
 >    push-button((mouse-2 (#<window 6 on *Help*> 66 (34 . 106) 107906261 nil 66 (3 .
 > 5) nil (7 . 11) (9 . 19))))
 >    call-interactively(push-button nil nil)
 >    command-execute(push-button)

Confirmed.  Thanks for caring to provide a simple scenario.

I could fix this by restoring the code of `describe-bindings-internal'
from Emacs 24.3.  But the behavior of `help-xref-go-back' here is
erratic per se: It does not restore the earlier contents of the bindings
from the *scratch* buffer but IIUC those of the *Help* buffer and I'm
not sure whether that's what we want (I think we don't).

Juri, any opinions?

martin