;ELC ;;; Compiled by cyd@localhost on Mon Apr 23 22:20:54 2007 ;;; from file /home/cyd/emacs/lisp/info.el ;;; in Emacs version 22.0.99 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`info.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (custom-declare-group 'info nil "Info subsystem." :group 'help :group 'docs) #@106 Stack of Info nodes user has visited. Each element of the stack is a list (FILENAME NODENAME BUFFERPOS). (defvar Info-history nil (#$ . 633)) #@139 Stack of Info nodes user has visited with `Info-history-back' command. Each element of the stack is a list (FILENAME NODENAME BUFFERPOS). (defvar Info-history-forward nil (#$ . 782)) #@98 List of all Info nodes user has visited. Each element of the list is a list (FILENAME NODENAME). (defvar Info-history-list nil (#$ . 971)) #@320 *Non-nil means the \\[Info-edit] command in Info can edit the current node. This is convenient if you want to write Info files by hand. However, we recommend that you not do this. It is better to write a Texinfo file and generate the Info file from that, because that gives you a printed manual as well. (custom-declare-variable 'Info-enable-edit 'nil '(#$ . -1117) :type 'boolean :group 'info) #@118 Non-nil allows Info to execute Lisp code associated with nodes. The Lisp code is executed when the node is selected. (defvar Info-enable-active-nodes nil (#$ . 1534)) (byte-code "\300\301\302\303#\210\304\305\306\307\310\311%\210\304\312\313\314\310\311%\210\300\315\316\312#\210\304\317\320\321\310\311%\210\300\322\316\317#\210\304\323\324\325\310\311%\210\300\326\316\323#\210\304\327\330\331\310\311%\210\300\332\316\327#\210\304\333\334\335\310\311%\210\304\336\337\340\310\311%\210\300\341\316\336#\210\304\342\343\344\310\311%\210\304\345\346\347\350\351\310\311&\207" [put Info-enable-active-nodes risky-local-variable t custom-declare-face info-node ((((class color) (background light)) :foreground "brown" :weight bold :slant italic) (((class color) (background dark)) :foreground "white" :weight bold :slant italic) (t :weight bold :slant italic)) "Face for Info node names." :group info info-title-1 ((((type tty pc) (class color) (background light)) :foreground "green" :weight bold) (((type tty pc) (class color) (background dark)) :foreground "yellow" :weight bold) (t :height 1.2 :inherit info-title-2)) "Face for info titles at level 1." Info-title-1-face face-alias info-title-2 ((((type tty pc) (class color)) :foreground "lightblue" :weight bold) (t :height 1.2 :inherit info-title-3)) "Face for info titles at level 2." Info-title-2-face info-title-3 ((((type tty pc) (class color)) :weight bold) (t :height 1.2 :inherit info-title-4)) "Face for info titles at level 3." Info-title-3-face info-title-4 ((((type tty pc) (class color)) :weight bold) (t :weight bold :inherit variable-pitch)) "Face for info titles at level 4." Info-title-4-face info-menu-header ((((type tty pc)) :underline t :weight bold) (t :inherit variable-pitch :weight bold)) "Face for headers in Info menus." info-menu-star ((((class color)) :foreground "red1") (t :underline t)) "Face for every third `*' in an Info menu." info-menu-5 info-xref ((t :inherit link)) "Face for unvisited Info cross-references." info-xref-visited ((t :inherit (link-visited info-xref))) "Face for visited Info cross-references." :version "22.1"] 8) #@78 *Non-nil to fontify references to visited nodes in `info-xref-visited' face. (custom-declare-variable 'Info-fontify-visited-nodes 't '(#$ . -3664) :version "22.1" :type 'boolean :group 'info) #@108 *Maximum size of menu to fontify if `font-lock-mode' is non-nil. Set to nil to disable node fontification. (custom-declare-variable 'Info-fontify-maximum-menu-size '100000 '(#$ . -3863) :type 'integer :group 'info) #@135 *Non-nil means to put the beginning-of-node links in an Emacs header-line. A header-line does not scroll with the rest of the buffer. (custom-declare-variable 'Info-use-header-line 't '(#$ . -4085) :type 'boolean :group 'info) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\207" [custom-declare-face info-header-xref ((t :inherit info-xref)) "Face for Info cross-references in a node header." :group info info-header-node ((t :inherit info-node)) "Face for Info nodes in a node header."] 6) #@1503 List of directories to search for Info documentation files. If nil, meaning not yet initialized, Info uses the environment variable INFOPATH to initialize it, or `Info-default-directory-list' if there is no INFOPATH variable in the environment, or the concatenation of the two if INFOPATH ends with a colon. When `Info-directory-list' is initialized from the value of `Info-default-directory-list', and Emacs is installed in one of the standard directories, the directory of Info files that come with Emacs is put last (so that local Info files override standard ones). When `Info-directory-list' is initialized from the value of `Info-default-directory-list', and Emacs is not installed in one of the standard directories, the first element of the resulting list is the directory where Emacs installs the Info files that come with it. This is so that Emacs's own manual, which suits the version of Emacs you are using, will always be found first. This is useful when you install an experimental version of Emacs without removing the standard installation. If you want to override the order of directories in `Info-default-directory-list', set INFOPATH in the environment. If you run the Emacs executable from the `src' directory in the Emacs source tree, and INFOPATH is not defined, the `info' directory in the source tree is used as the first element of `Info-directory-list', in place of the installation Info directory. This is useful when you run a version of Emacs without installing it. (defvar Info-directory-list nil (#$ . 4604)) #@141 List of additional directories to search for Info documentation files. These directories are searched after those in `Info-directory-list'. (custom-declare-variable 'Info-additional-directory-list 'nil '(#$ . 6158) :type '(repeat directory) :group 'info) #@533 *If non-nil, \\[Info-scroll-up] in a menu visits subnodes. If this is non-nil, and you scroll far enough in a node that its menu appears on the screen, the next \\[Info-scroll-up] moves to a subnode indicated by the following menu item. This means that you visit a subnode before getting to the end of the menu. Setting this option to nil results in behavior similar to the stand-alone Info reader program, which visits the first subnode from the menu only when you hit the end of the current node. (custom-declare-variable 'Info-scroll-prefer-subnodes 'nil '(#$ . -6420) :version "22.1" :type 'boolean :group 'info) #@269 *If non-nil, hide the tag and section reference in *note and * menu items. If value is non-nil but not `hide', also replaces the "*note" with "see". If value is non-nil but not t or `hide', the reference section is still shown. `nil' completely disables this feature. (custom-declare-variable 'Info-hide-note-references 't '(#$ . -7077) :version "22.1" :type '(choice (const :tag "No hiding" nil) (const :tag "Replace tag and hide reference" t) (const :tag "Hide tag and reference" hide) (other :tag "Only replace tag" tag)) :group 'info) #@208 *If non-nil, attempt to refill paragraphs with hidden references. This refilling may accidentally remove explicit line breaks in the Info file, so be prepared for a few surprises if you enable this feature. (custom-declare-variable 'Info-refill-paragraphs 'nil '(#$ . -7623) :version "22.1" :type 'boolean :group 'info) #@307 *If non-nil, regular expression to match a sequence of whitespace chars. This applies to Info search for regular expressions. You might want to use something like "[ \t\r\n]+" instead. In the Customization buffer, that is `[' followed by a space, a tab, a carriage return (control-M), a newline, and `]+'. (custom-declare-variable 'Info-search-whitespace-regexp '"\\s-+" '(#$ . -7950) :type 'regexp :group 'info) #@565 *If non-nil, isearch in Info searches through multiple nodes. Before leaving the initial Info node, where isearch was started, it fails once with the error message [initial node], and with subsequent C-s/C-r continues through other nodes without failing with this error message in other nodes. When isearch fails for the rest of the manual, it wraps aroung the whole manual and restarts the search from the top/final node depending on search direction. Setting this option to nil restores the default isearch behavior with wrapping around the current Info node. (custom-declare-variable 'Info-isearch-search 't '(#$ . -8370) :version "22.1" :type 'boolean :group 'info) (byte-code "\301B\302\301!\204\303\301\304\"\210\304\207" [current-load-list Info-isearch-initial-node default-boundp set-default nil] 3) #@39 Hooks run when `Info-mode' is called. (custom-declare-variable 'Info-mode-hook '(unless (and (boundp 'Info-fontify) (null Info-fontify)) '(turn-on-font-lock)) '(#$ . 9190) :type 'hook :group 'info) #@46 Hooks run when `Info-select-node' is called. (custom-declare-variable 'Info-selection-hook 'nil '(#$ . 9394) :type 'hook :group 'info) #@44 Hooks run when `Info-edit-mode' is called. (defvar Info-edit-mode-hook nil (#$ . 9535)) #@193 Info file that Info is now looking at, or nil. This is the name that was specified in Info, not the actual file name. It doesn't contain directory names or file name extensions added by Info. (defvar Info-current-file nil (#$ . 9630)) #@110 Info subfile that is actually in the *info* buffer now. nil if current Info file is not split into subfiles. (defvar Info-current-subfile nil (#$ . 9872)) #@51 Name of node that Info is now looking at, or nil. (defvar Info-current-node nil (#$ . 10033)) #@112 Marker pointing at beginning of current Info file's tag table. Marker points nowhere if file has no tag table. (defvar Info-tag-table-marker nil (#$ . 10134)) #@38 Buffer used for indirect tag tables. (defvar Info-tag-table-buffer nil (#$ . 10299)) #@47 Cached completion list for current Info file. (defvar Info-current-file-completions nil (#$ . 10390)) #@54 Non-nil if current Info file supports index cookies. (defvar Info-file-supports-index-cookies nil (#$ . 10498)) #@57 List of possible matches for last `Info-index' command. (defvar Info-index-alternatives nil (#$ . 10616)) #@220 Point location within a selected node. If string, the point is moved to the proper occurrence of the name of the followed cross reference within a selected node. If number, the point is moved to the corresponding line. (defvar Info-point-loc nil (#$ . 10729)) #@57 Non-nil if Emacs was started solely as an Info browser. (defvar Info-standalone nil (#$ . 10995)) #@412 List of file name suffixes and associated decoding commands. Each entry should be (SUFFIX . STRING); the file is given to the command as standard input. STRING may be a list of strings. In that case, the first element is the command name, and the rest are arguments to that command. If STRING is nil, no decoding is done. Because the SUFFIXes are tried in order, the empty string should be last in the list. (defvar Info-suffix-list (byte-code "\301=\203\302\207\303\207" [system-type ms-dos ((".gz" . "gunzip") (".z" . "gunzip") (".bz2" "bzip2" "-dc") (".inz" . "gunzip") (".igz" . "gunzip") (".info.Z" . "gunzip") (".info.gz" . "gunzip") ("-info.Z" . "gunzip") ("-info.gz" . "gunzip") ("/index.gz" . "gunzip") ("/index.z" . "gunzip") (".inf") (".info") ("-info") ("/index") ("")) ((".info.Z" . "uncompress") (".info.Y" . "unyabba") (".info.gz" . "gunzip") (".info.z" . "gunzip") (".info.bz2" "bzip2" "-dc") (".info") ("-info.Z" . "uncompress") ("-info.Y" . "unyabba") ("-info.gz" . "gunzip") ("-info.bz2" "bzip2" "-dc") ("-info.z" . "gunzip") ("-info") ("/index.Z" . "uncompress") ("/index.Y" . "unyabba") ("/index.gz" . "gunzip") ("/index.z" . "gunzip") ("/index.bz2" "bzip2" "-dc") ("/index") (".Z" . "uncompress") (".Y" . "unyabba") (".gz" . "gunzip") (".z" . "gunzip") (".bz2" "bzip2" "-dc") (""))] 2) (#$ . 11100)) (defalias 'info-insert-file-contents-1 #[(filename suffix lfn) "\203 \nP\207\306 !\307 G GZ\310Z]\311\f\307X\203( \211GSH\312=\2034\nG\307U\2044\n\310\311O\f\307\313\nGZ]^ \307 G\f ZZO\nP+\207" [lfn filename suffix sans-exts ext-len ext-left file-name-sans-extension 0 1 nil 46 3] 5]) (defalias 'info-file-exists-p #[(filename) "\301!\205\n\302!?\207" [filename file-exists-p file-directory-p] 2]) #@122 Insert the contents of an Info file in the current buffer. Do the right thing if the file has been compressed or zipped. (defalias 'info-insert-file-contents #[(filename &optional visit) "\306\307!\203 \307 \202\310\306\307!\205\n\311\211\311\312!\203H \203>\313\314 @@!\315P\"\204> A\211\204) @A\202\225 \203\213\204\213\316 @@\n#\312\f!\203j\310 @A\202\204 \203\204\316 @@\311#\312\f!\203\204\310 @A A\211\204L \204\225\317\320\"\210\321 \203\242\322\f!\203\242\311 \203\325\323\f\"\210\311\324\325\f!\206\266 :\204\304 C\326\327ed @\310\211\311 A&+\202\332\330\f\".\207" [Info-suffix-list tail lfn check-short fullname decoder fboundp msdos-long-file-names t nil info-file-exists-p string-match regexp-quote "$" info-insert-file-contents-1 error "Can't find %s or any compressed version of it" jka-compr-installed-p jka-compr-get-compression-info insert-file-contents-literally no-conversion file-name-directory apply call-process-region insert-file-contents done filename visit default-directory coding-system-for-write buffer-read-only] 10 (#$ . 12847)]) (defalias 'Info-default-dirs #[nil "\306\307\" \203\306\307 \"\202/\n\205/\306\310\n\"\311 !\203\" \202.\306\312\n\"\311 !\205. )\313 \203B\311 !\203B \202D\211\235\204c\314>\204]\306\315 \"\230\203c\311\f!\204h\202l\fB+\207" [source-directory installation-directory invocation-directory infodir alternative sibling expand-file-name "info/" "../share/info/" file-exists-p "../../../share/info/" nil (ms-dos windows-nt) "lib-src/" source Info-default-directory-list system-type exec-directory] 5]) #@65 Initialize `Info-directory-list', if that hasn't been done yet. (defalias 'info-initialize #[nil "?\2054\303\304!\305 \203.\306\307 \"\203%\310\311 \312\313O\314\n!\"\315 \"\2020\311 \314\n!\"\2020\315 !\211)\207" [Info-directory-list path path-separator getenv "INFOPATH" prune-directory-list string-match ":\\'" append split-string 0 -1 regexp-quote Info-default-dirs] 6 (#$ . 14519)]) #@57 Like `info' but show the Info buffer in another window. (defalias 'info-other-window #[(&optional file-or-node) "\303\211\304\n!*\207" [same-window-regexps same-window-buffer-names file-or-node nil info] 2 (#$ . 14921) (byte-code "\205 \301\302\303\211\304$C\207" [current-prefix-arg read-file-name "Info file name: " nil t] 5)]) #@852 Enter Info, the documentation browser. Optional argument FILE-OR-NODE specifies the file to examine; the default is the top-level directory of Info. Called from a program, FILE-OR-NODE may specify an Info node of the form `(FILENAME)NODENAME'. Optional argument BUFFER specifies the Info buffer name; the default buffer name is *info*. If BUFFER exists, just switch to BUFFER. Otherwise, create a new buffer with the top-level Info directory. In interactive use, a non-numeric prefix argument directs this command to read a file name from the minibuffer. A numeric prefix argument selects an Info buffer with the prefix number appended to the Info buffer name. The search path for Info files is in the variable `Info-directory-list'. The top-level Info directory is made by combining all the files named `dir' in all the directories in that path. (defalias 'info #[(&optional file-or-node buffer) "\304\206\305!\210\203 \306=\204\306 \210\n\2030\307\n;\203*\310\311\n\"\203*\n\202.\312\n\313Q!\207\314\315 !\205> ?\205>\316 \207" [buffer major-mode file-or-node Info-history pop-to-buffer "*info*" Info-mode Info-goto-node string-match "(.*)" "(" ")" zerop buffer-size Info-directory] 4 (#$ . 15262) (list (if (and current-prefix-arg (not (numberp current-prefix-arg))) (read-file-name "Info file name: " nil nil t)) (if (numberp current-prefix-arg) (format "*info*<%s>" current-prefix-arg)))]) #@40 Display the Emacs manual in Info mode. (defalias 'info-emacs-manual #[nil "\300\301!\207" [info "emacs"] 2 (#$ . 16681) nil]) #@153 Run Emacs as a standalone Info reader. Usage: emacs -f info-standalone [filename] In standalone mode, \\[Info-exit] exits Emacs itself. (defalias 'info-standalone #[nil "\302 \203\303\304 @\"\204\305\306\307\217\207\310 \207" [Info-standalone command-line-args-left t string-match "^-" err (byte-code "\301@!\210A\211\207" [command-line-args-left info] 2) ((error (byte-code "\301\302\303\242\304=\203A@\202\"!\210\305 \207" [err send-string-to-terminal format "%s\n" error save-buffers-kill-emacs] 5))) info] 3 (#$ . 16814)]) (defalias 'Info-node-at-bob-matching #[(regexp) "o\205\302\303!\205\304\305y\210`\305y\210\306 \307#)\207" [beg regexp looking-at "" nil 1 re-search-backward t] 4]) #@150 Return expanded FILENAME, or t, if FILENAME is "dir". Optional second argument NOERROR, if t, means if file is not found just return nil (no error). (defalias 'Info-find-file #[(filename &optional noerror) ";\203\336\306\211\211\307!\211\227\310\230\203\311\202\303\312\313\"\203&\314\202<\315!\2030\316\202<\f\203;\317 \f\"\202< \211\203\302 \204\302\320@\"\320\227@\"\321\322!\203b\322 \202c\311\211\203\270 \204\270\323\324 @@#!\203\202 \202\257\323\324\n@@#!\203\225\n\202\257\321\322!\203\257\203\257\323\324 @@\306#!\203\257 A\211\204k*A\211\204B) \203\314 \202\333\203\326\306\202\333\325\326\"\210+\207\327\235\205\345\207" [filename found temp-downcase temp Info-additional-directory-list Info-directory-list nil substitute-in-file-name "dir" t string-match "^\\./" ("./") file-name-absolute-p (nil) append expand-file-name fboundp msdos-long-file-names info-file-exists-p info-insert-file-contents-1 error "Info file %s does not exist" (apropos history toc) dirs Info-suffix-list lfn suffix-list noerror] 6 (#$ . 17552)]) #@195 Go to an Info node specified as separate FILENAME and NODENAME. NO-GOING-BACK is non-nil if recovering from an error in this function; it says do not attempt further (recursive) error recovery. (defalias 'Info-find-node #[(filename nodename &optional no-going-back) "\306 \210\307! \310=\204\311\312!\210\n\204 \203 \f`E B\313\f\n#\207" [filename major-mode no-going-back Info-current-file Info-current-node Info-history info-initialize Info-find-file Info-mode pop-to-buffer "*info*" Info-find-node-2 nodename] 4 (#$ . 18677)]) #@151 Use Info mode to browse the current Info buffer. With a prefix arg, this queries for the node name to visit first; otherwise, that defaults to `Top'. (defalias 'Info-on-current-buffer #[(&optional nodename) "\204\304\305 \210\306 \210\307\303!\210 \206\n\310 P\311\312\"\207" [nodename buffer-file-name default-directory Info-current-file "Top" info-initialize Info-mode make-local-variable buffer-name Info-find-node-2 nil] 3 (#$ . 19224) (list (if current-prefix-arg (completing-read "Node name: " (Info-build-node-completions) nil t "Top")))]) #@173 Go to an Info node FILENAME and NODENAME, re-reading disk contents. When *info* is already displaying FILENAME and NODENAME, the window position is preserved, if possible. (defalias 'Info-revert-find-node #[(filename nodename) "\306\307!\210 i\310e\311 \"\310e\312 \"\n\205 `E\313p!\210\314\"\210\f\232\203Z \232\203Zeb\210 y\210\315\316 `\"\210eb\210y\210\317!\202c \205c \nB\211.\207" [Info-current-file Info-current-node Info-history new-history old-history wline pop-to-buffer "*info*" count-lines line-beginning-position window-start kill-buffer Info-find-node set-window-start selected-window move-to-column pline pcolumn old-nodename old-filename filename nodename] 9 (#$ . 19786)]) #@492 Find a node in a tag table. MARKER specifies the buffer and position to start searching at. REGEXP is a regular expression matching nodes or references. Its first group should match `Node:' or `Ref:'. CASE-FOLD t means search for a case-insensitive match. If a match was found, value is a list (FOUND-ANCHOR POS MODE), where FOUND-ANCHOR is non-nil if a `Ref:' was matched, POS is the position where the match was found, and MODE is `major-mode' of the buffer in which the match was found. (defalias 'Info-find-in-tag-table-1 #[(marker regexp case-fold) "\212\305\n!q\210\nb\210\306 \210\307 \310\311#\205\"\312\313!\314\230e\315p!\\\fE*\207" [case-fold case-fold-search marker regexp major-mode marker-buffer beginning-of-line re-search-forward nil t match-string 1 "Ref:" read] 4 (#$ . 20519)]) #@535 Find a node in a tag table. MARKER specifies the buffer and position to start searching at. REGEXP is a regular expression matching nodes or references. Its first group should match `Node:' or `Ref:'. If a match was found, value is a list (FOUND-ANCHOR POS MODE), where FOUND-ANCHOR is non-nil if a `Ref:' was matched, POS is the position where the match was found, and MODE is `major-mode' of the buffer in which the match was found. This function tries to find a case-sensitive match first, then a case-insensitive match is tried. (defalias 'Info-find-in-tag-table #[(marker regexp) "\303 \304#\211@\204\303 \305#\n)\207" [marker regexp result Info-find-in-tag-table-1 nil t] 5 (#$ . 21327)]) #@282 Find a node or anchor in the current buffer. REGEXP is a regular expression matching nodes or references. Its first group should match `Node:' or `Ref:'. CASE-FOLD t means search for a case-insensitive match. Value is the position at which a match was found, or nil if not found. (defalias 'Info-find-node-in-buffer-1 #[(regexp case-fold) "\305\212\306 !\203 ` \2042\307\310\305\311#\2032\312y\210`\312y\210\313 \f\311#\203.\314 \210`)\202 +\207" [case-fold found case-fold-search regexp beg nil Info-node-at-bob-matching search-forward "\n" t 1 re-search-backward beginning-of-line] 4 (#$ . 22036)]) #@335 Find a node or anchor in the current buffer. REGEXP is a regular expression matching nodes or references. Its first group should match `Node:' or `Ref:'. Value is the position at which a match was found, or nil if not found. This function looks for a case-sensitive match first. If none is found, a case-insensitive match is tried. (defalias 'Info-find-node-in-buffer #[(regexp) "\301\302\"\206 \301\303\"\207" [regexp Info-find-node-in-buffer-1 nil t] 3 (#$ . 22658)]) (defalias 'Info-find-node-2 #[(filename nodename &optional no-going-back) "\306p!\210\307=\204 \307 \210~\210\310\311\216\312\310\f\203 \f\232\204\310\2113\310\21145\3106\313 \210\f\312=\203>\314 \210\202o\f\315=\203K\316\317!\210\202o\f\320=\203X\316\321!\210\202o\f\322=\203e\316\323!\210\202o\324\f\310\"\210\325\f!7\326\310!\210\3108eb\210\310\327\330\217\210\331\332!\2108)db\210\333y\2109\334\230\204\355\335\336\310\312#\203\355\310:\337\340!\210`:\212\341y\210\342\343!)\203\342p;\206\272\344\345!<=<;\212\346\225<\223\210*\202\351>:\310\223\210)\202\363>\310\211\223\210\f\312=\203\375\347\202\376\f)9\334\230\2039\350 \202me\3519;\203\3529!\202\353\354Q?@\355\356\215\210\357 \210eb\210\n\203K \3609!D\211A\361AB\"BB)\nb\202lC\247\203]CSy\210\310\211C\202lC;\205l\362C!\210\310\211C*+\207" [major-mode Info-current-node anchorpos case-fold-search filename Info-current-file buffer-disable-undo Info-mode nil ((byte-code "\204! \204!\n\203!\n@\nA\304 @ A@\305#\210\306 8b\210)\304\207" [Info-current-node no-going-back Info-history hist Info-find-node t 2] 4)) t erase-buffer Info-insert-dir apropos insert-buffer-substring " *info-apropos*" history " *info-history*" toc " *info-toc*" info-insert-file-contents file-name-directory set-buffer-modified-p (byte-code "\301\302\303\304!\305#\203\306\307\310!\311\"\204\305\301\207" [found re-search-forward "makeinfo[ \n]version[ \n]\\([0-9]+.[0-9]+\\)" line-beginning-position 3 t version< match-string 1 "4.7"] 4) ((error)) make-local-variable Info-file-supports-index-cookies -8 "*" search-forward "\nEnd tag table\n" search-backward "\nTag table:\n" 2 looking-at "(Indirect)\n" generate-new-buffer " *info tag table*" 0 "dir" Info-set-mode-line "\\(Node:\\|Ref:\\) *\\(" regexp-quote "" "\\) *[, \n]" foo (byte-code "\306!\2031\307 \n\"\211\2030 A@\310 8\311=\204!\312\f! @\2030\f\211b\210\313\314\315\"\210*e\316\f!\317Z]b\210\320\n!\211\203Lb\210\313\314\315\"\210)\321\322\"\203l\323\324\325\326\"#\210)~\210\313\314\315\"\210\327\330\"\207" [Info-tag-table-marker m regexp found guesspos anchorpos marker-position Info-find-in-tag-table 2 Info-mode Info-read-subfile throw foo t byte-to-position 1000 Info-find-node-in-buffer string-match "\\([^.]+\\)\\." nil Info-find-node-2 match-string 1 error "No such node or anchor: %s" pos nodename Info-point-loc filename no-going-back] 6) Info-select-node substring-no-properties delete Info-find-index-name buffer-read-only Info-current-subfile Info-current-file-completions buffer-file-name default-directory found nodename pos Info-tag-table-buffer tagbuf buf Info-tag-table-marker regexp guesspos new-history Info-history-list Info-point-loc] 5]) (byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\304\"\210\306B\302\306!\204-\303\306\304\"\210\307B\302\307!\204<\303\307\304\"\210\304\207" [current-load-list Info-dir-contents default-boundp set-default nil Info-dir-contents-directory Info-dir-file-attributes Info-dir-file-name] 3) (defalias 'Info-insert-dir #[nil "\203 \203\306\307\310\311 \"B!\203c\210eb\210\202`\n\203'\312 \n\"\202( \313\314\313\211\211\211\211\211@ABCDEFF\203\326\315\316F@!!\211G\f\235\204\274\317G!\f\235\204\274\313H\316\320G\"H\321H!\206\225\316\322G\"H\321H!\206\225\316\323G\"H\321H!\206\225\316\324G\"H\321H!IG\317G!\fBBI\203\273\212B\204\260\325\326!\210\327\330!q\210\313\331\332\217\210)*FA\204\315\333\334!\210\335F@!FAF)\202@B\204\337\336\337!\210\340B!@A\341AB\"@\212\342A!\210)@\313J\211K\203zK@J\313LrJq\210eb\210\343\344\313\314#\203V\345\346y!\203#l\204`\313\211MNO\347\350!\210\351\352!\210\353 N\351\354\313\355#\210\356 \210`MNJOMFLBL+\202\357\360L\314#\203gL \244\202p\314C\325\361P\"\210*KA\211K\204*\343\344!\210\346y\210\362\212\351\363\313\314#\210`)MQ \313R\211S\203\325S@\211R@N\212N\227Q\235\204\313\343\364\365N!\366QM\314#\204\313\367N\366\370\261\210NQBQ*SA\211S\204\232, \313R\211T\203(T@R\314R@NDeb\210\343\371\365N!\372Q\313\314#\203 \351\354\313\355#\210\356 \210\370c\210\202db\210\373N\374\261\210\375\342RA\"\210*TA\211T\204\340*\376 \210\377\201VABB\"\210eb\210C\203H\325\201W!\210\202N\325\201X!\210\333\300!\210\201Y \333\301!\210E. \211U\207" [Info-dir-contents Info-dir-file-attributes Info-additional-directory-list Info-directory-list dirs-done nodes eval and mapcar #[(elt) "\302\303@!!\211\203\304 \233\305\240\210\304A\233\305\240\210A \232)\207" [elt curr file-attributes file-truename 4 0] 4] append nil t file-truename expand-file-name directory-file-name "dir" file-attributes "DIR" "dir.info" "DIR.INFO" message "Composing main Info directory..." generate-new-buffer " info dir" (byte-code "\305!\210\306\301!\210p\nB B\fB\305\207" [file Info-dir-file-name buffers attrs dir-file-attrs insert-file-contents make-local-variable] 2) ((error (byte-code "\300p!\207" [kill-buffer] 2))) make-local-variable Info-dir-contents-directory file-name-as-directory error "Can't find the Info directory node" last delq insert-buffer-substring re-search-forward "^\\* Menu:" zerop 1 re-search-backward "^" search-forward "Node: " Info-following-node-name "\n" move beginning-of-line assoc-string "top" "No `top' node in %s" ("top") "" "^\\* +" regexp-quote "::" "* " "\n" "^.*\n.*Node: " "[,\n ]" "\nFile: dir Node: " "\n\n* Menu:\n\n" apply Info-dir-remove-duplicates mapc others buffer buffers problems case-fold-search dir-file-attrs dirs truename file attrs other #1=#:--cl-dolist-temp-- this-buffer-nodes end nodename beg Info-dir-file-name menu-items node #2=#:--cl-dolist-temp-- #3=#:--cl-dolist-temp-- default-directory kill-buffer "Composing main Info directory...problems encountered, see `*Messages*'" "Composing main Info directory...done" buffer-string] 10]) #@69 List of elements (RE . NAME) to merge headings matching RE to NAME. (defvar Info-streamline-headings '(("Emacs" . "Emacs") ("Programming" . "Programming") ("Libraries" . "Libraries") ("World Wide Web\\|Net Utilities" . "Net Utilities")) (#$ . 29165)) (defalias 'Info-dir-remove-duplicates #[nil "\306eb\210\307\310\306\311#\205C\212\307\312\306\311#)\313\314\311#\203\315\316!\317\224\306\211\320 \321\216\306\211\203W@\322@\f\"\203NA@A\211\2048, \203d\323\f\311\211\306\316%\210\313\324\311#\203q\317\224\202v\206vdb\210\212\313\314\311#\203\302 \203\224\320 \325\216\322 \315\316!\"*\202\231\f\315\316!\232\203y\317y\210\317\224`|\210\326`\313\324\306\311#\203\263\317\224\202\270\206\270d\"\nB\317y\210\202y)\327\317!`SU\203\322\330u\210\202\303\n\237\306 \211!\203\377!@\211 c\210\327\317!`SU\203\366`S`|\210\202\345!A\211!\204\335*\306\331 \" b\210`V\203>\313\332\333#\203>\315\316!\227\211\"\235\2033\317\224\313\334\306\311#\210\317\224|\210\202:\"B\")\202 .\202)\207" [limit re entries start name save-match-data-internal nil search-forward "\n* Menu:" t "\n" re-search-forward "^\\(\\w.*\\)\n\\*" match-string 1 0 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match replace-match "^[^* \n ]" ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) delete-and-extract-region line-beginning-position -1 point-marker "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)" move "^[^ ]" Info-streamline-headings x #1=#:--cl-dolist-temp-- entry #2=#:--cl-dolist-temp-- seen] 7]) (defalias 'Info-read-subfile #[(nodepos) "\306\211\n\247\203'\212\307 !q\210eb\210\310\311!\204\312\313!\210\314y\210\315\316\215\210)\202+\n\317\f\232\204F\306\211~\210\320 \210\321!\210\322\306!\210)~\210eb\210\310\311!\203W\323u\210\202[\312\313!\210\n\247\205e\n Z`\\*\207" [lastfilename lastfilepos nodepos Info-tag-table-marker Info-current-subfile buffer-read-only nil marker-buffer looking-at "" search-forward "\n" 2 foo (byte-code "\306\307!\204<l\2046`\310\211\311\312!\210\n`\313Z{e\314p!\\\315y\210 V\203.\316\317\320\"\210 +\202\315y\210\202\310\207" [thisfilename thisfilepos beg nodepos lastfilename lastfilepos looking-at "" nil search-forward ": " 2 read 1 throw foo t] 3) 0 erase-buffer info-insert-file-contents set-buffer-modified-p 1 buffer-file-name] 3]) #@50 Unescape double quotes and backslashes in VALUE. (defalias 'Info-unescape-quotes #[(value) "\303\304\305 \n#\203\306\307\310\211 \311%\303\225S\202 *\207" [value unquote start 0 string-match "[^\\\"]*\\(\\\\\\)[\\\\\"]" replace-match "" t 1] 6 (#$ . 31627)]) #@251 Return alist of ("KEY" . "VALUE") from PARAMETER-STRING; a whitespace separated list of KEY=VALUE pairs. If VALUE contains whitespace or double quotes, it must be quoted in double quotes and any double quotes or backslashes must be escaped (\",\\). (defalias 'Info-split-parameter-string #[(parameter-string) "\303\304\305\306\n #\203'\303\225\307\310\n\"\307\311\n\"\206 \312\307\313\n\"!BB\202*\207" [parameter-alist start parameter-string 0 nil string-match "\\s *\\([^=]+\\)=\\(?:\\([^\\s \"]+\\)\\|\\(?:\"\\(\\(?:[^\\\"]\\|\\\\[\\\\\"]\\)*\\)\"\\)\\)" match-string 1 2 Info-unescape-quotes 3] 5 (#$ . 31902)]) #@33 Display images in current node. (defalias 'Info-display-images-node #[nil "\212\306\211eb\210\307\310\311\306#\203\210\312\224\313\314\315!!\316\317 \"A\320 \203b\f\2038\321\f!\2032\f\2029 \fP\2029\322 \323 !\203I\324 !\202J\325!\326\n\327\"\204^\330\n`\327!\331BB#\210*\202\204\n`|\210\316\332 \"A\206\202\316\333 \"A\206\202\f\203\201\334\f\335Q\206\202\336c\210+\202*\337\311!)\207" [case-fold-search inhibit-read-only start parameter-alist src default-directory t re-search-forward "\\([[]image\\(\\(?:[^]\\|[^]+\\)*\\)[]]\\)" nil 1 Info-split-parameter-string match-string 2 assoc-string "src" display-images-p file-name-absolute-p "" file-exists-p create-image "[broken image]" get-text-property display add-text-properties (rear-nonsticky (display)) "text" "alt" "[image:" "]" "[image]" set-buffer-modified-p image-file image] 6 (#$ . 32534)]) #@44 Hide unrecognized cookies in current node. (defalias 'Info-hide-cookies-node #[nil "\212\303\211eb\210\304\305\306\303#\203%\307\224\310\n\311\"\204!\312\n`\311\303$\210)\202*\313\306!)\207" [case-fold-search inhibit-read-only start t re-search-forward "\\([-][[][^]*[-][]]\n?\\)" nil 1 get-text-property invisible put-text-property set-buffer-modified-p] 5 (#$ . 33424)]) #@40 Select the Info node that point is in. (defalias 'Info-select-node #[nil "\306\212\307\310\311\312#\203\313y\210\202#\314\315!\203\316y\210\202#\317\320\310C\"\210\321\322!\210\323`\324\311w\210`\"\325 \210\326 \210\311`\321\327\311\306#\203T`S\314\330!\203U\331\225b\210\332p!\202Ud}\210 \203_\333\n!\210\f D\211\334 \"\"B\"\311#)$\311=\204z\335 \210\336 \210\337 \210\340\341!+\207" [case-fold-search Info-current-node active-expression Info-enable-active-nodes Info-current-file new-history t search-backward "\n" nil move 2 looking-at "" 1 signal search-failed re-search-forward "Node:[ ]*" buffer-substring-no-properties "^, \n" Info-set-mode-line beginning-of-line "\n[\f]" "[\n\f]*execute: " 0 read eval delete Info-fontify-node Info-display-images-node Info-hide-cookies-node run-hooks Info-selection-hook Info-history-list Info-history-forward Info-fontify-maximum-menu-size] 6 (#$ . 33817)]) #@55 Keymap to put on the Info node name in the mode line. (defvar Info-mode-line-node-keymap (byte-code "\301 \302\303\304#\210\302\305\306#\210)\207" [map make-sparse-keymap define-key [mode-line mouse-1] Info-mouse-scroll-up [mode-line mouse-3] Info-mouse-scroll-down] 4) (#$ . 34750)) (defalias 'Info-set-mode-line #[nil "\304\305!\306;\203\307\310\311\312!#\202\313\314\"\315 \203/\316\307\310\311 #\317\320\321\322\323\324\325\n& \2020\326RC\244\211\207" [Info-current-file Info-current-node Info-mode-line-node-keymap mode-line-buffer-identification propertized-buffer-identification "%b" " (" replace-regexp-in-string "%" "%%" file-name-nondirectory format "*%S*" ") " propertize face mode-line-buffer-id help-echo "mouse-1: scroll forward, mouse-3: scroll back" mouse-face mode-line-highlight local-map ""] 14]) #@472 Go to Info node named NODENAME. Give just NODENAME or (FILENAME)NODENAME. If NODENAME is of the form (FILENAME)NODENAME, the node is in the Info file FILENAME; otherwise, NODENAME should be in the current Info file (or one of its sub-files). Completion is available, but only for node names in the current Info file. If FORK is non-nil (interactively with a prefix arg), show the node in a new Info buffer. If FORK is a string, it is the name to use for the new buffer. (defalias 'Info-goto-node #[(nodename &optional fork) "\306 \210\203\307\310;\203\202 \311Q\312\"q\210\313\314\315 \"\210\316\224\316\225U\203,\317\2020\320\321 \"\320\322 \"\314\323\n\"\211\203D\n\324 O)\314\323 \"\211\203S \324 O)\f\203m\f\325=\203c\313\202m\f\203m\313\326\327!\210\330\n\317\232?\205v\n \317\232\203\200\331\202\201 \")\207" [fork nodename filename trim transient-mark-mode mark-active info-initialize clone-buffer "*info-" "*" t nil string-match "\\s *\\((\\s *\\([^ )]*\\)\\s *)\\s *\\|\\)\\(.*\\)" 1 "" match-string 2 3 "\\s +\\'" 0 lambda run-hooks deactivate-mark-hook Info-find-node "Top"] 5 (#$ . 35587) (list (Info-read-node-name "Go to node: ") current-prefix-arg)]) #@131 Virtual completion table for file names input in Info node names. PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES). (defalias 'Info-read-node-name-2 #[(string path-and-suffixes action) "\306\307\310 A\"\311\n\312\"\313P\314\f!\315\f!\203 \314\f!C\202\" @\211\306\211\203\304@\211\204; \203F\316 \"\317!\203\273\320\321\f!\"\306\211\203\272@\322!\203q\323 \"\203\221\323\324\"\204\221\323\325\"\204\221 \203\214 P\202\216B\323 \"\203\261\326\211\224O \203\254 P\202\256BA\211\204]*A\211\204.* \312=\203\323\327\f\"\202\343 \204\337\330\f\"\202\343\331\f\"-\207" [names path-and-suffixes suffixes suffix string string-dir nil remove "" regexp-opt t "\\'" file-name-directory file-name-absolute-p expand-file-name file-directory-p file-name-all-completions file-name-nondirectory file-name-extension string-match "-[0-9]+\\'" "~\\'" 0 all-completions try-completion test-completion dirs dir #1=#:--cl-dolist-temp-- default-directory file #2=#:--cl-dolist-temp-- action] 6 (#$ . 36790)]) (defalias 'Info-read-node-name-1 #[(string predicate code) "\306\307\"\203J\310\311O\n\311=\2034\312 \313 \314\315\f\"B#\211\316=\203)\317P\2020 \2050\320 P)\202H\n\316=\203G\321 \313 \314\315\f\"B#\202H\311)\207\306\322\"\203c\n\311=\203Y\207\n\316=\203a\311\207\316\207\n\311=\203q\312#\207\n\316=\203\321#\207\323#\207" [string file code Info-directory-list Info-suffix-list comp string-match "\\`([^)]*\\'" 1 nil try-completion Info-read-node-name-2 mapcar car t ")" "(" all-completions "\\`(" test-completion Info-read-node-completion-table predicate] 8]) (put 'Info-read-node-name-1 'completion-base-size-function #[nil "\301\302\206\303 \"\203\304\207\305\207" [completion-common-substring string-match "\\`([^)]*\\'" minibuffer-completion-contents 1 0] 3]) (defalias 'Info-read-node-name #[(prompt &optional default) "\305\306 \307\n\310\311\305$\211\312\232\203\f\206\313\n!\202 +\207" [completion-ignore-case Info-read-node-completion-table prompt nodename default t Info-build-node-completions completing-read Info-read-node-name-1 nil "" Info-read-node-name] 6]) (defalias 'Info-build-node-completions #[nil "\206~\306\307\310\212\214\f\204\311\312!\210\313\f!\203<\f\313 !q\210~\210 b\210\314\315\306\307#\2038\316\317!C B\202&)\202q~\210eb\210\320 !\203L\316\321!C\322\323\306\307#\203q\321y\210`\321y\210\324 \307#\203m\316\321!C B)\202L*\325 B\326\300!\210 \211+\207" [Info-current-file-completions node-regexp case-fold-search compl Info-tag-table-marker marker nil t "Node: *\\([^,\n]*\\) *[,\n ]" error "No Info tags found" marker-buffer re-search-forward "\n\\(Node\\|Ref\\): \\(.*\\)" match-string-no-properties 2 Info-node-at-bob-matching 1 search-forward "\n" re-search-backward ("*") make-local-variable beg] 4]) #@70 If this node has been visited, restore the point value when we left. (defalias 'Info-restore-point #[(hl) "\205)@@ \232\203!@A@\n\230\203!\303@8b\210\304\211\202A\211\204\304\207" [hl Info-current-file Info-current-node 2 nil] 3 (#$ . 39703)]) #@37 The history list for `Info-search'. (defvar Info-search-history nil (#$ . 39967)) #@70 The value of `case-fold-search' from previous `Info-search' command. (defvar Info-search-case-fold nil (#$ . 40055)) #@133 Search for REGEXP, starting from point, and select node it's found in. If DIRECTION is `backward', search in the reverse direction. (defalias 'Info-search #[(regexp &optional bound noerror count direction) "\203\306=\203\307\202\203\307\310\311!\210\n\312\232\203\" @\n\205S\307\211\211\f\313= .`ed\314 /0123456 789:;\212\214~\210 \203g\212eb\210\315\316!\210`S)d}\2107\204\371\317 <\320\2169?\206\265 \203\206\32198\"\202\214\32189\"\206\265\212\322y\210\323\324!)\203\250 \203\243\322\202\244\325y\206\265\212\326\324\307\327#\205\264\323\330!)*\203\371=\203\303>\205\305?@ \203\325\331\nA\327#\202\333\332\nA\327#\203\362`9 \203\353\333\225\202\355\333\2248\202\365\3277)\202g*=\203/B\203/C\204/A\204/7\204(9\203/93V\203(92W\204/\334\335\n\336D\"\2107\203^/\204[=\203C>\205E?@ \203S\331\n!\210\202W\332\n!\210)\202^\3079A\203n9\204n\334\335\nC\"\2109\204\352A\204\352\337\216\307D\212\340E!q\210eb\210\315\341!\210\214`\315\316!\210`S}\210eb\210\315\3420\343Q!\210 \203\251\333\202\252\325y\210 \203\264\322u\210 \203\275o\202\276m\204\370 \203\315\331\344!\210\202\321\332\344!\210\325\225\345\\b\210e\346p!\\\347\325!BDBD \203\360\333\224S\202\363\333\225Tb\210\202\264D\237D*D\203\327\350\351D@A\"\210\352D@@!\210 \203(\212eb\210\315\316!\210`S)d}\210db\210DAD\307\211797\204\303\317 <\353\2169?\206\201 \203R\32198\"\202X\32189\"\206\201\212\322y\210\323\324!)\203t \203o\322\202p\325y\206\201\212\326\324\307\327#\205\200\323\330!)*\203\303=\203\217>\205\221?@ \203\240\331\n\307\327#\202\245\332\n\307\327#\203\274`9 \203\265\333\225\202\267\333\2248\202\277\3277)\20237\203\313\30799\203\376\307\211D\2049\203\343\350\312!\210\202\351\334\335\nC\"\210*0/\230\203 93V\203 92W\203 9b\210\202~\2109b\210\317 <\354\216\355 \210*6 \230\203(5.\232\206Q=\203DF\203D4G\203>3\202@2=\206Q564EHB\211H. \207" [transient-mark-mode mark-active regexp Info-search-history direction Info-current-node lambda nil run-hooks deactivate-mark-hook "" backward window-start search-forward "\n" match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) isearch-range-invisible -1 looking-at "" 1 search-backward t "\n\\(Tag Table\\|Local Variables\\)" re-search-backward re-search-forward 0 signal search-failed "initial node" ((byte-code "\204\304 !\210\nb\210\305 \210\306\307 \"\210\304\207" [found osubfile opoint ostart Info-read-subfile Info-select-node set-window-start selected-window] 3)) marker-buffer "\n\nIndirect:" "\n" ": " "\\(^.*\\): [0-9]+$" 2 read match-string-no-properties message "Searching subfile %s..." Info-read-subfile ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) Info-select-node Info-current-file Info-current-subfile osubfile ostart opoint-max opoint-min opoint ofile onode give-up beg-found found case-fold-search Info-search-case-fold save-match-data-internal isearch-mode isearch-regexp Info-search-whitespace-regexp search-spaces-regexp bound Info-isearch-search Info-isearch-initial-node list Info-tag-table-marker isearch-wrapped isearch-forward Info-history] 12 (#$ . 40179) (list (read-string (if Info-search-history (format "Regexp search%s (default %s): " (if case-fold-search "" " case-sensitively") (car Info-search-history)) (format "Regexp search%s: " (if case-fold-search "" " case-sensitively"))) nil 'Info-search-history))]) #@39 Search for a regexp case-sensitively. (defalias 'Info-search-case-sensitively #[nil "\301\302\303!)\207" [case-fold-search nil call-interactively Info-search] 2 (#$ . 43848) nil]) #@63 Search for next regexp from a previous `Info-search' command. (defalias 'Info-search-next #[nil "\n\203 \303\n@!\202\304\303!)\207" [Info-search-case-fold case-fold-search Info-search-history Info-search call-interactively] 2 (#$ . 44035) nil]) #@45 Search for REGEXP in the reverse direction. (defalias 'Info-search-backward #[(regexp &optional bound noerror count) "\304 \n \305%\207" [regexp bound noerror count Info-search backward] 6 (#$ . 44291) (list (read-string (if Info-search-history (format "Regexp search%s backward (default %s): " (if case-fold-search "" " case-sensitively") (car Info-search-history)) (format "Regexp search%s backward: " (if case-fold-search "" " case-sensitively"))) nil 'Info-search-history))]) (defalias 'Info-isearch-search #[nil "\203\302\207\303\304 )\207" [Info-isearch-search isearch-search-fun-function #[(string &optional bound noerror count) "\203\306\307\310\311\211\310\312\313 #\314\315%\307Q\n \f ?\205\316%\207\306\203( \202+\317 !\n \f ?\2054\316%\210`\207" [isearch-word string bound noerror count isearch-forward Info-search "\\b" replace-regexp-in-string "\\W+" "^\\W+\\|\\W+$" "" nil t backward regexp-quote isearch-regexp] 9] nil isearch-search-fun] 1]) (defalias 'Info-isearch-wrap #[nil "\203& \203 \n\203\305 \210\202\306 \210\n\203e\202db\207 \307\211\207\n\203.e\202/db\207" [Info-isearch-search Info-isearch-initial-node isearch-forward Info-current-node isearch-wrapped Info-top-node Info-final-node nil] 2]) (defalias 'Info-isearch-push-state #[nil "\302\303\304\305\306D\306 DFE\207" [Info-current-file Info-current-node lambda (cmd) Info-isearch-pop-state cmd quote] 7]) (defalias 'Info-isearch-pop-state #[(cmd file node) " \232\203\f\n \232\206\304 \"\210\305\306!\207" [Info-current-file file Info-current-node node Info-find-node sit-for 0] 3]) (defalias 'Info-isearch-start #[nil "\301\211\207" [Info-isearch-initial-node nil] 2]) #@143 Extract the value of the node-pointer named NAME. If there is none, use ERRORNAME in the error message; if ERRORNAME is nil, just return nil. (defalias 'Info-extract-pointer #[(name &optional errorname) "\304\212eb\210`\305y\210\306\n\307\310 Q \304#\203\311\305!\202. \304=?\205.\312\313\314 \206,\n!\"+\207" [case-fold-search bound name errorname t 1 re-search-backward ":" Info-following-node-name-re match-string-no-properties error "Node has no %s" capitalize] 4 (#$ . 45986)]) #@377 Return a regexp matching a node name. ALLOWEDCHARS, if non-nil, goes within [...] to make a regexp saying which chars may appear in the node name. Submatch 1 is the complete node name. Submatch 2 if non-nil is the parenthesized file name part of the node name. Submatch 3 is the local part of the node name. End of submatch 0, 1, and 3 are the same, so you can safely concat. (defalias 'Info-following-node-name-re #[(&optional allowedchars) "\301\302\303\206\304\305\306\206\304\307\310\260 \207" [allowedchars "[ ]*" "\\(\\(([^)]+)\\)?" "\\([" "^, \n" "]*" "[" " ]" "\\|\\)\\)"] 9 (#$ . 46483)]) (defalias 'Info-following-node-name #[nil "\300\301 !\205\n\302\303!\207" [looking-at Info-following-node-name-re match-string-no-properties 1] 2]) #@35 Go to the next node of this node. (defalias 'Info-next #[nil "\300\213\207" [((byte-code "\301=\204\n\302\303!\210\304\305\306!!\207" [major-mode Info-mode pop-to-buffer "*info*" Info-goto-node Info-extract-pointer "next"] 3))] 1 (#$ . 47243) nil]) #@39 Go to the previous node of this node. (defalias 'Info-prev #[nil "\300\213\207" [((byte-code "\301=\204\n\302\303!\210\304\305\306\307\"!\207" [major-mode Info-mode pop-to-buffer "*info*" Info-goto-node Info-extract-pointer "prev[ious]*" "previous"] 4))] 1 (#$ . 47500) nil]) #@102 Go to the superior node of this node. If SAME-FILE is non-nil, do not move to a different Info file. (defalias 'Info-up #[(&optional same-file) "\300\213\207" [((byte-code "\306=\204\n\307\310!\210 \n\311\312!\313\"#\203%\314\315\f\"\203%\316\317!\210\320\f!\210`eb\210 ;\203m\321\322\313\323#\203m\324\"\325\230\203L\326\327 !\330Q\202Y\331\332\"!\333\332\"!\334\260\313\323#\203m\335 \210\336\337!\205t\340u\202t b\210\341$!,\207" [major-mode Info-current-node Info-current-file p node old-file Info-mode pop-to-buffer "*info*" Info-extract-pointer "up" nil string-match "^(" error "Up node is in another Info file" Info-goto-node search-forward "\n* Menu:" t re-search-forward "Top" "\n\\*[^:]+: +(" file-name-nondirectory ")" "\n\\* +\\(" regexp-quote ":\\|[^:]+: +" "\\)" beginning-of-line looking-at "^\\* " 2 Info-restore-point old-node same-file Info-history] 6))] 1 (#$ . 47785) nil]) #@50 Go back in the history to the last node visited. (defalias 'Info-history-back #[nil "\204\306\307!\210 \n`E B\310\211\211\n @@\n@A@@AA@A\311\n \"\210A \fb,\207" [Info-history Info-current-file Info-current-node Info-history-forward opoint nodename error "This is the first Info node you looked at" nil Info-find-node filename history-forward] 4 (#$ . 48707) nil]) (defalias 'Info-last 'Info-history-back) #@45 Go forward in the history of visited nodes. (defalias 'Info-history-forward #[nil "\204\305\306!\210A\307\211\211@@@A@@AA@\310 \n\"\210\f b,\207" [Info-history-forward opoint nodename filename history-forward error "This is the last Info node you looked at" nil Info-find-node] 4 (#$ . 49138) nil]) #@32 Go to the Info directory node. (defalias 'Info-directory #[nil "\300\301\302\"\207" [Info-find-node "dir" "top"] 3 (#$ . 49458) nil]) #@44 Go to a node with a menu of visited nodes. (defalias 'Info-history #[nil " \306r\307\310!q\210\311\312 \210eb\210\313c\210\314c\210\315c\210\316\317\"\211\203o@@@A@\211\f\232\203D \232\203D`;\203e\320\321\322\323!\206W\324\325\311#\326!\327\330\261\210*A\211\204(+\331\332\333\"\210\n\206zeb+\207" [Info-current-file Info-current-node p curr-node curr-file inhibit-read-only nil get-buffer-create " *info-history*" t erase-buffer "\n\nFile: history, Node: Top, Up: (dir)\n\n" "Recently Visited Nodes\n**********************\n\n" "* Menu:\n\n" delete ("history" "Top") "* " ": (" propertize file-name-directory "" invisible file-name-nondirectory ")" ".\n" Info-find-node history "Top" Info-history-list hl node file] 9 (#$ . 49598) nil]) #@126 Go to a node with table of contents of the current Info file. Table of contents is created from the tree structure of menus. (defalias 'Info-toc #[nil ";\205\205\306!\306 !\307r\310\311!q\210\312\313\f! \314 \210eb\210\315c\210\316c\210\317\f\320\261\210\321\322\323\324 \"8 \325\f$\210*o\204a\326\307!\"\327 \210\330\324eb\210\331\332\307\312#\206Xed}\210\333 \210~\210*eb\210\334\335 \336Q\307\312#\211\203x\n GZ\322Z)\337\330\324\"\210\n\206\203eb+\207" [Info-current-file Info-current-node p curr-node curr-file node-list substring-no-properties nil get-buffer-create " *info-toc*" t Info-build-toc erase-buffer "\n\nFile: toc, Node: Top, Up: (dir)\n\n" "Table of Contents\n*****************\n\n" "*Note Top: (" ")Top.\n" Info-insert-toc 2 assoc "Top" 0 hide Info-mode toc re-search-forward "\n[\f]\n" Info-fontify-node search-forward "*Note " ":" Info-find-node inhibit-read-only Info-fontify-visited-nodes Info-hide-note-references] 5 (#$ . 50388) nil]) #@52 Insert table of contents with references to nodes. (defalias 'Info-insert-toc #[(nodes node-list level curr-file) "\306 \205B\307 @\n\"\211A@\310D\235\204 A@\211\311\261\210\312\f\313\"c\210\314 @\315 \316 @\317\261\210\320\321 8\n\fT $\210 A)\202)\207" [section nodes node-list node level curr-file "Top" assoc nil "\n" make-string 9 "*Note " ": (" ")" ".\n" Info-insert-toc 2] 8 (#$ . 51377)]) #@67 Build table of contents from menus of Info FILE and its subfiles. (defalias 'Info-build-toc #[(file) "\306\307!\310\216rq\210 ;\205\311 !\211;\203\312 !\206\n ;\205& \313\314\211* \2047*\203S \204B\315\316*@\"\210\317 \210\320 \206M*@!\210eb\210\321\322\314\323#\203\321\324\314\323#\203\325\326 !\212\321\327\314\330#)\206qd\331Z\332\314+,-.\333. \"\204\366\334\335-\330#\203\366\336y\210\337 \210.\332\232\203\245\212\334\340\314\330#)\206\247--`-W\203\366\341\342!\203\333\337 \210\331u\210\325\343 !\211/+B+.\332\232\203\327/,D\fB)\202\355.\332\232\203\355\341\344!\203\355\345\336!,\336y\210\337 \210\202\251.\346.\f\"\2110A@)+\237E B-b\210,\202R \203K\212eb\210\321\347\314\330#\203@\212\321\327\314\330#)-\334\350-\330#\203?\345\336!*B*\202+)*\237*\314)\202.*A*\202.\315\351!\210 \237. \207" [#1=#:temp-buffer file default-directory main-file sections nodes generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) Info-find-file file-name-directory (("Top" "Top")) nil message "Searching subfile %s..." erase-buffer info-insert-file-contents search-forward "\n\nFile:" move "Node: " substring-no-properties Info-following-node-name "\n" t 2 "Top" Info-index-node re-search-forward "^\\* Menu:" 1 beginning-of-line "^[ -]*The Detailed Node Listing" looking-at "^\\* +[^:]+:" Info-extract-menu-node-name "^\\([^ \n*=.-][^:\n]*\\)" match-string-no-properties assoc "\n\nIndirect:" "^\\(.*\\): [0-9]+$" "" subfiles menu-items section bound nodename menu-node-name x] 6 (#$ . 51791)]) #@282 Follow cross reference named FOOTNOTENAME to the node it refers to. FOOTNOTENAME may be an abbreviation of the reference name. If FORK is non-nil (interactively with a prefix arg), show the node in a new Info buffer. If FORK is a string, it is the name to use for the new buffer. (defalias 'Info-follow-reference #[(footnotename &optional fork) "\204\306\307!\210\310\211\311\312!P\313\314\315\n #\211\2031\n\316 O\317\n T\310OQ \320\\\202\212\321\322!\204b\323\322!\203D\316\224b\204b\212`\324\\b\210\325\322\310\313#\210\321\n!)\203b`\316\225X\203b\316\224b\210\212\326\n\310\313#\205o\316\224\324\\)\212\325\n\310\313#\205}\316\224\324\\)\211\203\241 \203\241\327`Z!\327 `Z!W\203\235\202\256 \202\256\206\256 \206\256\306\330\"b\210\331\313!+\314\317\f #\211\203\321\f\316 O\315\f\316\225\310OQ T\202\265\332\f\",\207" [footnotename case-fold-search str i target prev-ref error "No reference was specified" nil "\\*note " regexp-quote t string-match " " 0 "[ \n]+" 6 looking-at "\\*note[ \n ]+" looking-back 5 re-search-backward re-search-forward abs "No cross-reference named %s" Info-extract-menu-node-name Info-goto-node next-ref fork] 6 (#$ . 53423) (byte-code "\306\211\307\211\211`\307\211\211\211\212\307\210`\310 \210`eb\210\311\312\307\306#\203\234\313\314!\204G\315\224\fX\203G\f`X\203G\306 \204Z \315\224X\203Z`X\203Z\306\315\316\317 \n#\211\203x \315\nO\320 \315\225\307OQ\nT\202\\\306=\203\202  \306=\203\212 \321 \306#\204& B\202&)\204\245 G\314=\203\262@\203\341\322\203\305\323\324Q\202\306\325\307\306$\211\326\232\203\330\202\332)D\202\344\327\330!.\n\207" [eol bol i str start-point alt-default t nil beginning-of-line re-search-forward "\\*note[ \n ]+\\([^:]*\\):" match-string-no-properties 1 0 string-match "[ \n ]+" " " assoc-string completing-read "Follow reference named (default " "): " "Follow reference named: " "" error "No cross-references in this node" default completions case-fold-search completion-ignore-case input current-prefix-arg] 11)]) #@184 Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'. (defconst Info-menu-entry-name-re "\\(?:[^:]\\|:[^:,.;() \n]\\)*" (#$ . 55543)) (defalias 'Info-extract-menu-node-name #[(&optional multi-line index-node) "\304\305w\210\306\307\310 \203\311\202\n\203\312\202\313!\314 \203#\315\202$\316\260!\205T \203C\317\224\203;\320\321\317!!\202B\322\323\224\324\224S\"\325\326\327\330\331!\206S\322\323\224\324\224S\"#\207" [Info-menu-entry-name-re index-node multi-line Info-point-loc " \n" nil looking-at ":\\(:\\|" Info-following-node-name-re "^, \n" "^., " "^., \n" "\\)" "\\.\\(?:[ \n]+(line +\\([0-9]+\\))\\)?" "" 5 string-to-number match-string buffer-substring-no-properties 0 1 replace-regexp-in-string "[ \n]+" " " match-string-no-properties 2] 6]) (byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\304\"\210\306B\302\306!\204-\303\306\304\"\210\304\207" [current-load-list Info-complete-next-re default-boundp set-default nil Info-complete-nodes Info-complete-cache] 3) #@63 Regexp to match the text after a : until the terminating `.'. (defconst Info-node-spec-re (byte-code "\300\301!\302P\207" [Info-following-node-name-re "^.,:" "[,:.]"] 2) (#$ . 56709)) (defalias 'Info-complete-menu-item #[(string predicate action) "\212q\210\306\211 \307eb\210\310\311!\210!\312>\204(\313\314\315\"!\316Q\307\306#\202\376\317\315\"!#\320$\260\307%&'(@)\232\203\206A@ \232\203\206\3218*\232\203\206\3228%\232\203\206\3238+\324\"\325+G+\325\307\306&)\306=\203\206\3268'\202\345\313(\307\306#\203\232\327\330!'B'\202\206*\203\260\331\332\306\"\211\203\260\333*\n\"\204\301&\203\310&A\211&@\211\203\310\334\n!\210\202\206 \232\204\322\334 !\210\335\336!\210) *\"'%\257!\203\365\337\"',#\202\375\340\"',#+-\207" [Info-complete-menu-buffer Info-current-node nextnode orignode case-fold-search completion-ignore-case t nil search-forward "\n* Menu:" (nil t) re-search-forward "\n\\* +" regexp-quote ":" "\n\\* +\\(" "\\):" 2 5 3 compare-strings 0 4 match-string-no-properties 1 Info-extract-pointer "next" string-match Info-goto-node make-local-variable Info-complete-cache all-completions try-completion action string Info-menu-entry-name-re Info-node-spec-re Info-complete-nodes complete-nodes completions pattern Info-current-file Info-complete-next-re prev predicate] 9]) #@374 Go to the node pointed to by the menu item named (or abbreviated) MENU-ITEM. The menu item should one of those listed in the current node's menu. Completion is allowed, and the default menu item is the one point is on. If FORK is non-nil (interactively with a prefix arg), show the node in a new Info buffer. If FORK is a string, it is the name to use for the new buffer. (defalias 'Info-menu #[(menu-item &optional fork) "\302\303! \205 \"\207" [menu-item fork Info-goto-node Info-extract-menu-item] 3 (#$ . 58082) (let ((completions 'nil) (default nil) (p (point)) beg (last nil) (case-fold-search t)) (save-excursion (goto-char (point-min)) (if (not (search-forward "\n* menu:" nil t)) (error "No menu in this node")) (setq beg (point)) (and (< (point) p) (save-excursion (goto-char p) (end-of-line) (if (re-search-backward (concat "\n\\* +\\(" Info-menu-entry-name-re "\\):") beg t) (setq default (match-string-no-properties 1)))))) (let ((item nil)) (while (null item) (setq item (let ((completion-ignore-case t) (Info-complete-menu-buffer (current-buffer))) (completing-read (if default (format "Menu item (default %s): " default) "Menu item: ") 'Info-complete-menu-item nil t))) (if (string= item "") (if default (setq item default) (setq item nil)))) (list item current-prefix-arg)))]) (defalias 'Info-extract-menu-item #[(menu-item) "\302!\303\212\303eb\210\304\305\306\303#\204\307\310!\210\311\312\313Q\306\303#\2041\311\312P\306\303#\2041\307\314!\210\315 \210\316u\210\317\306\320 \"+\207" [menu-item case-fold-search regexp-quote t search-forward "\n* menu:" nil error "No menu in this node" re-search-forward "\n\\* +" ":" "No such item in menu" beginning-of-line 2 Info-extract-menu-node-name Info-index-node] 4]) (defalias 'Info-extract-menu-counting #[(count) "\302\212\302eb\210\303\304\305\302#\204\306\307!\210 \203(\303\310\305\302 $\2040\306\311!\210\2020\303\310\305\302#\204(\312\305\313 \"+\207" [case-fold-search count t search-forward "\n* menu:" nil error "No menu in this node" "\n* " "Too few items in menu" Info-extract-menu-node-name Info-index-node] 5]) #@91 Go to the node of the Nth menu item. N is the digit argument used to invoke this command. (defalias 'Info-nth-menu-item #[nil "\300\301\302 \302 GSH\303Z!!\207" [Info-goto-node Info-extract-menu-counting this-command-keys 48] 4 (#$ . 60198) nil]) #@34 Go to the Top node of this file. (defalias 'Info-top-node #[nil "\300\301!\207" [Info-goto-node "Top"] 2 (#$ . 60451) nil]) #@36 Go to the final node in this file. (defalias 'Info-final-node #[nil "\302\303!\210\304\305\302\306\304!!\210\307\305\211\"\204\310 ?\205.\212\311\312\304\305#)\205.\302\306\304!!\210\202*\207" [case-fold-search Info-history Info-goto-node "Top" nil t Info-extract-menu-counting Info-forward-node Info-index-node search-forward "\n* Menu:"] 4 (#$ . 60581) nil]) #@69 Go forward one node, considering all nodes as forming one sequence. (defalias 'Info-forward-node #[(&optional not-down no-error) "eb\210\306y\210\307 \204%\212\310\311\312\307#)\203%\313 \204%\314\315\306!!\210\307\202k\212\316\317\312\307#)\2036\320 \210\307\202k\212\316\321\312\307#)\203_\322\323!\227\324\230\204_\n\325 \210\312\211\326\216\327\307\"\211,\202k\203h\312\202k\330\331!)\207" [case-fold-search not-down Info-current-node old-node success Info-history 1 t search-forward "\n* menu:" nil Info-index-node Info-goto-node Info-extract-menu-counting search-backward "next:" Info-next "up:" Info-extract-pointer "up" "top" Info-up ((byte-code "\204\302 !\210\302\207" [success old-node Info-goto-node] 2)) Info-forward-node error "No pointer forward from this node" no-error] 4 (#$ . 60956) nil]) #@70 Go backward one node, considering all nodes as forming one sequence. (defalias 'Info-backward-node #[nil "\304\305\306\"\304\307\306\"\306 \203\310\311 \"\203\312\313!\202[ \2032\n\203-\n\227 \227\230\2032\314 \202[\n\203X\315 \210\316\317 ?\205T\212\320\321\316\306#)\205T\322\323\316!!\210\202;)\202[\312\324!+\207" [case-fold-search upnode prevnode Info-history Info-extract-pointer "prev[ious]*" t "up" string-match "(" error "First node in file" Info-up Info-prev nil Info-index-node search-forward "\n* Menu:" Info-goto-node Info-extract-menu-counting "No pointer backward from this node"] 4 (#$ . 61793) nil]) #@43 Exit Info by selecting some other buffer. (defalias 'Info-exit #[nil "\203\301 \207\302 \207" [Info-standalone save-buffers-kill-emacs quit-window] 1 (#$ . 62434) nil]) #@39 Go to the node of the next menu item. (defalias 'Info-next-menu-item #[nil "\302\212\303y\210\304\305\306\302#\210\304\307\306\302#\205\310 )\211\203\"\311 !\202%\312\313!*\207" [case-fold-search node t -1 search-forward "\n* menu:" nil "\n* " Info-extract-menu-node-name Info-goto-node error "No more items in menu"] 5 (#$ . 62612) nil]) #@43 Go to the node of the previous menu item. (defalias 'Info-last-menu-item #[nil "\212\302y\210\303\212\304\305\306\303#\205`)\211\203\304\307 \303#\204\"\310\311!\210*\312\212\313\225b\210\314 )!)\207" [case-fold-search beg 1 t search-backward "\n* menu:" nil "\n* " error "No previous items in menu" Info-goto-node 0 Info-extract-menu-node-name] 5 (#$ . 62963) nil]) (defalias 'Info-no-error '(macro . #[(&rest body) "\301\302\303\304\305\"B\306F\207" [body condition-case nil progn append (t) (error nil)] 6])) #@60 Go to the next subnode or the next node, or go up a level. (defalias 'Info-next-preorder #[nil "\300\301\302\217\206\300\303\304\217\206\300\305\306\217\203db\210\307 \207\310\311!\207" [nil (byte-code "\300 \210\301\207" [Info-next-menu-item t] 1) ((error)) (byte-code "\300 \210\301\207" [Info-next t] 1) ((error)) (byte-code "\300\301!\210\301\207" [Info-up t] 2) ((error)) Info-next-preorder error "No more nodes"] 3 (#$ . 63489) nil]) #@59 Go to the last node, popping up a level if there is none. (defalias 'Info-last-preorder #[nil "\301\302\303\217\203\301\304\305\217\204\306\307!\207\301\310\311\217\2036\312\313!\312\314!\232\2046\301\315\316\217\210db\210\301\317\320\217\204+\306\307!\207\301\321\322\217\203Neb\210\323\324\325\301\323#\206Ldb)\207\326\327!\207" [case-fold-search nil (byte-code "\300 \210db\210\301\207" [Info-last-menu-item t] 1) ((error)) (byte-code "\300 \210db\210\301\207" [Info-last-menu-item t] 1) ((error)) recenter -1 (byte-code "\300\301!\210\302\207" [Info-extract-pointer "prev" t] 2) ((error)) Info-extract-pointer "up" "prev" (Info-prev) ((error)) (byte-code "\300 \210db\210\301\207" [Info-last-menu-item t] 1) ((error)) (byte-code "\300\301!\210\301\207" [Info-up t] 2) ((error)) t search-forward "\n* Menu:" error "No previous nodes"] 4 (#$ . 63941) nil]) #@717 Scroll one screenful forward in Info, considering all nodes as one sequence. Once you scroll far enough in a node that its menu appears on the screen but after point, the next scroll moves into its first subnode, unless `Info-scroll-prefer-subnodes' is nil. When you scroll past the end of a node, that goes to the next node if `Info-scroll-prefer-subnodes' is non-nil and to the first subnode otherwise; if this node has no successor, it moves to the parent node's successor, and so on. If `Info-scroll-prefer-subnodes' is non-nil and point is inside the menu of a node, it moves to subnode indicated by the following menu item. (That case won't normally result from this command, but can happen in other ways.) (defalias 'Info-scroll-up #[nil "\303 eW\204\303 dV\203\304\305 `\"\210\306\212eb\210 \203*\307\310\311\306#\203*`\202+d)\211\303 W\204:\312\n!\203O \203C\313 \202Q\311\314\315\217\206Q\313 \202Q\316 *\207" [case-fold-search Info-scroll-prefer-subnodes virtual-end window-start set-window-start selected-window t search-forward "\n* Menu:" nil pos-visible-in-window-p Info-next-preorder (byte-code "\300\301\302!!\210\303\207" [Info-goto-node Info-extract-menu-counting 1 t] 3) ((error)) scroll-up] 5 (#$ . 64817) nil]) #@78 Scroll one screenful forward in Info, using the mouse. See `Info-scroll-up'. (defalias 'Info-mouse-scroll-up #[(e) "\306 \307\310\311 \"r\312\216\n\211\250\203*\313\314 \315\316\317\320\"S!\"!\203*\321\322 !!\206D 9\2035 \323N\206D :\205D @9\205D @\323N)\203d\324\n\211:\203V\320\f8\202\\\306 `\325\326F)\326 8)!\210\327 ,\207" [save-selected-window-alist save-selected-window-window e obj event position selected-window mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) zerop logand lognot lsh 134217728 1 char-valid-p event-basic-type event-symbol-elements select-window (0 . 0) 0 Info-scroll-up] 8 (#$ . 66074) "e"]) #@300 Scroll one screenful back in Info, considering all nodes as one sequence. If point is within the menu of a node, and `Info-scroll-prefer-subnodes' is non-nil, this goes to its last subnode. When you scroll past the beginning of a node, that goes to the previous node or back up to the parent node. (defalias 'Info-scroll-down #[nil "\304 eW\204\304 dV\203\305\306 `\"\210\307`\n\205+\212\310 \210`eb\210\311\312 \307#)\211\2048\313e\314\307#\203=\315 \202?\316 +\207" [case-fold-search current-point Info-scroll-prefer-subnodes virtual-end window-start set-window-start selected-window t beginning-of-line search-forward "\n* Menu:" pos-visible-in-window-p nil Info-last-preorder scroll-down] 5 (#$ . 67041) nil]) #@81 Scroll one screenful backward in Info, using the mouse. See `Info-scroll-down'. (defalias 'Info-mouse-scroll-down #[(e) "\306 \307\310\311 \"r\312\216\n\211\250\203*\313\314 \315\316\317\320\"S!\"!\203*\321\322 !!\206D 9\2035 \323N\206D :\205D @9\205D @\323N)\203d\324\n\211:\203V\320\f8\202\\\306 `\325\326F)\326 8)!\210\327 ,\207" [save-selected-window-alist save-selected-window-window e obj event position selected-window mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) zerop logand lognot lsh 134217728 1 char-valid-p event-basic-type event-symbol-elements select-window (0 . 0) 0 Info-scroll-down] 8 (#$ . 67774) "e"]) #@67 Move cursor to the next cross-reference or menu item in the node. (defalias 'Info-next-reference #[(&optional recur) "\304`\305m\204 \306u\210\307\n\310\305#\204'eb\210\307\n\310\305#\204' b\210\311\312!\210\306\224\206.\313\224b\210\314\315!\203F \203@\311\312!\202N\316\305!\202N\314\317!\205N\320u+\207" [case-fold-search old-pt pat recur "\\*note[ \n ]+\\([^:]+\\):\\|^\\* .*:\\|[hf]t?tp://" t 1 re-search-forward nil error "No cross references in this node" 0 looking-at "\\* Menu:" Info-next-reference "^\\* " 2] 4 (#$ . 68747) nil]) #@71 Move cursor to the previous cross-reference or menu item in the node. (defalias 'Info-prev-reference #[(&optional recur) "\304`\305\306\n\307\305#\204 db\210\306\n\307\305#\204 b\210\310\311!\210\312\224\206'\313\224b\210\314\315!\203? \2039\310\311!\202G\316\305!\202G\314\317!\205G\320u+\207" [case-fold-search old-pt pat recur "\\*note[ \n ]+\\([^:]+\\):\\|^\\* .*:\\|[hf]t?tp://" t re-search-backward nil error "No cross references in this node" 1 0 looking-at "\\* Menu:" Info-prev-reference "^\\* " 2] 4 (#$ . 69305) nil]) #@118 Alist of cached index node names of visited Info files. Each element has the form (INFO-FILE INDEX-NODE-NAMES-LIST). (defvar Info-index-nodes nil (#$ . 69853)) #@434 Return a list of names of all index nodes in Info FILE. If FILE is omitted, it defaults to the current Info file. First look in a list of cached index node names. Then scan Info file and its subfiles for nodes with the index cookie. Then try to find index nodes starting from the first node in the top level menu whose name contains the word "Index", plus any immediately following nodes whose names also contain the word "Index". (defalias 'Info-index-nodes #[(&optional file) "\204 \306\n\"\204\234\307\235\203\310B\nB\211\204\234;\203\234 \203h;\2035\311\312!\211!\2066\f\310\211\310\310\211\310\211\313\314\217\210\203a\237B\nB.\202\223\315\310\211\211\211\211\310\316\317\217\210\203\217\237B\nB.\204\234\310B\nB\306\n\"A\207" [file Info-current-file Info-index-nodes Info-file-supports-index-cookies default-directory Info-history assoc ("dir" apropos history toc) nil file-name-directory Info-find-file (byte-code "\305\306!\307\216rq\210 \204\n\203t\310 \210\311 \206\n@!\210eb\210\312\313\314\315#\203;\212\316\317!\210\312\320!\210\321 B)\202! \203n\212eb\210\312\322\314\323#\203e\212\312\324\314\323#)\325\326\f\323#\203d\327\330!\nB\202S)\n\237\314)\202\n\nA\202\n+\314\207" [#1=#:temp-buffer main-file subfiles nodes bound generate-new-buffer #2=" *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) erase-buffer info-insert-file-contents search-forward "[index]" nil move re-search-backward "^" "Node: " Info-following-node-name "\n\nIndirect:" t "\n" re-search-forward "^\\(.*\\): [0-9]+$" match-string-no-properties 1] 4) ((error)) t (byte-code "\304\305!\306\216rq\210\307 \210\310 \311\"\210\312\313\314\315#\203J\316\317\314\315#\203J\320\224b\210\321 C\322\n@!\210\323\324\315\"\211\203J\325\326 \"\203J \nB\322 !\210\202/+\314\207" [#3=#:temp-buffer file nodes node generate-new-buffer #2# ((byte-code "\301!\203\n\302!\210\301\207" [#3# buffer-name kill-buffer] 2)) Info-mode Info-find-node "Top" search-forward "\n* menu:" nil t re-search-forward "\n\\* \\(.*\\\\)" 1 Info-extract-menu-node-name Info-goto-node Info-extract-pointer "next" string-match "\\"] 4) ((error)) Info-history-list Info-fontify-maximum-menu-size main-file subfiles nodes node case-fold-search] 7 (#$ . 70020)]) #@138 Return non-nil value if NODE is an index node. If NODE is nil, check the current Info node. If FILE is nil, check the current Info file. (defalias 'Info-index-node #[(&optional node file) "\203\n \232\203\306\n\206 \f\"\203\206 \304\n!\235\207 \203D\212\212\307\310\311\312#)\206/e\313\\b\210\314\315\212\314\310\311\312#)\206@d\312#)\207\316 \317\216\320\321\206U \206U\322\"*\207" [node Info-current-node file Info-current-file Info-index-nodes Info-file-supports-index-cookies assoc search-backward "\n" nil t 2 search-forward "[index]" match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "\\" "" save-match-data-internal] 6 (#$ . 72413)]) #@29 Go to the first index node. (defalias 'Info-goto-index #[nil "\301 @\211\204\f\302\303!\210\304!)\207" [node Info-index-nodes error "No index" Info-goto-node] 3 (#$ . 73154)]) #@342 Look up a string TOPIC in the index for this manual and go to that entry. If there are no exact matches to the specified topic, this chooses the first match which is a case-insensitive substring of a topic. Use the \\[Info-index-next] command to see the other matches. Give an empty topic name to go to the Index node itself. (defalias 'Info-index #[(topic) "\306\232\203\n\307\310!\210 ;\203# G\311V\203# \311H\312U\203# \313\314O\n\315\316\317 !\"\314\320 \321 !\"#\322 \210 \323\232\206\300\314\211\211\211$%&'eb\210\324\"\314\321#\203q\325\313!\325\326!\n\327\330\331\332!P!F'B'\202Q A\211 @\211!\203\206\333!!\210\202N'\204\225\333#!\210\307\334 \"\210\335 '\"\211$\203\262$&B&\336$'\"'\202\225 &'\237\244(\337\311!,.\207" [Info-current-file topic Info-current-node Info-history-list case-fold-search ohist-list "dir" error "The Info directory node has no index; use m to select a manual" 0 58 1 nil format "\n\\* +\\([^\n]*%s[^\n]*\\):[ ]+\\([^\n]*\\)\\.\\(?:[ \n]*(line +\\([0-9]+\\))\\)?" regexp-quote Info-index-nodes t Info-goto-index "" re-search-forward match-string-no-properties 2 string-to-number "0" match-string 3 Info-goto-node "No `%s' in index" assoc delq Info-index-next nodes node pattern orignode found Info-history exact matches Info-index-alternatives] 8 (#$ . 73340) (list (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") (error "The Info directory node has no index; use m to select a manual")) (unwind-protect (with-current-buffer Info-complete-menu-buffer (Info-goto-index) (completing-read "Index topic: " 'Info-complete-menu-item)) (kill-buffer Info-complete-menu-buffer))))]) #@89 Go to the next matching index item from the last \\[Info-index] command. (defalias 'Info-index-next #[(num) "\204\304\305!\210 \306W\203 G\\\211\202 \306V\203+A@C\244 S\211\202\307@A@!\210\310@8\306V\203E\310@8Sy\210\202Q\310y\210@@\311\n!\210)\312\313@@\314@8A\203n\315\316G\317\320\321 \322#!#\202o\323$\207" [Info-index-alternatives num name overriding-local-map error "No previous `i' command" 0 Info-goto-node 3 Info-find-index-name message "Found `%s' in %s. %s" 2 format "(%s total; use `%s' for next)" key-description where-is-internal Info-index-next t "(Only match)"] 13 (#$ . 75147) "p"]) #@72 Move point to the place within the current node where NAME is defined. (defalias 'Info-find-index-name #[(name) "\302\303\304\305\306 !\"\307\302#\204U\303\304\310\306 !\"\307\302#\204U\311\304\312 \"\307\302#\204U\313\314 \"\203=\311\304\312 \315\316\224O\"\307\302#\204U\311 \307\302#\204U\313\317 \"\203\\\320\321\316 \"!\203\\\322 \210\302\202^eb)\207" [case-fold-search name t re-search-forward format "[a-zA-Z]+: %s\\( \\|$\\)" regexp-quote nil "[a-zA-Z]+: [a-zA-Z0-9_ *&]+ %s\\( \\|$\\)" search-forward "`%s'" string-match "\\`.*\\( (.*)\\)\\'" 0 1 "\\`\\(.*\\) <[0-9]+>\\'" Info-find-index-name match-string beginning-of-line] 6 (#$ . 75798)]) #@105 Grovel indices of all known Info files on your system for STRING. Build a menu of the possible matches. (defalias 'info-apropos #[(string) "\306\230?\205\370\307\310\311!\" \n \f\312\211\211\211,-./012\3123\313 \210/\2047\f. /\314\315!\210eb\210\316\317\312\320#\210\316\321\312\320#\203V\322\323\324\325!\"\210\202D\237\3124\2115\203{5@4\314\3264\"\210\327\330\331\217\2105A\2115\204b+\332./\"\21010\314\333!\210-\204\230\314\334!\202\366r\335\336!q\210\337 \210\340c\210\341\342\261\210-\237\3126\2117\203\3547@6\307\3436A@\3446@\345R6@\34668\34768\203\337\350\34768\351Q\202\340\306%c\2107A\2117\204\266+\332\352\353\"\210\312\2118. \207" [string Info-history Info-history-list Info-current-node Info-current-file nodes "" format "\n\\* +\\([^\n]*%s[^\n]*\\):[ ]+\\([^\n]+\\)\\.\\(?:[ \n]*(line +\\([0-9]+\\))\\)?" regexp-quote nil Info-directory message "Searching indices..." re-search-forward "\\* Menu: *\n" t "\\*.*: *(\\([^)]+\\))" add-to-list manuals match-string 1 "Searching %s" err (byte-code "\305\306!!\211\203?\212\307 @\"\210eb\210\310\n\311\312#\203-\313\314!\313\315!\313\316!F B\202 A\211@\211\203>\317\f!\210\202)\311\207" [manual nodes pattern matches node Info-index-nodes Info-find-file Info-find-node re-search-forward nil t match-string-no-properties 1 2 3 Info-goto-node] 6) ((error (byte-code "\301\302\242\303=\203A@\202\"\210\304\305\306\"\207" [err message "%s" error sit-for 1 t] 4))) Info-find-node "Searching indices...done" "No matches found" get-buffer-create " *info-apropos*" erase-buffer "\n\nFile: apropos, Node: Index, Up: (dir)\n" "* Menu: \nNodes whose indices contain `" "':\n\n" "* %-38s (%s)%s.%s\n" " [" "]:" 2 3 " (line " ")" apropos "Index" node matches current-file current-node ohist-list ohist pattern Info-fontify-maximum-menu-size manual #1=#:--cl-dolist-temp-- entry #2=#:--cl-dolist-temp-- Info-complete-cache] 9 (#$ . 76467) "sIndex apropos: "]) #@36 Make command be undefined in Info. (defalias 'Info-undefined #[nil "\300 \207" [ding] 1 (#$ . 78460) nil]) #@26 Enter the Info tutorial. (defalias 'Info-help #[nil "\300 \210\301\302\303 \304W\203\305\202\306\"\207" [delete-other-windows Info-find-node "info" window-height 23 "Help-Small-Screen" "Help"] 4 (#$ . 78573) nil]) #@47 Display a brief summary of all Info commands. (defalias 'Info-summary #[nil "\300\213\207" [((byte-code "\304\305!\210\306\307 \210\310\311!c\210\312 \210eb\210\306\211\313d!?\314 \203&\315\202'\316!\210\317 \211\320=\2048\nC\202B \203B\321 \210\202*\322\305!\207" [buffer-read-only flag ch unread-command-events switch-to-buffer "*Help*" nil erase-buffer documentation Info-mode help-mode pos-visible-in-window-p message "Type Space to see more" "Type Space to return to Info" read-event 32 scroll-up bury-buffer] 2))] 1 (#$ . 78797) nil]) #@497 Return the token around POS. POS must be somewhere inside the token START is a regular expression which will match the beginning of the tokens delimited string ALL is a regular expression with a single parenthesized subpattern which is the token to be returned. E.g. '{(.*)}' would return any string enclosed in braces around POS. ERRORSTRING optional fourth argument, controls action on no match nil: return nil t: beep a string: signal an error, using that string. (defalias 'Info-get-token #[(pos start all &optional errorstring) "\306\212 b\210o\204` \nGZV\203\307\n!\204\310u\210\202\307\n!\2042 b\210\311\ne \312Z]\313#\210\314\315\fd \312\\^\313#\203P\316\224 X\205K\316\225 V\211\2034 \203h\316\224 X\203h\316\225 V\203h\317\320!\202\202 \204p\314\202\202 \306=\203}\321 \210\314\202\202\322\323 #+\207" [case-fold-search pos start found all errorstring t looking-at -1 re-search-backward 200 yes nil re-search-forward 0 match-string-no-properties 1 beep error "No %s around position %d"] 5 (#$ . 79358)]) #@244 \Follow a node reference near point. Like \[Info-menu], \[Info-follow-reference], \[Info-next], \[Info-prev] or \[Info-up] command, depending on where you click. At end of the node's text, moves to the next node, or up if none. (defalias 'Info-mouse-follow-nearest-node #[(click) "\301!\210\302 ?\205\212\303y\210m)\205\304 \207" [click mouse-set-point Info-try-follow-nearest-node 1 Info-next-preorder] 2 (#$ . 80432) "e"]) #@317 Follow a node reference near point. If point is on a reference, follow that reference. Otherwise, if point is in a menu item description, follow that menu item. If FORK is non-nil (interactively with a prefix arg), show the node in a new Info buffer. If FORK is a string, it is the name to use for the new buffer. (defalias 'Info-follow-nearest-node #[(&optional fork) "\301!\206<\212\302\303\304\305#)\2039\212\306 \210o\204%\307\310!\204%\306\311!\210\202\307\312!\2055\313\314\315\316!!\"\210\305)\206<\317\320!\207" [fork Info-try-follow-nearest-node search-backward "\n* menu:" nil t beginning-of-line looking-at "[^ ]\\|[ ]*$" 0 "\\* +\\([^ \n]*\\):" Info-goto-node Info-extract-menu-item match-string-no-properties 1 error "Point neither on reference nor in menu item description"] 4 (#$ . 80884) "P"]) #@122 Follow a node reference near point. Return non-nil if successful. If FORK is non-nil, it i spassed to `Info-goto-node'. (defalias 'Info-try-follow-nearest-node #[(&optional fork) "\302\303`\304\305#\203\306\307\310 !\210\202\231\303`\311\312#\211\203&\313 \"\210\202\231\303`\314\315#\211\2038\316 \"\210\202\231\303`\314\317#\203T\320 \210\321u\210\322\302\323 \"\316 \"\210\202\231\303`\324\325#\211\203f\316 \"\210\202\231\303`\326\327#\211\203x\316 \"\210\202\231\303`\330\331#\211\203\212\316\332 \"\210\202\231\303`\333\334#\211\203\231\316 \"\210)\207" [node fork nil Info-get-token "[hf]t?tp://" "[hf]t?tp://\\([^ \n\"`({<>})']+\\)" t browse-url browse-url-url-at-point "\\*note[ \n ]+" "\\*note[ \n ]+\\([^:]*\\):\\(:\\|[ \n ]*(\\)?" Info-follow-reference "\\* +" "\\* +\\([^:]*\\)::" Info-goto-node "\\* +\\(.*\\): " beginning-of-line 2 Info-extract-menu-node-name Info-index-node "Up: " "Up: \\([^,\n ]*\\)" "Next: " "Next: \\([^,\n ]*\\)" "File: " "File: \\([^,\n ]*\\)" "Top" "Prev: " "Prev: \\([^,\n ]*\\)"] 4 (#$ . 81715)]) #@34 Keymap containing Info commands. (defvar Info-mode-map nil (#$ . 82794)) (byte-code "\204o\301 \302!\210\303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\315#\210\303\317\315#\210\303\320\321#\210\303\322\321#\210\303\323\321#\210\303\324\321#\210\303\325\321#\210\303\326\321#\210\303\327\321#\210\303\330\321#\210\303\331\321#\210\303\332\333#\210\303\334\335#\210\303\336\337#\210\303\340\341#\210\303\342\343#\210\303\344\345#\210\303\346\305#\210\303\347\350#\210\303\351\352#\210\303\353\354#\210\303\355\356#\210\303\357\360#\210\303\361\362#\210\303\363\364#\210\303\365\366#\210\303\367\370#\210\303\371\372#\210\303\373\374#\210\303\375\376#\210\303\377\201@#\210\303\201A\201B#\210\303\201C\201D#\210\303\201E\201B#\210\303\201F\201G#\210\303\201H\343#\210\303\201I\201J#\210\303\201K\201L#\210\303\201M\201N#\210\303\201O\201N#\210\303\201P\201L#\210\303\201Q\201R#\210\303\201S\201T#\210\303\201U\201V#\210\303\201W\201X#\210\301\207" [Info-mode-map make-keymap suppress-keymap define-key "." beginning-of-buffer " " Info-scroll-up " " Info-follow-nearest-node " " Info-next-reference " " Info-prev-reference [(shift tab)] [backtab] "1" Info-nth-menu-item "2" "3" "4" "5" "6" "7" "8" "9" "0" undefined "?" Info-summary "]" Info-forward-node "[" Info-backward-node "<" Info-top-node ">" Info-final-node "b" "d" Info-directory "e" Info-edit "f" Info-follow-reference "g" Info-goto-node "h" Info-help "i" Info-index "l" Info-history-back "L" Info-history "m" Info-menu "n" Info-next "p" Info-prev "q" Info-exit "r" Info-history-forward "s" Info-search "S" Info-search-case-sensitively "\363" "\356" clone-buffer "t" "T" Info-toc "u" Info-up "w" Info-copy-current-node-name "c" "^" "," Info-index-next "" Info-scroll-down [mouse-2] Info-mouse-follow-nearest-node [follow-link] mouse-face] 4) #@42 Non-nil if ITEM is present in this node. (defalias 'Info-check-pointer #[(item) "\300\301\302\217\207" [nil (Info-extract-pointer item) ((error))] 3 (#$ . 84729)]) #@22 Menu for Info files. (defvar Info-mode-menu nil (#$ . 84899)) (byte-code "\303\304\305\306$\210\307 B\310\307!\204e\311\307\312 \205c\313 \314\315\316\n$\210\314\317\320\n$\210\314\321\322\n$\210\314\323\324\n$\210\314\325\326\n$\210\314\327\330\n$\210\314\331\332\n$\210\314\333\334\n$\210\314\335\336\n$\210\314\337\340\n$\210\n)\"\210\341 B\310\341!\204t\311\341\342\"\210\342\207" [Info-mode-map current-load-list map easy-menu-do-define Info-mode-menu "Menu for Info files." ("Info" ["Up" Info-up :active (Info-check-pointer "up") :help "Go up in the Info tree"] ["Next" Info-next :active (Info-check-pointer "next") :help "Go to the next node"] ["Previous" Info-prev :active (Info-check-pointer "prev[ious]*") :help "Go to the previous node"] ["Backward" Info-backward-node :help "Go backward one node, considering all as a sequence"] ["Forward" Info-forward-node :help "Go forward one node, considering all as a sequence"] ["Beginning" beginning-of-buffer :help "Go to beginning of this node"] ["Top" Info-top-node :help "Go to top node of file"] ["Final Node" Info-final-node :help "Go to final node in this file"] ("Menu Item" ["You should never see this" report-emacs-bug t]) ("Reference" ["You should never see this" report-emacs-bug t]) ["Search..." Info-search :help "Search for regular expression in this Info file"] ["Search Next" Info-search-next :help "Search for another occurrence of regular expression"] ["Go to Node..." Info-goto-node :help "Go to a named node"] ["Back in history" Info-history-back :active Info-history :help "Go back in history to the last node you were at"] ["Forward in history" Info-history-forward :active Info-history-forward :help "Go forward in history"] ["History" Info-history :active Info-history-list :help "Go to menu of visited nodes"] ["Table of Contents" Info-toc :help "Go to table of contents"] ("Index" ["Lookup a String..." Info-index :help "Look for a string in the index items"] ["Next Matching Item" Info-index-next :active Info-index-alternatives :help "Look for another occurrence of previous item"] ["Lookup a string in all indices..." info-apropos :help "Look for a string in the indices of all manuals"]) ["Copy Node Name" Info-copy-current-node-name :help "Copy the name of the current node into the kill ring"] ["Clone Info buffer" clone-buffer :help "Create a twin copy of the current Info buffer."] ["Exit" Info-exit :help "Stop reading Info"]) info-tool-bar-map default-boundp set-default display-graphic-p make-sparse-keymap tool-bar-local-item-from-menu Info-history-back "left-arrow" Info-history-forward "right-arrow" Info-prev "prev-node" Info-next "next-node" Info-up "up-node" Info-top-node "home" Info-goto-node "jump-to" Info-index "index" Info-search "search" Info-exit "exit" Info-menu-last-node nil] 7) #@44 Update the Info menu for the current node. (defalias 'Info-menu-update #[nil "\300\301\302\217\207" [nil (byte-code "\306=?\206\f \nD \232?\205p\307\310\311\217\237\307\211&'\312( \203N(\313W\203N @' A(T(\314'\315'D\316\317\320(\"$&B&\202! \203X\321&B&&\204c\322\307\323E&\324\325\326&\237#\210-\307\211\211\211\211\312\327)('&*+\212eb\210\330\331\307\327#\203\301\332\333!+\312*\334\335+*#\211*\203\271+\312*O\336+\312\225\307OQ+*T*\202\224+ B\202\204) \203\355(\313W\203\355 @' A(T(\337\314'\340'D\341BB\"&B&\202\302 \203\367\342&B&&\204\343\307\323E&\324\344\345&\237#\210. \nD\211\207" [major-mode Info-current-file Info-current-node Info-menu-last-node Info-complete-menu-buffer items Info-mode nil (Info-complete-menu-item "" nil t) ((error)) 0 9 vector Info-menu :keys format "%d" ["Other..." Info-menu t] ["No menu" nil nil] :active easy-menu-change ("Info") "Menu Item" t re-search-forward "\\*note[ \n ]+\\([^:]*\\):" match-string 1 string-match "[ \n ]+" " " apply Info-follow-reference (t) ["Other..." Info-follow-reference t] ["No references" nil nil] ("Info") "Reference" entries current number case-fold-search i str] 8) ((error (ding)))] 3 (#$ . 87709)]) #@202 Put the name of the current Info node into the kill ring. The name of the Info file is prepended to the node name in parentheses. With a zero prefix arg, put the name inside a function call to `info'. (defalias 'Info-copy-current-node-name #[(&optional arg) "\204\304\305!\210 ;\205\306\307 !\310R\311\312 !!\203\"\313\n\314Q ;\204-\315\316 #\317\n!\210\320\321\n\")\207" [Info-current-node Info-current-file node arg error "No current Info node" "(" file-name-nondirectory ")" zerop prefix-numeric-value "(info \"" "\")" format "(Info-find-node '%S '%S)" kill-new message "%s"] 4 (#$ . 88962) "P"]) (byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put Info-mode mode-class special no-clone-indirect t] 4) #@3531 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. \\[Info-help] Invoke the Info tutorial. \[Info-exit] Quit Info: reselect previously selected buffer. Selecting other nodes: \[Info-mouse-follow-nearest-node] Follow a node reference you click on. This works with menu items, cross references, and the "next", "previous" and "up", depending on where you click. \[Info-follow-nearest-node] Follow a node reference near point, like \[Info-mouse-follow-nearest-node]. \[Info-next] Move to the "next" node of this node. \[Info-prev] Move to the "previous" node of this node. \[Info-up] Move "up" from this node. \[Info-menu] Pick menu item specified by name (or abbreviation). Picking a menu item causes another node to be selected. \[Info-directory] Go to the Info directory node. \[Info-top-node] Go to the Top node of this file. \[Info-final-node] Go to the final node in this file. \[Info-backward-node] Go backward one node, considering all nodes as forming one sequence. \[Info-forward-node] Go forward one node, considering all nodes as forming one sequence. \[Info-next-reference] Move cursor to next cross-reference or menu item. \[Info-prev-reference] Move cursor to previous cross-reference or menu item. \[Info-follow-reference] Follow a cross reference. Reads name of reference. \[Info-history-back] Move back in history to the last node you were at. \[Info-history-forward] Move forward in history to the node you returned from after using \[Info-history-back]. \[Info-history] Go to menu of visited nodes. \[Info-toc] Go to table of contents of the current Info file. Moving within a node: \[Info-scroll-up] Normally, scroll forward a full screen. Once you scroll far enough in a node that its menu appears on the screen but after point, the next scroll moves into its first subnode. When after all menu items (or if there is no menu), move up to the parent node. \[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is already visible, try to go to the previous menu entry, or up if there is none. \[beginning-of-buffer] Go to beginning of node. Advanced commands: \[Info-search] Search through this Info file for specified regexp, and select the node in which the next occurrence is found. \[Info-search-case-sensitively] Search through this Info file for specified regexp case-sensitively. \[Info-search-next] Search for another occurrence of regexp from a previous \\[Info-search] command. \[Info-index] Search for a topic in this manual's Index and go to index entry. \[Info-index-next] (comma) Move to the next match from a previous \\[Info-index] command. \[info-apropos] Look for a string in the indices of all manuals. \[Info-goto-node] Move to node specified by name. You may include a filename as well, as (FILENAME)NODENAME. 1 .. 9 Pick first ... ninth item in node's menu. Every third `*' is highlighted to help pick the right number. \[Info-copy-current-node-name] Put name of current Info node in the kill ring. \[clone-buffer] Select a new cloned Info buffer in another window. \[universal-argument] \[info] Move to new Info file with completion. \[universal-argument] N \[info] Select Info buffer with prefix number in the name *info*. (defalias 'Info-mode #[nil "\306 \210\307\310\311\312 !\210\313\314\315\316\317$\210\320\f!\210 3\317\21145\321\322!\210\321\323!\210\321\324!\210\321\325!\210\326 \321\327!\210\316\321\330!\210\321\331!\210\321\332!\2106\205N\3337\321\334!\2108\321\335!\210\317\321\336!\210\321\337!\210\316\340\313\341\342\316\317$\210\313\343\344\316\317$\210\313\345\346\316\317$\210\313\347\350\316\317$\210\321\351!\210\352)\321\353!\210\354+\321\355!\210\356-\321\357!\2109/\360 \210\361\362!\207" [major-mode mode-name tab-width Info-mode-map text-mode-syntax-table text-mode-abbrev-table kill-all-local-variables Info-mode "Info" 8 use-local-map add-hook activate-menubar-hook Info-menu-update nil t set-syntax-table make-local-variable Info-current-file Info-current-subfile Info-current-node Info-tag-table-marker make-marker Info-tag-table-buffer Info-history Info-history-forward Info-index-alternatives (:eval (get-text-property (point-min) 'header-line)) tool-bar-map line-move-ignore-invisible desktop-save-buffer widen-automatically Info-desktop-buffer-misc-data kill-buffer-hook Info-kill-buffer clone-buffer-hook Info-clone-buffer-hook change-major-mode-hook font-lock-defontify isearch-mode-hook Info-isearch-start isearch-search-fun-function Info-isearch-search isearch-wrap-function Info-isearch-wrap isearch-push-state-function Info-isearch-push-state search-whitespace-regexp Info-set-mode-line run-mode-hooks Info-mode-hook local-abbrev-table case-fold-search buffer-read-only Info-use-header-line header-line-format info-tool-bar-map Info-search-whitespace-regexp] 6 (#$ . 89696)]) (defalias 'Info-kill-buffer #[nil "\302=\205 \205 \303 !\207" [major-mode Info-tag-table-buffer Info-mode kill-buffer] 2]) (defalias 'Info-clone-buffer-hook #[nil "\303!\203rq\210\304 ) \305\n!\2053\306\n!\203/\303!\203/rq\210\307\306\n!!)\2021\310 \211)\207" [Info-tag-table-buffer Info-tag-table-marker m bufferp clone-buffer markerp marker-position copy-marker make-marker] 3]) #@47 Local keymap used within `e' command of Info. (defvar Info-edit-map (byte-code "\302 \303 \"\210\304\305\306#\210)\207" [map text-mode-map make-sparse-keymap set-keymap-parent define-key "" Info-cease-edit] 4) (#$ . 95249)) (put 'Info-edit-mode 'mode-class 'special) #@166 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} (defalias 'Info-edit-mode #[nil "\304!\210\305\306\307\310!\210\311\312 \210\313p!\210\314\315!\207" [Info-edit-map major-mode mode-name buffer-read-only use-local-map Info-edit-mode "Info Edit" kill-local-variable mode-line-buffer-identification nil force-mode-line-update buffer-enable-undo run-mode-hooks Info-edit-mode-hook] 2 (#$ . 95529)]) #@94 Edit the contents of this Info node. Allowed only if variable `Info-enable-edit' is non-nil. (defalias 'Info-edit #[nil "\204\301\302!\210\303 \210\304\305\306\307!\"\207" [Info-enable-edit error "Editing Info nodes is not enabled" Info-edit-mode message "%s" substitute-command-keys "Editing: Type \\\\[Info-cease-edit] to return to info"] 4 (#$ . 96050) nil]) #@55 Finish editing Info node; switch back to Info proper. (defalias 'Info-cease-edit #[nil "\305 \203\306\307!\203\310 \210\311!\210\312\313\314 \210\315\316 \210\317\f!\205,\305 \205,\320\321!\207" [Info-mode-map major-mode mode-name buffer-read-only Info-tag-table-marker buffer-modified-p y-or-n-p "Save the file? " save-buffer use-local-map Info-mode "Info" Info-set-mode-line t force-mode-line-update marker-position message "Tags may have changed. Use Info-tagify if necessary"] 2 (#$ . 96436) nil]) #@259 List of Info files that describe Emacs commands. An element can be a file name, or a list of the form (PREFIX . FILE) where PREFIX is a name prefix and FILE is the file to look in. If the element is just a file name, the file name also serves as the prefix. (defvar Info-file-list-for-emacs '("ediff" "eudc" "forms" "gnus" "info" ("Info" . "info") ("mh" . "mh-e") "sc" "message" ("dired" . "dired-x") "viper" "vip" "idlwave" ("c" . "ccmode") ("c++" . "ccmode") ("objc" . "ccmode") ("java" . "ccmode") ("idl" . "ccmode") ("pike" . "ccmode") ("skeleton" . "autotype") ("auto-insert" . "autotype") ("copyright" . "autotype") ("executable" . "autotype") ("time-stamp" . "autotype") ("quickurl" . "autotype") ("tempo" . "autotype") ("hippie-expand" . "autotype") ("cvs" . "pcl-cvs") ("ada" . "ada-mode") "calc" ("calcAlg" . "calc") ("calcDigit" . "calc") ("calcVar" . "calc") "ebrowse" "eshell" "cl" "reftex" "speedbar" "widget" "woman" ("mail-header" . "emacs-mime") ("mail-content" . "emacs-mime") ("mail-encode" . "emacs-mime") ("mail-decode" . "emacs-mime") ("rfc2045" . "emacs-mime") ("rfc2231" . "emacs-mime") ("rfc2047" . "emacs-mime") ("rfc2045" . "emacs-mime") ("rfc1843" . "emacs-mime") ("ietf-drums" . "emacs-mime") ("quoted-printable" . "emacs-mime") ("binhex" . "emacs-mime") ("uudecode" . "emacs-mime") ("mailcap" . "emacs-mime") ("mm" . "emacs-mime") ("mml" . "emacs-mime")) (#$ . 96956)) #@508 Return a list of locations documenting COMMAND. The `info-file' property of COMMAND says which Info manual to search. If COMMAND has no property, the variable `Info-file-list-for-emacs' defines heuristics for which Info manual to try. The locations are of the format used in `Info-history', i.e. (FILENAME NODENAME BUFFERPOS), where BUFFERPOS is the line number in the first element of the returned list (which is treated specially in `Info-goto-emacs-command-node'), and 0 for the rest elements of a list. (defalias 'Info-find-emacs-command-nodes #[(command) "\306\211\307\310\311!!\312\313R\314\301N\203\301N\202o \203n@\211:\2035@\2027:\203EA\202G\306 \315\310!\316Q!\317!\311!\"\203e\306A-\202 )\320 \321\"\210\306\211\211\322 \"#$%\323\"@!\210eb\210\324\n\306\325#\203\252&\326\327!\330E\fB\331\224\205\246\332\333\331!!\202\212\"A\211\"@\211#\203\277\323#!\210\202\207, \203\327\f\203\327\f@@\f@A@ E\fAB\202\330\f,\207" [command info-file cmd-desc line-number where Info-file-list-for-emacs nil "^\\* +" regexp-quote symbol-name "\\( <[0-9]+>\\)?:\\s *\\(.*\\)\\." "\\(?:[ \n]+(line +\\([0-9]+\\))\\)?" "emacs" "\\`" "\\(\\'\\|-\\)" string-match Info-find-node "Top" Info-index-nodes Info-goto-node re-search-forward t match-string-no-properties 2 0 3 string-to-number match-string file-list elt name file case-fold-search regexp nodes node Info-history-list Info-history Info-current-file] 7 (#$ . 98362)]) #@265 Go to the Info node in the Emacs manual for command COMMAND. The command is found by looking up in Emacs manual's indices or in another manual found via COMMAND's `info-file' property or the variable `Info-file-list-for-emacs'. COMMAND must be a symbol or string. (defalias 'Info-goto-emacs-command-node #[(command) ";\203 \306!\307!\204\310\311\307D\"\210\312!\211\203\201 G\313\213\210 \314=\204.\315\316!\210\317\211\320 @8\321 @@ @A@\"\210\f\250\203Q\f\322V\203Q\fSy\210+\n\323V\205} A\244\324\325\nS\n\320V\203m\326\202n\327\330\331!\n\320V\203{\332\202|\333%)\202\205\334\335\")\207" [command where num-matches major-mode line-number Info-history-list intern commandp signal wrong-type-argument Info-find-emacs-command-nodes ((info)) Info-mode pop-to-buffer "*info*" nil 2 Info-find-node 0 1 message "Found %d other entr%s. Use %s to see %s." "ies" "y" substitute-command-keys "\\[Info-history-back]" "them" "it" error "Couldn't find documentation for %s" Info-history] 8 (#$ . 99859) "CFind documentation for command: "]) #@342 Go to the node in the Emacs manual which describes the command bound to KEY. KEY is a string. Interactively, if the binding is `execute-extended-command', a command is read. The command is found by looking up in Emacs manual's indices or in another manual found via COMMAND's `info-file' property or the variable `Info-file-list-for-emacs'. (defalias 'Info-goto-emacs-key-command-node #[(key) "\302!\211\204\303\304\305!\"\202&t\203# \306=\203#\307\310\311!!\202&\307 !)\207" [key command key-binding message "%s is undefined" key-description execute-extended-command Info-goto-emacs-command-node read-command "Find documentation for command: "] 5 (#$ . 100926) "kFind documentation for key: "]) #@64 Keymap to put on the Next link in the text or the header line. (defvar Info-next-link-keymap (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\307#\210\302\310\304#\210\302\311\312#\210)\207" [keymap make-sparse-keymap define-key [header-line mouse-1] Info-next [header-line mouse-2] [header-line down-mouse-1] ignore [mouse-2] [follow-link] mouse-face] 4) (#$ . 101637)) #@64 Keymap to put on the Prev link in the text or the header line. (defvar Info-prev-link-keymap (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\307#\210\302\310\304#\210\302\311\312#\210)\207" [keymap make-sparse-keymap define-key [header-line mouse-1] Info-prev [header-line mouse-2] [header-line down-mouse-1] ignore [mouse-2] [follow-link] mouse-face] 4) (#$ . 102032)) #@62 Keymap to put on the Up link in the text or the header line. (defvar Info-up-link-keymap (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\307#\210\302\310\304#\210\302\311\312#\210)\207" [keymap make-sparse-keymap define-key [header-line mouse-1] Info-up [header-line mouse-2] [header-line down-mouse-1] ignore [mouse-2] [follow-link] mouse-face] 4) (#$ . 102427)) #@19 Fontify the node. (defalias 'Info-fontify-node #[nil "\212\306\211\307\310e!\211\205 dU?)? \205%@\205%deZ@WA\307\211BCeb\210\f\203\311\312!\203\313\225b\210\311\314!\203\275\313\225b\210\315\224D\315\225E\316\224F\317\316!\211G\227\320\230\203l\321DE\322\323$\210\202\271\321DE\322\324$\210\321FE\325\326$\210\321FE\327\330DE{P$\210\321FE\331G\227\332\230\203\240H\202\267G\227\333\230\203\255I\202\267G\227\334\230\205\267J$\210,\202>K\203eb\210\335 L\336\337L\306#\203\335\316\224b\210`L{\202\363\336\340L\306#\203\357\341`L{P\202\363`L{M\321eeT\342\343\344\345M#$\210o\204\346\307x\210\321`L\347\306$\210*eb\210N\203{\f\203{\336\350\307\306#\203{\351\317\316!!\351\317\315!!U\203{h\211O\352U\203B\353\202YO\354U\203M\355\202YO\356U\203X\357\202Y\360P\321\316\224\316\225\322P$\210*\361\362 !\363>\203\364\315\224S\315\225\365#\210\202eb\210\f\204\207A\203^\336\366\307\306#\203^\313\224`\307QRS\f\203\220T\203[T\367=\204Sb\210\370\371!\210`Sf\372>\203\275\370\373!\210\374 U\375\216\376\377!*\203\320\201n\202\374 U\201o\216\376\201p!*\203\347\201n\202`Sf\201q>\203\367\201r\202\374 U\201s\216\212\201t\201uS\306#+\203\201r\202\201vQRb\210\364\316\224\374 U\201w\216\316\224V\201x\201y\317\316!\"\205>V\313\224\\+\206D\316\225Q\203V\201zQ\201{BB\202Y\201|#\210\364\315\224\315\225\327\201}\225\204t\317\201~!\201n\232\204\210\201\317\201}!\206\204\317\201~!P\202\213\201\200\325\326F#\210\f\204\231A\203\276\315\224B\315\225C\321BC\322 \203\220\374 U\201\201\216\343\201\202\201n\343\201\203\371\201\204\201}!\206\344\317\201~!\201n\232\204\337\201\204\201~!\206\344\201\204\315!##W\201x\201\205W\"\211X\203\201\206\201\204\316W\"!\202YZ[\\\307]X\2030\317\315W\"\201n\232\203'\201\207\202.\201\204\315W\"W\\\203\203W\\@A@\230\203zZX\203b\\\211^@@);\203b\201\206\\\211^@@)!\202j\\\211^@@)\232\203z\\@]\307\211\\\2022\\A\211\\\2045].\203\220\201\210\202\223\201\211$\210\212Bb\210\374 U\201\212\216\336\201\213C\306\307$\203\275\201\214\313\224\313\225\201\215#\210\202\242+\f\203ZT\201\216>\203E\364\201\217\224\201\217\225\201\220#\210\317\201\221!\203\370T\367=\204\370\201\214\201\221\224\201\221\225\201\222#\210\374 U\201\223\216\201\217\224\201\217\225_`\201x\201\224\317\201\217!\"\203D\374 U\201\225\216\212_Tb\210\311\201\226!+\204D\201\214`\313\224\\`\313\225\\\201\227#\210,a\203ZT\203Z\201\230 S\307\223\nB+\202\207\f\203\315a\203\315\n\203\315\306\307\201\231\201\232\307bcdefdb\210\n\307g\211h\203\313h@\211g`W\203\274gb\210\201\233 \210`i\201\234\201\235 !\203\273\201\236i`\307\211$\210ib\210)g\307\211\223\210hA\211h\204\213.eb\210\f\204\331A\203\373\201t\201\237\307\306#\203\373@\203\373d`Z@W\203\373\313\307jk\336\201\240l\201\241m\201\242\260\307\306#\203\372\316\224\203\371\f\203>kT\211k\201\243X\203>\201\234k\201\217\246!\203>\321\313\224\313\224T\322\201\244$\210\f\203o\364\316\224\316\225\327\201\217\225\203g\317\201\217!\201n\232\204g\201\317\201\217!P\202j\201\200\325\326F#\210\f\204xA\203T\321\316\224\316\225\322 \203O\374 U\201\245\216\317\201\217!\201n\232\203\236\201\204\316!\202\245\201\204\201\217!W\201x\201\205W\"\211X\203\304\201\206\201\204\316W\"!\202\306YZ[\\\307]X\203\357\317\315W\"\201n\232\203\346\201\207\202\355\201\204\315W\"W\\\203BW\\@A@\230\2039ZX\203!\\\211^@@);\203!\201\206\\\211^@@)!\202)\\\211^@@)\232\2039\\@]\307\211\\\202\361\\A\211\\\204\364].\203O\201\210\202R\201\211$\210\f\203\371T\201\246>\203\371\201\247 \204\371\321\315\224\201\221\225S\347\306$\210\201~\225\203\227\201~\225f\201\250=\204\227\201\214\201~\224\201~\225\201\251#\210\321\201\221\225S\201\221\225\201z\201\252\316\225\313\224ZY\203\266\201\253\202\271\201\254$\210\311\201\255!j\316y\313U\203\371\311\201\256!\203\371\321\316\224\316\225S\347\306$\210\321\316\225S\316\225\201zj\203\357\201\257\202\362\201\260$\210\306j\202\302*eb\210\f\203/\336\201\261\307\306#\203/\321\313\224\313\225\322\201\262$\210\336\201\263\307\306#\203/\321\316\224\316\225\322\201\262$\210\202eb\210\f\203S\201\247 \203S\336\201\264\307\306#\203S\321\313\224\313\225\347\306$\210\202=eb\210\f\203q\336\201\265\307\306#\203q\364\313\224\313\225\201\266#\210\202Z\201\267\307!.\207" [inhibit-read-only case-fold-search paragraph-markers where not-fontified-p Info-fontify-visited-nodes t nil next-property-change looking-at "^\\(File: [^,: ]+,?[ ]+\\)?" 0 "[ ]*\\([^:, \n]+\\):[ ]+\\([^:, \n]+\\),?" 2 1 match-string "node" put-text-property font-lock-face info-header-node info-header-xref mouse-face highlight help-echo "mouse-2: Go to node " keymap "prev" "next" "up" line-end-position re-search-forward "\\(next\\|up\\|prev[ious]*\\): " "node:[ ]*[^ ]+[ ]*" "No next, prev or up links -- " header-line replace-regexp-in-string "%" #[(s) "\211P\207" [s] 2] " ," invisible "\n\\([^ \n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" string-width 42 info-title-1 61 info-title-2 45 info-title-3 info-title-4 framep selected-frame (x pc w32 mac) add-text-properties (invisible t front-sticky nil rear-nonsticky t) "\\(\\*Note[ \n ]+\\)\\([^:]*\\)\\(:[ ]*\\([^.,:(]*\\)\\(\\(([^)]*)\\)[^.,:]*\\)?[,:]?\n?\\)" hide skip-syntax-backward " " (40 91 123) " (" match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) looking-back "\\})']+" (font-lock-face info-xref mouse-face highlight help-echo "mouse-2: go to this URL") set-buffer-modified-p] 13 (#$ . 102816)]) #@44 Keymap used when in the info display mode. (defvar Info-speedbar-key-map nil (#$ . 110989)) #@59 Install those variables used by speedbar to enhance Info. (defalias 'Info-install-speedbar-variables #[nil "\204\301 \302\303\304#\210\302\305\304#\210\302\306\307#\210\302\310\311#\210\312\313!\207" [Info-speedbar-key-map speedbar-make-specialized-keymap define-key "e" speedbar-edit-line " " "+" speedbar-expand-line "-" speedbar-contract-line speedbar-add-expansion-list ("Info" Info-speedbar-menu-items Info-speedbar-key-map Info-speedbar-hierarchy-buttons)] 4 (#$ . 111087)]) #@49 Additional menu-items to add to speedbar frame. (defvar Info-speedbar-menu-items '(["Browse Node" speedbar-edit-line t] ["Expand Node" speedbar-expand-line (save-excursion (beginning-of-line) (looking-at "[0-9]+: *.\\+. "))] ["Contract Node" speedbar-contract-line (save-excursion (beginning-of-line) (looking-at "[0-9]+: *.-. "))]) (#$ . 111582)) (byte-code "\300\301!\203\f\302 \210\202\303\304\302\"\210\300\207" [featurep speedbar Info-install-speedbar-variables add-hook speedbar-load-hook] 3) #@99 Initialize speedbar to display an Info node browser. This will add a speedbar major display mode. (defalias 'Info-speedbar-browser #[nil "\300\301!\210\302\303!\210\304\305!\207" [require speedbar speedbar-frame-mode 1 speedbar-change-initial-expansion-list "Info"] 2 (#$ . 112090) nil]) #@232 Display an Info directory hierarchy in speedbar. DIRECTORY is the current directory in the attached frame. DEPTH is the current indentation depth. NODE is an optional argument that is used to represent the specific node to expand. (defalias 'Info-speedbar-hierarchy-buttons #[(directory depth &optional node) "?\205\212eb\210\306\307\310!*?\205\\\204\306\311c\210)\312\313\314\315\316\"!\210\317\213\210\320\314\315\316\"!\210 \205[\306 \312\211\203Y @\321\322\323\324\fA\f@\325\fA\326& \210 A\211\204>+\306)\207" [node case-fold-search inhibit-read-only completions completion #1=#:--cl-dolist-temp-- t looking-at "Info Nodes:" "Info Nodes:\n" nil dframe-select-attached-frame dframe-current-frame speedbar-frame speedbar-mode ((byte-code "\302\206\303!\302\207" [node completions Info-speedbar-fetch-file-nodes "(dir)top"] 2)) select-frame speedbar-make-tag-line bracket 43 Info-speedbar-expand-node Info-speedbar-goto-node info-xref depth] 11 (#$ . 112385)]) #@76 When user clicks on TEXT, go to an info NODE. The INDENT level is ignored. (defalias 'Info-speedbar-goto-node #[(text node indent) "\306\307 !\210\310\311!\206\312 \210\310\311!\313\314\"\211\203(\315 !\210\316\317 !!\210\202A\n\2038\320\315\321!!\210)\202A\306\307 !\210\322!\210\323\324\f\"\204O\325\326\f\"\202d\327\330\331\f\"\330\332\f\"\"\210 \333\230\205d\334!*\207" [buff bwin speedbar-power-click pop-up-frames node speedbar-initial-expansion-list-name dframe-select-attached-frame speedbar-current-frame get-buffer "*info*" info get-buffer-window 0 select-window raise-frame window-frame t display-buffer switch-to-buffer string-match "^(\\([^)]+\\))\\([^.]+\\)$" error "Invalid node %s" Info-find-node match-string 1 2 "Info" speedbar-change-initial-expansion-list speedbar-previously-used-expansion-list-name] 6 (#$ . 113377)]) #@190 Expand the node the user clicked on. TEXT is the text of the button we clicked on, a + or - item. TOKEN is data related to this node (NAME . FILE). INDENT is the current indentation depth. (defalias 'Info-speedbar-expand-node #[(text token indent) "\304\305\"\203,\306\307!\210\310\212\311\210\312u\210\313\311\nT #*\203%\306\307!\210\202B\306\314!\210\202B\304\315\"\203>\306\316!\210\317\n!\210\202B\320\321!\210\322 \207" [text inhibit-read-only indent token string-match "+" speedbar-change-expand-button-char 45 t nil 1 Info-speedbar-hierarchy-buttons 63 "-" 43 speedbar-delete-subblock error "Ooops... not sure what to do" speedbar-center-buffer-smartly] 4 (#$ . 114241)]) #@90 Fetch the subnodes from the info NODESPEC. NODESPEC is a string of the form: (file)node. (defalias 'Info-speedbar-fetch-file-nodes #[(nodespec) "\212\306\307!q\210\310\232\204\310 \210\311\312 \"\204\313\314 \"\210\202)\315\316\317 \"\316\320 \"\"\210eb\210\321\322\311\323 \"\210\316\317 \"\324\325\321\322#\210\324\325\321\322#\203\200\316\317!\211\326\327!\203Y\316\317!\202x\326\330!\203g\316\317!\331P\202x\332\n\333\326\334!\203v\316\317!\202w RB\fB)\202@\f\237,\207" [major-mode nodespec thisfile case-fold-search completions name get-buffer-create " *info-browse-tmp*" Info-mode string-match "^(\\([^)]+\\))\\([^.]+\\)$" error "Invalid node specification %s" Info-find-node match-string 1 2 nil t "^(\\([^)]+\\))" re-search-forward "\n\\* \\([^: \n]*\\):" looking-at " *\\(([^)]+)[^.\n]+\\)\\." " *\\(([^)]+)\\)\\." "Top" "(" ")" " \\([^.]+\\)."] 7 (#$ . 114936)]) #@120 Create a speedbar display to help navigation in an Info file. BUFFER is the buffer speedbar is requesting buttons for. (defalias 'Info-speedbar-buttons #[(buffer) "\212eb\210\301\302\303!*\204\304 \210\305\306\307\"\207" [case-fold-search t looking-at "Info Nodes:" erase-buffer Info-speedbar-hierarchy-buttons nil 0] 3 (#$ . 115835)]) (byte-code "\302\303\211\203 @\304\305\"\210 A\211\204*\303\207" [mess #:--cl-dolist-temp-- ("^First node in file$" "^No `.*' in index$" "^No cross-reference named" "^No cross.references in this node$" "^No current Info node$" "^No menu in this node$" "^No more items in menu$" "^No more nodes$" "^No pointer \\(?:forward\\|backward\\) from this node$" "^No previous `i' command$" "^No previous items in menu$" "^No previous nodes$" "^No such item in menu$" "^No such node or anchor" "^Node has no" "^Point neither on reference nor in menu item description$" "^This is the \\(?:first\\|last\\) Info node you looked at$" search-failed) nil add-to-list debug-ignored-errors] 4) #@52 Auxiliary information to be saved in desktop file. (defalias 'Info-desktop-buffer-misc-data #[(desktop-dirname) "\302\235?\205\n D\207" [Info-current-file Info-current-node (apropos history toc nil)] 2 (#$ . 116865)]) #@53 Restore an Info buffer specified in a desktop file. (defalias 'Info-restore-desktop-buffer #[(desktop-buffer-file-name desktop-buffer-name desktop-buffer-misc) "@A@\211\205! \205! \203\304 !q\210\305 \210\306\n \"\210p*\207" [desktop-buffer-misc second first desktop-buffer-name get-buffer-create Info-mode Info-find-node] 4 (#$ . 117092)]) (byte-code "\300\301\302\"\210\303\304!\207" [add-to-list desktop-buffer-mode-handlers (Info-mode . Info-restore-desktop-buffer) provide info] 3)