(provide (quote info)) (defvar Info-history nil "\ List of info nodes user has visited. Each element of list is a list (FILENAME NODENAME BUFFERPOS).") (defvar Info-enable-edit nil "\ Non-nil means the \\[Info-edit] command in Info can edit the current node.") (defvar Info-enable-active-nodes t "\ Non-nil allows Info to execute Lisp code associated with nodes. The Lisp code is executed when the node is selected.") (defvar Info-directory nil "\ Default directory for Info documentation files.") (defvar Info-current-file nil "\ Info file that Info is now looking at, or nil.") (defvar Info-current-subfile nil "\ Info subfile that is actually in the *info* buffer now, or nil if current info file is not split into subfiles.") (defvar Info-current-node nil "\ Name of node that Info is now looking at, or nil.") (defvar Info-tag-table-marker (make-marker) "\ Marker pointing at beginning of current Info file's tag table. Marker points nowhere if file has no tag table.") (defun info nil "\ Enter Info, the documentation browser." (interactive) (byte-code "?AA!f (defun Info-find-node (filename nodename &optional no-going-back) (byte-code ".d \"%^U !f' \"%^U !fL \"\")^ .k ^a ^aE\"^cE!^e!% ^e E\"^db^ee!^ai\"+iiEE#?+Eid!^`%^Sen!^oo!)fSpoo!q^?^a ^o!^e /o!\")),e \")^u!%)^ai\"f4%^u ,?euu!yQt !..Sy !q^ 8C 8A#^E 8b)+" [Info-current-node no-going-back hist Info-history t Info-find-node 0 1 2] 4)) equal erase-buffer insert-file-contents set-buffer-modified-p file-name-directory set-marker forward-line -8 "*" search-forward " End tag table " search-backward " Tag table: " 2 looking-at "(Indirect) " get-buffer-create " *info tag table*" insert-buffer-substring match-end 0 file-name-sans-versions Info-set-mode-line "Node: *" regexp-quote " *[, ]" marker-position marker-buffer re-search-forward read get-buffer Info-read-subfile "No such node: \"%s\"" 1000 foo (byte-code "AAAA#.# A#. " forward-line 1 re-search-backward throw foo error "No such node: %s"] 8) Info-select-node] 46)) (defun Info-read-subfile (nodepos) (byte-code "E!q^eb^EE!^AAEI!^I?^ID!q^N \"+= !^OA!^ %)^eb^EE!^ Z`\\*+" [Info-tag-table-marker lastfilepos lastfilename Info-current-subfile buffer-read-only nil buffer-file-name nodepos marker-buffer search-forward " " forward-line 2 foo (byte-code "CE!?.C %^ %+,? (defun Info-select-node nil (byte-code "SAA!^CE!^EE!^E`II!^`\"%^I ^I ^AD`ENAA#f@ " forward-line 2 re-search-forward "Node:[ ]*" buffer-substring skip-chars-forward "^, " Info-set-mode-line beginning-of-line narrow-to-region " [ ]" looking-at "[  ]*execute: " match-end 0 read eval] 16)) (defun Info-set-mode-line nil (byte-code "A f + (defun Info-goto-node (nodename) "\ Go to info node named NAME. Give just NODENAME or (FILENAME)NODENAME." (interactive "sGoto node: ") (byte-code "EAAA \"^AC!EC!Uf .: O%)^AI \" .K O%)^IIE\"fY (defvar Info-last-search nil "\ Default regexp for Info S command to search for.") (defun Info-search (regexp) "\ Search for REGEXP, starting from point, and select node it's found in." (interactive "sSearch (regexp): ") (byte-code "EDN\"f  S?O ^ ?f: ?.o TQ!^B ^m?.? fi b^i ^D \". D\"+  Indirect:" narrow-to-region " " " " ": " beginning-of-line "\\(^.*\\): [0-9]+$" match-end 1 2 read buffer-substring match-beginning 0 nreverse message "Searching subfile %s..." Info-read-subfile signal search-failed Info-select-node] 29)) (defun Info-extract-pointer (name &optional errorname) (byte-code "Seb^AA!^ACPAA#f (defun Info-following-node-name (&optional allowedchars) (byte-code "AA!^A`AA+ " "]" "(" "^)" skip-chars-backward " "] 9)) (defun Info-next nil "\ Go to the next node of this node." (interactive) (byte-code "?AAA!!+" [nil Info-goto-node Info-extract-pointer "next"] 3)) (defun Info-prev nil "\ Go to the previous node of this node." (interactive) (byte-code "?AAAA\"!+" [nil Info-goto-node Info-extract-pointer "prev[ious]*" "previous"] 4)) (defun Info-up nil "\ Go to the superior node of this node." (interactive) (byte-code "?AAA!!+" [nil Info-goto-node Info-extract-pointer "up"] 3)) (defun Info-last nil "\ Go back to the last node visited." (interactive) (byte-code "?+ \"^A%^ b++" [Info-history filename nodename opoint nil error "This is the first Info node you looked at" Info-find-node] 4)) (defun Info-directory nil "\ Go to the Info directory node." (interactive) (byte-code "?AAA\"+" [nil Info-find-node "dir" "top"] 3)) (defun Info-follow-reference (footnotename) "\ Follow cross reference named NAME to the node it refers to. NAME may be an abbreviation of the reference name." (interactive (byte-code "AAAASeb^ACAA#.O B%^, f_ AA$C,b ]*\\([^:]*\\):" buffer-substring match-beginning 1 0 string-match "[ ]+" " " match-end completing-read "Follow reference named: " error "No cross-references in this node"] 12)) (byte-code "?AAAEPEE #%.0 ]+" 6 re-search-forward error "No cross-reference named %s" match-beginning 5 Info-extract-menu-node-name "Bad format cross reference" match-end 1 Info-goto-node] 13)) (defun Info-extract-menu-node-name (&optional errmessage multi-line) (byte-code "AA!^`AAAC!^EE!^EE!f #%.D OI^,2 " nil "^:" forward-char 1 looking-at ":" buffer-substring Info-following-node-name "^., " "^., " string-match " " 32] 12)) (defun Info-menu-item-sequence (list) (byte-code ". (defun Info-menu (menu-item) "\ Go to node for menu item named (or abbreviated) NAME." (interactive (byte-code "AA`ASeb^EEAA#?. * menu:" error "No menu in this node" re-search-forward " \\* \\([^: ]*\\):" match-beginning 0 buffer-substring 1 match-end end-of-line completing-read format "Menu item (default %s): " "Menu item: " string= ""] 16)) (byte-code "^EE!!+" [completions default nil p last t item completion-ignore-case menu-item Info-goto-node Info-extract-menu-item] 3)) (defun Info-extract-menu-item (menu-item) (byte-code "Seb^AAAA#+ EQAA#+( PAA#+( * menu:" error "No menu in this node" " * " ":" "No such item in menu" beginning-of-line forward-char 2 Info-extract-menu-node-name] 9)) (defun Info-extract-menu-counting (count) (byte-code "Seb^AAAA#+ $+ * menu:" error "No menu in this node" " * " "Too few items in menu" Info-extract-menu-node-name] 7)) (defun Info-first-menu-item nil "\ Go to the node of the first menu item." (interactive) (byte-code "?AAA!!+" [nil Info-goto-node Info-extract-menu-counting 1] 3)) (defun Info-second-menu-item nil "\ Go to the node of the second menu item." (interactive) (byte-code "?AAA!!+" [nil Info-goto-node Info-extract-menu-counting 2] 3)) (defun Info-third-menu-item nil "\ Go to the node of the third menu item." (interactive) (byte-code "?AAA!!+" [nil Info-goto-node Info-extract-menu-counting 3] 3)) (defun Info-fourth-menu-item nil "\ Go to the node of the fourth menu item." (interactive) (byte-code "?AAA!!+" [nil Info-goto-node Info-extract-menu-counting 4] 3)) (defun Info-fifth-menu-item nil "\ Go to the node of the fifth menu item." (interactive) (byte-code "?AAA!!+" [nil Info-goto-node Info-extract-menu-counting 5] 3)) (defun Info-exit nil "\ Exit Info by selecting some other buffer." (interactive) (byte-code "?AAp!Ap!^!+" [nil switch-to-buffer other-buffer bury-buffer] 5)) (defun Info-undefined nil "\ Make command be undefined in Info." (interactive) (byte-code "?A +" [nil ding] 2)) (defun Info-help nil "\ Enter the Info tutorial." (interactive) (byte-code "?AAA AWf (defun Info-summary nil "\ Display a brief summary of all Info commands." (interactive) (byte-code "E?+" [ch flag unread-command-char nil ((byte-code "AA!^A ^CE!c^eb^AAEd!?%^E f# (defvar Info-mode-map nil "\ Keymap containing Info commands.") (if Info-mode-map nil (setq Info-mode-map (make-keymap)) (suppress-keymap Info-mode-map) (define-key Info-mode-map "." (quote beginning-of-buffer)) (define-key Info-mode-map " " (quote scroll-up)) (define-key Info-mode-map "1" (quote Info-first-menu-item)) (define-key Info-mode-map "2" (quote Info-second-menu-item)) (define-key Info-mode-map "3" (quote Info-third-menu-item)) (define-key Info-mode-map "4" (quote Info-fourth-menu-item)) (define-key Info-mode-map "5" (quote Info-fifth-menu-item)) (define-key Info-mode-map "6" (quote undefined)) (define-key Info-mode-map "7" (quote undefined)) (define-key Info-mode-map "8" (quote undefined)) (define-key Info-mode-map "9" (quote undefined)) (define-key Info-mode-map "0" (quote undefined)) (define-key Info-mode-map "?" (quote Info-summary)) (define-key Info-mode-map "b" (quote beginning-of-buffer)) (define-key Info-mode-map "d" (quote Info-directory)) (define-key Info-mode-map "e" (quote Info-edit)) (define-key Info-mode-map "f" (quote Info-follow-reference)) (def ine-key Info-mode-map "g" (quote Info-goto-node)) (define-key Info-mode-map "h" (quote Info-help)) (define-key Info-mode-map "l" (quote Info-last)) (define-key Info-mode-map "m" (quote Info-menu)) (define-key Info-mode-map "n" (quote Info-next)) (define-key Info-mode-map "p" (quote Info-prev)) (define-key Info-mode-map "q" (quote Info-exit)) (define-key Info-mode-map "s" (quote Info-search)) (define-key Info-mode-map "u" (quote Info-up)) (define-key Info-mode-map "" (quote scroll-down))) (put (quote Info-mode) (quote mode-class) (quote special)) (defun Info-mode nil "\ Info mode provides commands for browsing through the Info documentation tree. Documentation in Info is divided into \"nodes\", each of which discusses one topic and contains references to other nodes which discuss related topics. Info has commands to follow the references and show you other nodes. h Invoke the Info tutorial. Selecting other nodes: n Move to the \"next\" node of this node. p Move to the \"previous\" node of this node. u Move \"up\" from this node. m Pick menu item specified by name (or abbreviation). Picking a menu item causes another node to be selected. f Follow a cross reference. Reads name of reference. l Move to the last node you were at. Moving within a node: Space scroll forward a page. DEL scroll backward. b Go to beginning of node. Advanced commands: q Quit Info: reselect previously selected buffer. e Edit contents of selected node. 1 Pick first item in node's menu. 2, 3, 4, 5 Pick second ... fifth item in node's menu. g Move to node specified by name. You may include a filename as well, as (FILENAME)NODENAME. s Search through this Info file for specified regexp, and select the node in which the next occurrence is found." (byte-code "E ^?^?^I !^I !^ (defvar Info-edit-map nil "\ Local keymap used within `e' command of Info.") (if Info-edit-map nil (setq Info-edit-map (copy-keymap text-mode-map)) (define-key Info-edit-map "" (quote Info-cease-edit))) (defun Info-edit-mode nil (byte-code "?" ["Major mode for editing the contents of an Info node. Like text mode with the addition of Info-cease-edit which returns to Info mode for browsing. \\{Info-edit-map}"] 1)) (defun Info-edit nil "\ Edit the contents of this Info node. Allowed only if variable Info-enable-edit is non-nil." (interactive) (byte-code "?+ (defun Info-cease-edit nil "\ Finish editing Info node; switch back to Info proper." (interactive) (byte-code "?C . .