Function: Info-finder-find-node

Info-finder-find-node is a byte-compiled function defined in info.el.gz.

Signature

(Info-finder-find-node FILENAME NODENAME &optional NO-GOING-BACK)

Documentation

Finder-specific implementation of Info-find-node-2.

Source Code

;; Defined in /usr/src/emacs/lisp/info.el.gz
(defun Info-finder-find-node (_filename nodename &optional _no-going-back)
  "Finder-specific implementation of `Info-find-node-2'."
  (require 'finder)
  (cond
   ((equal nodename "Top")
    ;; Display Top menu with descriptions of the keywords
    (insert (format "\n\^_\nFile: %s,  Node: %s,  Up: (dir)\n\n"
		    Info-finder-file nodename))
    (insert "Finder Keywords\n")
    (insert "***************\n\n")
    (insert "* Menu:\n\n")
    (dolist (assoc (append '((all . "All package info")
			     (unknown . "Unknown keywords"))
			   finder-known-keywords))
      (let ((keyword (car assoc)))
	(insert (format "* %s %s.\n"
			(concat (symbol-name keyword) ": "
				"Keyword " (symbol-name keyword) ".")
			(info--prettify-description (cdr assoc)))))))
   ((equal nodename "Keyword unknown")
    ;; Display unknown keywords
    (insert (format "\n\^_\nFile: %s,  Node: %s,  Up: Top\n\n"
		    Info-finder-file nodename))
    (insert "Finder Unknown Keywords\n")
    (insert "***********************\n\n")
    (insert "* Menu:\n\n")
    (mapc
     (lambda (assoc)
       (insert (format "* %-14s %s.\n"
		       (concat (symbol-name (car assoc)) ": "
			       "Keyword " (symbol-name (car assoc)) ".")
		       (cdr assoc))))
     (finder-unknown-keywords)))
   ((equal nodename "Keyword all")
    ;; Display all package info.
    (insert (format "\n\^_\nFile: %s,  Node: %s,  Up: Top\n\n"
		    Info-finder-file nodename))
    (insert "Finder Package Info\n")
    (insert "*******************\n\n")
    (insert "* Menu:\n\n")
    (let (desc)
      (dolist (package package--builtins)
	(setq desc (cdr-safe package))
	(when (vectorp desc)
	  (insert (format "* %-16s %s.\n"
			  (concat (symbol-name (car package)) "::")
			  (info--prettify-description (aref desc 2))))))))
   ((string-match "\\`Keyword " nodename)
    (setq nodename (substring nodename (match-end 0)))
    ;; Display packages that match the keyword
    ;; or the list of keywords separated by comma.
    (insert (format "\n\^_\nFile: %s,  Node: Keyword %s,  Up: Top\n\n"
		    Info-finder-file nodename))
    (insert "Finder Packages\n")
    (insert "***************\n\n")
    (insert
     "The following packages match the keyword ‘" nodename "’:\n\n")
    (insert "* Menu:\n\n")
    (let ((keywords
	   (mapcar #'intern (if (string-search "," nodename)
			       (split-string nodename ",[ \t\n]*" t)
			     (list nodename))))
	  hits desc)
      (dolist (keyword keywords)
	(push (copy-tree (gethash keyword finder-keywords-hash)) hits))
      (setq hits (delete-dups (apply #'append hits))
	    ;; Not a meaningful package.
	    hits (delete 'emacs hits)
	    hits (sort hits (lambda (a b) (string< (symbol-name a)
						   (symbol-name b)))))
      (dolist (package hits)
	(setq desc (cdr-safe (assq package package--builtins)))
	(when (vectorp desc)
	  (insert (format "* %-16s %s.\n"
			  (concat (symbol-name package) "::")
			  (info--prettify-description (aref desc 2))))))))
   (t
    ;; Display commentary section
    (insert (format "\n\^_\nFile: %s,  Node: %s,  Up: Top\n\n"
		    Info-finder-file nodename))
    (insert "Package Description\n")
    (insert "*******************\n\n")
    (insert
     "Description of the package ‘" nodename "’:\n\n")
    ;; This assumes that a file named package.el exists,
    ;; which is not always true.  E.g. for the nxml package,
    ;; there is no "nxml.el" (it's nxml-mode.el).
    ;; But package.el makes the same assumption.
    ;; I think nxml is the only exception - maybe it should be just be renamed.
    (insert (or (ignore-errors (lm-commentary (find-library-name nodename)))
                (insert "Can’t find package description.\n\n"))))))