;;; info.el --- info package for Emacs
;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help
:type 'boolean
:group 'info)
-(defcustom Info-fontify-maximum-menu-size 100000
- "*Maximum size of menu to fontify if `font-lock-mode' is non-nil."
+(defcustom Info-fontify-maximum-menu-size 1000000
+ "*Maximum size of menu to fontify if `font-lock-mode' is non-nil.
+Set to nil to disable node fontification."
:type 'integer
:group 'info)
(expand-file-name "info/" installation-directory)
(if invocation-directory
(let ((infodir (expand-file-name
- "../info/"
+ "../share/info/"
invocation-directory)))
(if (file-exists-p infodir)
infodir
(setq infodir (expand-file-name
- "../../../info/"
+ "../../../share/info/"
invocation-directory))
(and (file-exists-p infodir)
infodir))))))
nil t)
(let* ((start (match-beginning 1))
(parameter-alist (Info-split-parameter-string (match-string 2)))
- (src (cdr (assoc-string "src" parameter-alist)))
- (image-file (if src (if (file-name-absolute-p src) src
- (concat default-directory src))
- ""))
- (image (if (file-exists-p image-file)
- (create-image image-file)
- "[broken image]")))
- (if (not (get-text-property start 'display))
- (add-text-properties
- start (point) `(display ,image rear-nonsticky (display)))))))
+ (src (cdr (assoc-string "src" parameter-alist))))
+ (if (display-images-p)
+ (let* ((image-file (if src (if (file-name-absolute-p src) src
+ (concat default-directory src))
+ ""))
+ (image (if (file-exists-p image-file)
+ (create-image image-file)
+ "[broken image]")))
+ (if (not (get-text-property start 'display))
+ (add-text-properties
+ start (point) `(display ,image rear-nonsticky (display)))))
+ ;; text-only display, show alternative text if provided, or
+ ;; otherwise a clue that there's meant to be a picture
+ (delete-region start (point))
+ (insert (or (cdr (assoc-string "text" parameter-alist))
+ (cdr (assoc-string "alt" parameter-alist))
+ (and src
+ (concat "[image:" src "]"))
+ "[image]"))))))
(set-buffer-modified-p nil)))
;; Texinfo 4.7 adds cookies of the form ^@^H[NAME CONTENTS ^@^H].
(node-regexp "Node: *\\([^,\n]*\\) *[,\n\t]"))
(save-excursion
(save-restriction
+ (or Info-tag-table-marker
+ (error "No Info tags found"))
(if (marker-buffer Info-tag-table-marker)
(let ((marker Info-tag-table-marker))
(set-buffer (marker-buffer marker))
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")
(kill-buffer Info-complete-menu-buffer)))))
(if (equal Info-current-file "dir")
(error "The Info directory node has no index; use m to select a manual"))
+ ;; Strip leading colon in topic; index format does not allow them.
+ (if (and (stringp topic)
+ (> (length topic) 0)
+ (= (aref topic 0) ?:))
+ (setq topic (substring topic 1)))
(let ((orignode Info-current-node)
(pattern (format "\n\\* +\\([^\n]*%s[^\n]*\\):[ \t]+\\([^\n]*\\)\\.\\(?:[ \t\n]*(line +\\([0-9]+\\))\\)?"
(regexp-quote topic)))
(defvar info-tool-bar-map
(if (display-graphic-p)
(let ((map (make-sparse-keymap)))
- (tool-bar-local-item-from-menu 'Info-exit "close" map Info-mode-map)
(tool-bar-local-item-from-menu 'Info-history-back "left-arrow" map Info-mode-map)
(tool-bar-local-item-from-menu 'Info-history-forward "right-arrow" map Info-mode-map)
(tool-bar-local-item-from-menu 'Info-prev "prev-node" map Info-mode-map)
(tool-bar-local-item-from-menu 'Info-goto-node "jump-to" map Info-mode-map)
(tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map)
(tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map)
+ (tool-bar-local-item-from-menu 'Info-exit "exit" map Info-mode-map)
map)))
(defvar Info-menu-last-node nil)
(fontify-visited-p ; visited nodes need to be re-fontified
(and Info-fontify-visited-nodes
;; Don't take time to refontify visited nodes in huge nodes
+ Info-fontify-maximum-menu-size
(< (- (point-max) (point-min)) Info-fontify-maximum-menu-size)))
rbeg rend)
(goto-char (point-min))
(when (and (or not-fontified-p fontify-visited-p)
(search-forward "\n* Menu:" nil t)
- (not (Info-index-node))
;; Don't take time to annotate huge menus
+ Info-fontify-maximum-menu-size
(< (- (point-max) (point)) Info-fontify-maximum-menu-size))
(let ((n 0)
cont)
(setq res (car hl) hl nil)
(setq hl (cdr hl))))
res))) 'info-xref-visited 'info-xref)))
- (when (and not-fontified-p (memq Info-hide-note-references '(t hide)))
+ (when (and not-fontified-p
+ (memq Info-hide-note-references '(t hide))
+ (not (Info-index-node)))
(put-text-property (match-beginning 2) (1- (match-end 6))
'invisible t)
;; Unhide the file name in parens