Subject: Re: bug#73686: 31.0.50; ERC 5.6.1-git: back button gone from describe-face via erc-nicks-list-faces

From: "J.P." <[email-masked]>
Date: Tue, 08 Oct 2024 14:07:46 -0700

Small correction:

> From emacs -Q:
> 1. M-x list-faces-display RET
> 2. TAB TAB RET C-x o (but see below*)
     ^
Missing a C-x o here in the original recipe.

So I doubt this is directly related, but I'm noticing another
peculiarity regarding help buffers not named `*Help*'. As you'd expect,
going back via a back button replaces the window buffer with the
previous one. And though typing "l" does that as well, it also
re-creates the previous buffer in a new window, resulting in different
buffers with the same content (the new one being the default "*Help*").

>From emacs -Q (on Emacs 30):

1. M-x list-faces-display RET
2. C-x o TAB TAB RET
3. In the help buffer for `abbrev-table-name':
   <backtab> <backtab> RET
4. In the help buffer for `font-lock-function-name-face':
   <backtab> RET
5. Back in `abbrev-table-name':
   TAB RET (should take you back to "*Faces*")

Now start a new session, repeating 1-3. For 4, hit "l" instead, and
witness the unwanted default "*Help*" buffer pop up in another window.
Superficially, I think the disparity results from `help-xref-following'
being t in the base recipe (at the hands of `help-do-xref'):

  * help-xref-go-back(#<buffer *Faces*>)
    help-do-xref(nil help-xref-go-back (#<buffer *Faces*>))
    help-button-action(#<marker (moves after insertion) at 751 in *Faces*>)
    button-activate(#<marker (moves after insertion) at 751 in *Faces*> nil)
    push-button(751)

Which allows for buffer reuse in `help-buffer'. No such arrangement
occurs with the "l" variant:

  * help-xref-go-back(#<buffer *Faces*>)
    help-go-back()
    funcall-interactively(help-go-back)