Function: Info-file-supports-index-cookies

Info-file-supports-index-cookies is a byte-compiled function defined in info.el.gz.

Signature

(Info-file-supports-index-cookies &optional FILE)

Documentation

Return non-nil value if FILE supports Info index cookies.

Info index cookies were first introduced in 4.7, and all later makeinfo versions output them in index nodes, so we can rely solely on the makeinfo version. This function caches the information in Info-file-supports-index-cookies-list.

Source Code

;; Defined in /usr/src/emacs/lisp/info.el.gz
(defun Info-file-supports-index-cookies (&optional file)
  "Return non-nil value if FILE supports Info index cookies.
Info index cookies were first introduced in 4.7, and all later
makeinfo versions output them in index nodes, so we can rely
solely on the makeinfo version.  This function caches the information
in `Info-file-supports-index-cookies-list'."
  (or file (setq file Info-current-file))
  (or (assoc file Info-file-supports-index-cookies-list)
      ;; Skip virtual Info files
      (and (or (not (stringp file))
	       (Info-virtual-file-p file))
           (setq Info-file-supports-index-cookies-list
		 (cons (cons file nil) Info-file-supports-index-cookies-list)))
      (save-excursion
	(let ((found nil))
	  (goto-char (point-min))
	  (condition-case ()
	      (if (and (re-search-forward
			"makeinfo[ \n]version[ \n]\\([0-9]+.[0-9]+\\)"
			(line-beginning-position 4) t)
		       (not (version< (match-string 1) "4.7")))
		  (setq found t))
	    (error nil))
	  (setq Info-file-supports-index-cookies-list
		(cons (cons file found) Info-file-supports-index-cookies-list)))))
  (cdr (assoc file Info-file-supports-index-cookies-list)))