Subject: bug#29611: closed (Re: bug#29611: 25.3; help navigation error)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 08 Dec 2017 01:33:03 +0000

Your bug report

#29611: 25.3; help navigation error

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
29611: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=29611
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#29611: 25.3; help navigation error
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Thu, 07 Dec 2017 20:32:07 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 26.0.91

Thanks; looks like an old bug.

commit c0a670a (HEAD, origin/emacs-26, emacs-26)
Date:   Thu Dec 7 20:30:39 2017 -0500

    * lisp/help-mode.el (help-function-def):
    Allow help-make-xrefs to call with one argument.  (Bug#29611)

diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index a98bce0..8bafa46 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -192,20 +192,24 @@ 'help-customize-face
 
 (define-button-type 'help-function-def
   :supertype 'help-xref
-  'help-function (lambda (fun file &optional type)
-		   (require 'find-func)
-		   (when (eq file 'C-source)
-		     (setq file
-			   (help-C-file-name (indirect-function fun) 'fun)))
-		   ;; Don't use find-function-noselect because it follows
-		   ;; aliases (which fails for built-in functions).
-		   (let ((location
-			  (find-function-search-for-symbol fun type file)))
-		     (pop-to-buffer (car location))
-			 (run-hooks 'find-function-after-hook)
-		     (if (cdr location)
-			 (goto-char (cdr location))
-		       (message "Unable to find location in file"))))
+  'help-function (lambda (fun &optional file type)
+                   (or file
+                       (setq file (find-lisp-object-file-name fun type)))
+                   (if (not file)
+                       (message "Unable to find defining file")
+                     (require 'find-func)
+                     (when (eq file 'C-source)
+                       (setq file
+                             (help-C-file-name (indirect-function fun) 'fun)))
+                     ;; Don't use find-function-noselect because it follows
+                     ;; aliases (which fails for built-in functions).
+                     (let ((location
+                            (find-function-search-for-symbol fun type file)))
+                       (pop-to-buffer (car location))
+                       (run-hooks 'find-function-after-hook)
+                       (if (cdr location)
+                           (goto-char (cdr location))
+                         (message "Unable to find location in file")))))
   'help-echo (purecopy "mouse-2, RET: find function's definition"))
 
 (define-button-type 'help-function-cmacro ; FIXME: Obsolete since 24.4.
@@ -495,12 +499,6 @@ help-make-xrefs
                                  (help-xref-button 8 'help-face sym)))
                            ((match-string 6)) ; nothing for `symbol'
                            ((match-string 7)
-                            ;; this used:
-                            ;; #'(lambda (arg)
-                            ;;     (let ((location
-                            ;;            (find-function-noselect arg)))
-                            ;;       (pop-to-buffer (car location))
-                            ;; 	(goto-char (cdr location))))
                             (help-xref-button 8 'help-function-def sym))
                            ((cl-some (lambda (x) (funcall (nth 1 x) sym))
                                      describe-symbol-backends)

Subject: 25.3; help navigation error
From: Alex Branham <[email-masked]>
To: [email-masked]
Date: Thu, 07 Dec 2017 16:17:38 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

Clicking on a specific link from a specific help buffer results in an error. On Emacs 25.3, from emacs -q:

M-/ (dabbrev-expand)

C-h v dabbrev-select-buffers-function

<TAB> <TAB> <RET> (navigate to the second link and click it)

results in:

apply: Wrong number of arguments: #[(fun file &optional type) "ÄÅ!Æ=.ÇÈ	!Á\".É	
#.Ê@!ËÌ!A+.Ab..ÍÎ!)" [file fun type location require find-func C-source help-C-file-name indirect-function find-function-search-for-symbol ...] 4], 1

Thanks,
Alex

In GNU Emacs 25.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.19)
 of 2017-09-16 built on juergen
Windowing system distributor 'The X.Org Foundation', version 11.0.11905000
Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Help

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Scanning for dabbrevs...done
user-error: No dynamic expansion for ‘buffer.

’ found
Type C-x 1 to delete the help window.
mouse-2, RET: find variable's definition
mouse-2, RET: find function's definition
apply: Wrong number of arguments: #[(fun file &optional type) "ÄÅ!Æ=.ÇÈ	!Á\".É	
#.Ê@!ËÌ!A+.Ab..ÍÎ!)" [file fun type location require find-func C-source help-C-file-name indirect-function find-function-search-for-symbol ...] 4], 1
Making completion list...

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec password-cache epg 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 dabbrev
thingatpt help-fns help-mode easymenu cl-loaddefs pcase cl-lib time-date
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cl-generic 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 charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 87298 5725)
 (symbols 48 19850 0)
 (miscs 40 62 96)
 (strings 32 14679 4944)
 (string-bytes 1 420586)
 (vectors 16 11936)
 (vector-slots 8 432906 5933)
 (floats 8 173 61)
 (intervals 56 233 16)
 (buffers 976 19))