Subject: bug#60587: Patch for adding links to symbols' help documentation

From: Eli Zaretskii <[email-masked]>
Date: Mon, 09 Jan 2023 14:46:37 +0200

> From: "H. Dieter Wilhelm" <[email-masked]>
> Cc: Stefan Monnier <[email-masked]>,  [email-masked]
> Date: Sun, 08 Jan 2023 21:06:01 +0100
> 
> >> +(info-initialize)
> >
> > Why do you need to call this? and why on top level?
> 
> Because I have no better idea to build info-emacs-info-dir-content
> (maybe dynamically?).  With the code below I force the initialisation of
> Info-directory-list. It is used for checking if the current info
> document is relevant to Emacs.

Info-directory-list starts as nil, so you can test its value.

More generally, this feature displays links in an Info buffer, right?
If an Info buffer is displayed in Emacs, info-initialize was already
called, and you don't need to call it again.

> >> +;; Turn into regexp list necessary? Stefan
> >> +;; Switch to alist with explanation of file name?
> >> +(defcustom info-xref-none-emacs-or-elisp-documents
> >> +  '("aarm2012" ; Stefan: Ada manual, Elpa archive
> >> +    "arm2012"  ; Stefan: Ada manual
> >> +    "sicp"   ; T.V: Structure and Interpretation of Computer Programs,
> >> +                                        ; Melpa archive
> >> +    )
> >> +  "List of all none GNU-Emacs or Elisp documentation.
> >> +Or other documents not to be checked for linking to their help
> >> +documentation.  The list must contains only the base name of the
> >> +files (without their file name extension \".info\")."
> >> +  :type '(repeat string)
> >> +  :group 'info-xref)
> >
> > Not sure what is this about, and what do the names above signify.
> 
> This was a discussion on gmane.emacs.devel (please see
> [email-masked]) on how to avoid trying to link
> info documents which don't belong to Emacs. (Core-Utils, Ada
> documentation from Melpa, etc.)

I cannot access that discussion with this URL (can you tell on which
date that happened? then I will look in the emacs-devel list
archives), and I don't think I understand how such names will creep
into this feature.  Does the code somehow search every Info manual on
the system to do its job?