;;; info-look.el --- major-mode-sensitive Info index lookup facility
;; An older version of this was known as libc.el.
-;; Copyright (C) 1995,96,97,98,99,2001,2003,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99,2001,03,04 Free Software Foundation, Inc.
;; Author: Ralph Schleicher <rs@nunatak.allgaeu.org>
;; (did not show signs of life (Nov 2001) -stef)
(info-frame (and window (window-frame window))))
(if (and info-frame
(display-multi-frame-p)
- (memq info-frame (frames-on-display-list)))
+ (memq info-frame (frames-on-display-list))
+ (not (eq info-frame (selected-frame))))
(select-frame info-frame)
(switch-to-buffer-other-window "*info*")))))
(while (and (not found) modes)
(message "No %s help available for `%s'" topic mode)
;; Recursively setup cross references.
;; But refer only to non-void modes.
- (mapcar (lambda (arg)
- (or (info-lookup->initialized topic arg)
- (info-lookup-setup-mode topic arg))
- (and (eq (info-lookup->initialized topic arg) t)
- (setq refer-modes (cons arg refer-modes))))
- (info-lookup->other-modes topic mode))
+ (dolist (arg (info-lookup->other-modes topic mode))
+ (or (info-lookup->initialized topic arg)
+ (info-lookup-setup-mode topic arg))
+ (and (eq (info-lookup->initialized topic arg) t)
+ (setq refer-modes (cons arg refer-modes))))
(setq refer-modes (nreverse refer-modes))
;; Build the full completion alist.
(setq completions
"awk")
((string-equal item "gawk, versions of, information about, printing")
"gawk"))))))
+
+;; This misses some things which occur as node names but not in the
+;; index. Unfortunately it also picks up the wrong one of multiple
+;; entries for the same term in some cases. --fx
+(info-lookup-maybe-add-help
+ :mode 'cfengine-mode
+ :regexp "[[:alnum:]_]+\\(:?()\\)?"
+ :doc-spec '(("(cfengine-Reference)Variable Index"
+ (lambda (item)
+ ;; Index entries may be like `IsPlain()'
+ (if (string-match "\\([[:alnum:]_]+\\)()" item)
+ (match-string 1 item)
+ item))
+ ;; This gets functions in evaluated classes. Other
+ ;; possible patterns don't seem to work too well.
+ "`" "(")))
\f
(provide 'info-look)