(Info-find-emacs-command-nodes): Rewrite to use
technique similar to Info-index, instead of relying on specific names of relevant Index nodes. (Info-goto-emacs-command-node): Bind Info-history to nil when going to the first node found by Info-find-emacs-command-nodes.
This commit is contained in:
parent
440fc13575
commit
218c2cc7ca
2 changed files with 40 additions and 34 deletions
|
@ -1,3 +1,11 @@
|
|||
2000-08-11 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
* info.el (Info-find-emacs-command-nodes): Rewrite to use
|
||||
technique similar to Info-index, instead of relying on specific
|
||||
names of relevant Index nodes.
|
||||
(Info-goto-emacs-command-node): Bind Info-history to nil when
|
||||
going to the first node found by Info-find-emacs-command-nodes.
|
||||
|
||||
2000-08-11 eliz <eliz@is.elta.co.il>
|
||||
|
||||
* menu-bar.el (menu-bar-help-menu): Add a :help string.
|
||||
|
|
66
lisp/info.el
66
lisp/info.el
|
@ -2194,7 +2194,7 @@ The locations are of the format used in `Info-history', i.e.
|
|||
\(FILENAME NODENAME BUFFERPOS\)."
|
||||
(let ((where '())
|
||||
(cmd-desc (concat "^\\* +" (regexp-quote (symbol-name command))
|
||||
":\\s *\\(.*\\)\\.$"))
|
||||
"\\( <[0-9]+>\\)?:\\s *\\(.*\\)\\.$"))
|
||||
(info-file "emacs")) ;default
|
||||
;; Determine which info file this command is documented in.
|
||||
(if (get command 'info-file)
|
||||
|
@ -2213,36 +2213,30 @@ The locations are of the format used in `Info-history', i.e.
|
|||
(if (string-match regexp (symbol-name command))
|
||||
(setq info-file file file-list nil))
|
||||
(setq file-list (cdr file-list))))))
|
||||
(save-excursion
|
||||
(condition-case nil
|
||||
(Info-find-node info-file "Command Index")
|
||||
;; Some manuals may not have a separate Command Index node,
|
||||
;; so try other variations as well.
|
||||
(error
|
||||
(condition-case nil
|
||||
(Info-find-node info-file "Function Index")
|
||||
(error
|
||||
(condition-case nil
|
||||
(Info-find-node info-file "Function and Variable Index")
|
||||
(error
|
||||
(condition-case nil
|
||||
(Info-find-node info-file "Concept Index")
|
||||
(error
|
||||
(condition-case nil
|
||||
(Info-find-node info-file "Index")
|
||||
(error
|
||||
(message "Info file `%s' seems to lack an Index"
|
||||
info-file)
|
||||
(sit-for 2)))))))))))
|
||||
;; Take the index node off the Info history.
|
||||
(setq Info-history (cdr Info-history))
|
||||
(goto-char (point-max))
|
||||
(while (re-search-backward cmd-desc nil t)
|
||||
(setq where (cons (list Info-current-file
|
||||
(match-string-no-properties 1)
|
||||
(Info-find-node info-file "Top")
|
||||
(or (and (search-forward "\n* menu:" nil t)
|
||||
(re-search-forward "\n\\* \\(.*\\<Index\\>\\)" nil t))
|
||||
(error "Info file `%s' appears to lack an index" info-file))
|
||||
(goto-char (match-beginning 1))
|
||||
;; Bind Info-history to nil, to prevent the index nodes from
|
||||
;; getting into the node history.
|
||||
(let ((Info-history nil)
|
||||
(exact nil)
|
||||
node found)
|
||||
(Info-goto-node (Info-extract-menu-node-name))
|
||||
(while
|
||||
(progn
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward cmd-desc nil t)
|
||||
(setq where
|
||||
(cons (list Info-current-file
|
||||
(match-string-no-properties 2)
|
||||
0)
|
||||
where)))
|
||||
where)))
|
||||
(and (setq node (Info-extract-pointer "next" t))
|
||||
(string-match "\\<Index\\>" node)))
|
||||
(Info-goto-node node)))
|
||||
where))
|
||||
|
||||
;;;###autoload
|
||||
(defun Info-goto-emacs-command-node (command)
|
||||
|
@ -2262,13 +2256,17 @@ the variable `Info-file-list-for-emacs'."
|
|||
;; FIXME It would be cool if this could use a buffer other
|
||||
;; than *info*.
|
||||
(pop-to-buffer "*info*")
|
||||
(Info-find-node (car (car where))
|
||||
(car (cdr (car where))))
|
||||
;; Bind Info-history to nil, to prevent the last Index node
|
||||
;; visited by Info-find-emacs-command-nodes from being
|
||||
;; pushed onto the history.
|
||||
(let ((Info-history nil))
|
||||
(Info-find-node (car (car where))
|
||||
(car (cdr (car where)))))
|
||||
(if (> num-matches 1)
|
||||
(progn
|
||||
;; Info-find-node already pushed (car where) onto
|
||||
;; Info-history. Put the other nodes that were found on
|
||||
;; the history.
|
||||
;; (car where) will be pushed onto Info-history
|
||||
;; when/if they go to another node. Put the other
|
||||
;; nodes that were found on the history.
|
||||
(setq Info-history (nconc (cdr where) Info-history))
|
||||
(message "Found %d other entr%s. Use %s to see %s."
|
||||
(1- num-matches)
|
||||
|
|
Loading…
Add table
Reference in a new issue