Subject: 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: Mon, 07 Oct 2024 19:47:41 -0700

The test `erc-nicks-list-faces' in test/lisp/erc/erc-nicks-tests.el now
fails [1]. This appears to be related to a recent change involving the
killing of local variables in `help-setup-xref'.

  e776df2a3eae0454ea85287e15ebba649bf8e918 is the first bad commit
  commit e776df2a3eae0454ea85287e15ebba649bf8e918
  Author: Dmitry Gutov <[email-masked]>
  Date:   Sun Oct 6 04:31:31 2024 +0300
      help-setup-xref: Keep the local values only of some variables
      
      ,* lisp/help-mode.el (help-setup-xref): Kill all local variables,
      saving ones that are known to need to be preserved (bug#73637).
   lisp/help-mode.el | 37 +++++++++++++------------------------
   1 file changed, 13 insertions(+), 24 deletions(-)

The change also affects `list-faces-display' in faces.el, which
`erc-nicks-list-faces' depends on.

>From emacs -Q:
1. M-x list-faces-display RET
2. TAB TAB RET C-x o (but see below*)
3. l -> (user-error "No previous help buffer")

Regarding (2), the Help buffer now opens in a split whereas before it
opened in the current window. The failing test expects the old behavior
but obviously doesn't have to for Emacs 31+. (That is to say we should
ensure the command still works and the test still passes on older Emacs
versions.)

I may not be able to look into this for a few days. Just filing a bug
now so folks will see it's been spotted.

Thanks.

[1] https://emba.gnu.org/emacs/emacs/-/jobs/90900/raw

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.43, cairo version 1.18.0) of 2024-10-07 built on localhost
Repository revision: ff4de9eff30ade164655354f71e7cbca48135858
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12401002
System Description: Fedora Linux 40 (Workstation Edition)

Configured using:
 'configure --enable-check-lisp-object-type --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3'
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: ERC

Minor modes in effect:
  erc-truncate-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-ring-mode: t
  erc-nicks-mode: t
  erc-netsplit-mode: t
  erc-menu-mode: t
  erc-match-mode: t
  erc-list-mode: t
  erc-irccontrols-mode: t
  erc-keep-place-indicator-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-scrolltobottom-mode: t
  erc-imenu-mode: t
  erc-pcomplete-mode: t
  erc-button-mode: t
  erc-fill-wrap-mode: t
  erc-fill-mode: t
  erc-stamp--date-mode: t
  erc-stamp--display-margin-mode: t
  erc-stamp-mode: t
  erc-autojoin-mode: t
  erc-networks-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  visual-line-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message yank-media dired dired-loaddefs
rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
facemenu help-fns radix-tree mule-util compile text-property-search
comp-run comp-common network-stream puny nsm erc-truncate erc-track
erc-ring erc-nicks color erc-netsplit erc-menu erc-match erc-list
erc-goodies erc-imenu imenu erc-pcomplete time-date pcomplete comint
ansi-osc ansi-color ring erc-button browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util url-parse url-vars mailcap erc-fill erc-stamp
erc-join cus-edit pp wid-edit view cus-start cus-load erc derived
auth-source eieio eieio-core icons password-cache json map format-spec
erc-backend erc-networks easy-mmode byte-opt bytecomp byte-compile
erc-common inline cl-extra help-mode erc-compat cl-seq cl-macs gv pcase
rx compat subr-x cl-loaddefs cl-lib erc-loaddefs rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 310654 14020) (symbols 48 15823 0) (strings 32 41880 7379)
 (string-bytes 1 1446301) (vectors 16 22633)
 (vector-slots 8 247090 18865) (floats 8 201 7029)
 (intervals 56 5336 0) (buffers 984 20))