(goto-char (point-min))
(condition-case ()
(if (and (re-search-forward
- "makeinfo version \\([0-9]+.[0-9]+\\)"
+ "makeinfo[ \n]version[ \n]\\([0-9]+.[0-9]+\\)"
(line-beginning-position 3) t)
(not (version< (match-string 1) "4.7")))
(setq found t))
Give an empty topic name to go to the Index node itself."
(interactive
(list
- (let ((Info-complete-menu-buffer (clone-buffer))
+ (let ((completion-ignore-case t)
+ (Info-complete-menu-buffer (clone-buffer))
(Info-complete-nodes (Info-index-nodes))
(Info-history-list nil))
(if (equal Info-current-file "dir")
(car (car Info-index-alternatives))
(nth 2 (car Info-index-alternatives))
(if (cdr Info-index-alternatives)
- (format "(%s total; use `,' for next)"
- (length Info-index-alternatives))
+ (format "(%s total; use `%s' for next)"
+ (length Info-index-alternatives)
+ (key-description (where-is-internal
+ 'Info-index-next overriding-local-map
+ t)))
"(Only match)")))
(defun Info-find-index-name (name)
manuals matches node nodes)
(let ((Info-fontify-maximum-menu-size nil))
(Info-directory)
+ ;; current-node and current-file are nil when they invoke info-apropos
+ ;; as the first Info command, i.e. info-apropos loads info.el. In that
+ ;; case, we use (DIR)Top instead, to avoid signalling an error after
+ ;; the search is complete.
+ (when (null current-node)
+ (setq current-file Info-current-file)
+ (setq current-node Info-current-node))
(message "Searching indices...")
(goto-char (point-min))
(re-search-forward "\\* Menu: *\n" nil t)
(while (re-search-forward "\\*.*: *(\\([^)]+\\))" nil t)
- (setq manuals (cons (match-string 1) manuals)))
+ ;; add-to-list makes sure we don't have duplicates in `manuals',
+ ;; so that the following dolist loop runs faster.
+ (add-to-list 'manuals (match-string 1)))
(dolist (manual (nreverse manuals))
(message "Searching %s" manual)
(condition-case err
;; Common subroutine.
(defun Info-try-follow-nearest-node (&optional fork)
- "Follow a node reference near point. Return non-nil if successful."
+ "Follow a node reference near point. Return non-nil if successful.
+If FORK is non-nil, it i spassed to `Info-goto-node'."
(let (node)
(cond
((Info-get-token (point) "[hf]t?tp://" "[hf]t?tp://\\([^ \t\n\"`({<>})']+\\)")
(setq other-tag
(cond ((save-match-data (looking-back "\\<see"))
"")
+ ((save-match-data (looking-back "\\<in"))
+ "")
((memq (char-before) '(nil ?\. ?! ??))
"See ")
((save-match-data