;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Tue Aug 18 03:25:06 1998
;;; from file /gd/gnu/emacs/lisp/info.el
;;; in Emacs version 20.2.98.3
;;; with bytecomp version 2.48
;;; 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)
#@100 List of info nodes user has visited.
Each element of list is a list (FILENAME NODENAME BUFFERPOS).
(defvar Info-history nil (#$ . 673))
#@320 *Non-nil means the \<Info-mode-map>\[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 '(#$ . -816) :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 (#$ . 1232))
(put 'Info-enable-active-nodes 'risky-local-variable t)
#@56 *Non-nil enables highlighting and fonts in Info nodes.
(custom-declare-variable 'Info-fontify 't '(#$ . -1461) :type 'boolean :group 'info)
(byte-code "\301\302\303\304\305%\210\301\306\307\310\305%\210\301\311\312\313\305%\207" [:group custom-declare-face info-node ((t (:bold t :italic t))) "Face for Info node names." info info-menu-5 ((t (:underline t))) "Face for the fifth and tenth `*' in an Info menu." info-xref ((t (:bold t))) "Face for Info cross-references."] 6)
#@64 *Maximum size of menu to fontify if `Info-fontify' is non-nil.
(custom-declare-variable 'Info-fontify-maximum-menu-size '30000 '(#$ . -1945) :type 'integer :group 'info)
#@646 List of directories to search for Info documentation files.
nil means not yet initialized.  In this case, Info uses the environment
variable INFOPATH to initialize it, or `Info-default-directory-list'
if there is no INFOPATH variable in the environment.
The last element of `Info-default-directory-list' is the directory
where Emacs installs the Info files that come with it.

If you run the Emacs executable from the `src' directory in the Emacs
source tree, the `info' directory in the source tree is used as the last
element, in place of the installation Info directory.  This is useful
when you run a version of Emacs without installing it.
(defvar Info-directory-list (byte-code "\306\307!\310\300!\203 \202 	\311=\203 \312\202 \313\314\315\n\"\205$ \314\315\"\316\211\203n \316\211G\317V\203g \320\"\206I G\317OBTG^\316O\211\2028 \237*\202\261 \203} \321!\203} \202\200 \f\235\204\243 \321\f!\203\243 	\311=\204\250 	\322=\204\250 \314\323\"\230\204\250 \202\261 \324\f\324!AB!-\207" [path-separator system-type source-directory installation-directory alternative sibling getenv "INFOPATH" boundp ms-dos ";" ":" expand-file-name "info/" nil 0 string-match file-exists-p windows-nt "lib-src/" reverse source path idx list Info-default-directory-list exec-directory] 7) (#$ . 2122))
#@135 List of additional directories to search for Info documentation files.
These directories are not searched for merging the `dir' file.
(custom-declare-variable 'Info-additional-directory-list 'nil '(#$ . 3477) :type '(repeat directory) :group 'info)
#@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 (#$ . 3733))
#@113 Info subfile that is actually in the *info* buffer now,
or nil if current info file is not split into subfiles.
(defvar Info-current-subfile nil (#$ . 3975))
#@51 Name of node that Info is now looking at, or nil.
(defvar Info-current-node nil (#$ . 4139))
#@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 (#$ . 4239))
#@38 Buffer used for indirect tag tables.
(defvar Info-tag-table-buffer nil (#$ . 4403))
#@47 Cached completion list for current Info file.
(defvar Info-current-file-completions nil (#$ . 4493))
#@55 List of possible matches for last Info-index command.
(defvar Info-index-alternatives nil (#$ . 4600))
#@57 Non-nil if Emacs was started solely as an Info browser.
(defvar Info-standalone nil (#$ . 4709))
#@280 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.  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") (".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") ("-info.Z" . "uncompress") ("-info.Y" . "unyabba") ("-info.gz" . "gunzip") ("-info.z" . "gunzip") ("-info") ("/index.Z" . "uncompress") ("/index.Y" . "unyabba") ("/index.gz" . "gunzip") ("/index.z" . "gunzip") ("/index") (".Z" . "uncompress") (".Y" . "unyabba") (".gz" . "gunzip") (".z" . "gunzip") (""))] 2) (#$ . 4813))
(defalias 'info-insert-file-contents-1 #[(filename suffix) "\306=\204\n 	\nP\207\307	!\310	GGZ\311Z]\312\f\310X\203* 	\211GSH\313=\2036 \nG\310U\2046 \n\311\312O\f\310\314\nGZ]^	\310	G\fZZO\nP+\207" [system-type filename suffix sans-exts ext-len ext-left ms-dos 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\211\307\f!\203- \203$ \310\311@@!\312P\f\"\204$ A\211\204 \f@A\202W \203C \313\314\f@@\"!\204C A\211\2041 \314\f@@\"@A\204W \315\316\f\"\210\317\320!\203j \321 \203j \322\n!\203j \306	\203\216 \323\n\"\210\306\324\325\n!\206} \326ed	\327\211%+\202\222 \330\n\"+\207" [Info-suffix-list decoder fullname tail filename visit nil file-exists-p string-match regexp-quote "$" info-file-exists-p info-insert-file-contents-1 error "Can't find %s or any compressed version of it" featurep jka-compr jka-compr-installed-p jka-compr-get-compression-info insert-file-contents-literally no-conversion file-name-directory call-process-region t insert-file-contents default-directory coding-system-for-write buffer-read-only] 7 (#$ . 6313)])
#@57 Like `info' but show the Info buffer in another window.
(defalias 'info-other-window #[(&optional file) "\302\303	!)\207" [same-window-buffer-names file nil info] 2 (#$ . 7271) (byte-code "\205 \301\302\303\211\304$C\207" [current-prefix-arg read-file-name "Info file name: " nil t] 5)])
#@431 Enter Info, the documentation browser.
Optional argument FILE specifies the file to examine;
the default is the top-level directory of Info.

In interactive use, a prefix argument directs this command
to read a file name from the minibuffer.

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) "\203 \301\302!\210\303\304\305Q!\207\306\302!\203 \301\302!\207\307 \207" [file pop-to-buffer "*info*" Info-goto-node "(" ")" get-buffer Info-directory] 4 (#$ . 7569) (byte-code "\205 \301\302\303\211\304$C\207" [current-prefix-arg read-file-name "Info file name: " nil t] 5)])
#@153 Run Emacs as a standalone Info reader.
Usage:  emacs -f info-standalone [filename]
In standalone mode, \<Info-mode-map>\[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@!\210A\211\207" [command-line-args-left info] 2) ((error (byte-code "\301\302\303\242\304=\203 A@\202 \"!\210\305 \207" [err send-string-to-terminal format "%s\n" error save-buffers-kill-emacs] 5))) info] 3 (#$ . 8326)])
(defalias 'Info-find-node #[(filename nodename &optional no-going-back) "\203\242 \306\211\211\307!\211\227\310\230\203 \311\202\223 \312\313\"\203% \314\202; \315!\203/ \316\202; \f\203: \317\f\"\202; \211=\203\222 	\204\222 \320=@\"\320\227=@\">\211?\203\210 	\204\210 \321\322?@@\"!\203q \202 \321\322\n?@@\"!\203 \n?A\211?\204\\ )=A\211=\204A )	\203\234 	\202\241 \323\324\"\210+@\203\267 A\204\267 @B`ECBCD\325=\204\302 \326\327!\210\330p!\210D\325=\204\320 \325 \210~\210\306B\331\216\311E\203\214@\232\204\214\306F\306@\306G\306H\306I\332 \210\311=\203\333 \210\202\334\311\"\210\335!J\336\306!\210db\210\337y\210K\340\230\204x\341\342\306\311#\203x\306L\343\344!\210`L\212\345y\210\346\347!)\203mpM\206D\350\351!NONM\212Nq\210\330p!\210\311E\332 \210\352O!\210)P\353\225N\223\210*\202tPL\306\223\210)\202~P\306\211\223\210\311=\203\210\310\202\211@)K\340\230\203\234KB\354 \202e\355\356K!\357QQR\360P!\203\306\211PSTU\212\361S!q\210Sb\210\353y\210\362Q\306\311#\211U\203\330\363p!RDT)U\203\357T\325=\204\357\364R!RU\203\365\366!\367\230\203Rb\210\202e\370R!\371Z]b\210\372\373\215\210+*\374 \210eb*\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 info-file-exists-p info-insert-file-contents-1 error "Info file %s does not exist" Info-mode pop-to-buffer "*info*" buffer-disable-undo ((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)) erase-buffer Info-insert-dir info-insert-file-contents file-name-directory set-buffer-modified-p -8 "*" search-forward "\nEnd tag table\n" search-backward "\nTag table:\n" 2 looking-at "(Indirect)\n" generate-new-buffer " *info tag table*" insert-buffer-substring 0 Info-set-mode-line "\\(Node:\\|Ref:\\) *" regexp-quote " *[,	\n]" marker-position marker-buffer re-search-forward read Info-read-subfile match-string 1 "Ref:" byte-to-position 1000 foo (byte-code "\303\304\305\306#\203$ \307y\210`\307y\210\310	\306#\203  \311y\210\312\313\306\"\210)\202  \314\315\n\"\207" [beg regexp nodename search-forward "\n" nil t 1 re-search-backward 0 throw foo error "No such anchor in tag table or node in tag table or file: %s"] 4) Info-select-node dirs Info-suffix-list suffix-list Info-current-file no-going-back Info-current-node Info-history major-mode case-fold-search buffer-read-only Info-current-subfile Info-current-file-completions buffer-file-name default-directory nodename pos Info-tag-table-buffer tagbuf buf Info-tag-table-marker regexp guesspos m found-mode found-in-tag-table] 5])
(byte-code "\304\300!\204 \305\300	B\304\302!\204 \305\302	B\304\303!\204  \305\303	B\305\207" [Info-dir-contents current-load-list Info-dir-contents-directory Info-dir-file-attributes boundp nil] 2)
(defalias 'Info-insert-dir #[nil "\203 	\203 \306\307\310\311	\"B!\203 c\210\202\340\n\312\313\211\211\211\21189:;\313;\203\277 \314\315;@!!\211<\235\204\251 \316<!\235\204\251 \313=\315\317<\"=\320=!\206\202 \315\321<\"=\320=!\206\202 \315\322<\"=\320=!\206\202 \315\323<\"=\320=!><\316<!BB>\203\250 \2129\204\235 \324\325!\210\326\327!q\210\313\330\331\217\210)*;A\204\266 \332;@!?;A;)\202- 9\204\310 \333\334!\2109@89A\3358!\210\203-@@\212@q\210eb\210\336\337\313\312#\203%\313\211\211ABC\340y\210`C\341\342!\210\343\344!\210\345 B\343\342\313\346#\210\347y\210`AB@CAF\fB+\202\346 *A\211\204\332 \336\337!\210\340y\210\350\f\312\212\343\351\313\312#\210`)A:D\f\203\200\f@@B\212B\227D\235\204x\336\352\353B!\354QA\312#\204x\355B\354\356\261\210BDBD*\fA\211\204K,\f\203\303\f@@Beb\210\336\357\353B!\360Q\313\312#\203\252\343\342\313\346#\210\347y\210\356c\210\202\264db\210\361B\362\261\210\363\364\f@A\"\210)\fA\211\204\2059\203\327\3659@!\2109A\2119\204\310\324\366!\210.\367 ?\211E\207" [Info-dir-contents Info-dir-file-attributes Info-directory-list dirs-done nodes others eval and mapcar #[(elt) "\302@!\211\203 \303	\233\304\240\210\303A\233\304\240\210A	\232)\207" [elt curr file-attributes 4 0] 3] t nil 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 "\304!\210p	B\nBB\304\207" [file buffers attrs Info-dir-file-attributes insert-file-contents] 2) ((error (byte-code "\300p!\207" [kill-buffer] 2))) file-name-as-directory error "Can't find the Info directory node" insert-buffer re-search-forward "^\\* Menu:" 1 search-backward "\n" search-forward "Node: " Info-following-node-name move 0 ("top") "" "^\\* +" regexp-quote "::" "* " "\n" "\n.*\n.*Node: " "[,\n	]" "\nFile: dir	Node: " "\n\n* Menu:\n\n" apply insert-buffer-substring kill-buffer "Composing main Info directory...done" buffer-string buffer buffers case-fold-search dirs truename file attrs Info-dir-contents-directory other end nodename beg menu-items default-directory] 8])
(defalias 'Info-read-subfile #[(nodepos) "\306\211\n\247\203! \212\307!q\210eb\210\310\311!\210\312y\210\313\314\215\210)\202% \n\315\f\232\204@ \306\306~\210\316 \210\317!\210\320\306!\210)eb\210\310\311!\210\n\247\205Q \n	Z`\\*\207" [lastfilename lastfilepos nodepos Info-tag-table-marker Info-current-subfile buffer-read-only nil marker-buffer search-forward "\n" 2 foo (byte-code "\306\307!\204: l\2044 `\310\211\311\312!\210\n`\313Z{\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 buffer-file-name] 2])
(defalias 'Info-select-node #[nil "\305\212\306\307!\210\310y\210\311\312!\210\313`\314\315w\210`\"\316 \210\317y\210\315`\311\320\315\305#\203; `S\321\322!\203< \317\225b\210\323p!\202< d}\210\203F \324\n!\210\f\203M \325 \210\326\327!+\207" [case-fold-search Info-current-node active-expression Info-enable-active-nodes Info-fontify t search-backward "\n" 2 re-search-forward "Node:[ 	]*" buffer-substring-no-properties "^,	\n" nil Info-set-mode-line 0 "\n[\f]" looking-at "[\n\f]*execute: " read eval Info-fontify-node run-hooks Info-selection-hook] 5])
(defalias 'Info-set-mode-line #[nil "\303\203 \304!\202\f \305\306	\206 \305R\211\207" [Info-current-file Info-current-node mode-line-buffer-identification "  Info:  (" file-name-nondirectory "" ")"] 4])
#@72 Go to info node named NAME.  Give just NODENAME or (FILENAME)NODENAME.
(defalias 'Info-goto-node #[(nodename) "\305\306\307	\"\210\310\224\310\225U\203 \311\202 	\312\224\312\225O	\313\224\313\225O\306\314\"\211\203/ \315\nO)\306\314	\"\211\203> 	\315\nO)\203M \203M \305\316\317!\210\320\311\232?\205V 	\311\232\203` \321\202a 	\")\207" [filename nodename trim transient-mark-mode mark-active nil string-match "\\s *\\((\\s *\\([^	)]*\\)\\s *)\\s *\\|\\)\\(.*\\)" 1 "" 2 3 "\\s *\\'" 0 run-hooks deactivate-mark-hook Info-find-node "Top"] 5 (#$ . 15660) (list (Info-read-node-name "Goto node: "))])
(byte-code "\301B\301\207" [current-load-list Info-read-node-completion-table] 2)
(defalias 'Info-read-node-name-1 #[(string predicate code) "G\305V\205\f \305H\306=\n\307=\203# 	\203 \202H \310\f#\202H \n\311=\2036 	?\205H \312\f#\202H \n\313=\205H 	\203D \311\202H \314\")\207" [string no-completion code Info-read-node-completion-table predicate 0 40 nil try-completion t all-completions lambda assoc] 4])
(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 "\206c \306\307\212\214\310!\2034 \310\f!q\210~\210\fb\210\311\312\306\307#\2030 \313\224\313\225{C\nB\202 )\202^ ~\210eb\210\314\315\306\307#\203^ \313y\210`\313y\210\316\317\307#\203Z \313\224\313\225{C\nB)\2029 *\n\211*\207" [Info-current-file-completions case-fold-search compl Info-tag-table-marker marker beg nil t marker-buffer re-search-forward "\nNode: \\(.*\\)" 1 search-forward "\n" re-search-backward "Node: *\\([^,\n]*\\) *[,\n	]"] 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\202 A\211\204 \304\207" [hl Info-current-file Info-current-node 2 nil] 3 (#$ . 17531)])
#@74 Default regexp for \<Info-mode-map>\[Info-search] command to search for.
(defvar Info-last-search nil (#$ . 17795))
#@72 Search for REGEXP, starting from point, and select node it's found in.
(defalias 'Info-search #[(regexp) "\203 \203 \306\307\310!\210\n\311\232\203 \202 \n\306\211\f`\312 \"#$%&'()\212\214~\210\"\204E \313\n!\210`)\202J \314\315\316\217\210*)\204\355 \317\216\306*\212\320+!q\210eb\210\321\322!\210\214`\321\323!\210`S}\210eb\210\321\324#\325Q!\210\326y\210m\204\237 \313\327!\210\330\225\331\\b\210\332p!\330\224\330\225{B*B*\326\225Tb\210\202{ *\237\211*@@(*A***\203\332 \333\334*@A\"\210\335*@@!\210*A*\313\n\306\336#\203\257 `)\306\211*\204\264 )\203\346 \333\311!\210\202\354 \337\340\nC\"\210*~\210)b\210\341 \210'\f\230\203&\232\206&'%E,B\211,.\207" [transient-mark-mode mark-active regexp Info-last-search Info-current-node Info-current-file nil run-hooks deactivate-mark-hook "" window-start re-search-forward err (byte-code "\302!\210`\302\207" [regexp found re-search-forward] 2) ((search-failed)) ((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 search-forward "\n\nIndirect:" "\n" "\n" ": " 0 "\\(^.*\\): [0-9]+$" 1 2 read message "Searching subfile %s..." Info-read-subfile t signal search-failed Info-select-node Info-current-subfile osubfile ostart opoint ofile onode current found list Info-tag-table-marker Info-history] 8 (#$ . 17917) "sSearch (regexp): "])
(defalias 'Info-extract-pointer #[(name &optional errorname) "\303\212eb\210\304y\210\305	\306P\307\303#\203 \310\225b\210\311 \202- \n\303=?\205- \312\313\314\n\206+ 	!\"*\207" [case-fold-search name errorname t 1 re-search-backward ":" nil 0 Info-following-node-name error "Node has no %s" capitalize] 4])
(defalias 'Info-following-node-name #[(&optional allowedchars) "\301\302w\210\303`\304\305\206 \306\307Q!\203* \206 \306\310P\302w\210\304\310!\203 \311\302w\210\202 \312\302x\210`\"\207" [allowedchars " 	" nil buffer-substring-no-properties looking-at "[" "^,	\n" "]" "(" "^)" " "] 6])
#@35 Go to the next node of this node.
(defalias 'Info-next #[nil "\300\301\302!!\207" [Info-goto-node Info-extract-pointer "next"] 3 (#$ . 20001) nil])
#@39 Go to the previous node of this node.
(defalias 'Info-prev #[nil "\300\301\302\303\"!\207" [Info-goto-node Info-extract-pointer "prev[ious]*" "previous"] 4 (#$ . 20155) 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) "\303\304!	\203 \305\306\"\203 \307\310!\210\311!\210)\312\n!\207" [node same-file Info-history Info-extract-pointer "up" string-match "^(" error "Up node is in another Info file" Info-goto-node Info-restore-point] 3 (#$ . 20337) nil])
#@35 Go back to the last node visited.
(defalias 'Info-last #[nil "\204 \304\305!\210\306\211\211@@@A@@AA@A\307\n\"\210A	b+\207" [Info-history opoint nodename filename error "This is the first Info node you looked at" nil Info-find-node] 3 (#$ . 20728) nil])
#@32 Go to the Info directory node.
(defalias 'Info-directory #[nil "\300\301\302\"\207" [Info-find-node "dir" "top"] 3 (#$ . 21004) nil])
#@112 Follow cross reference named NAME to the node it refers to.
NAME may be an abbreviation of the reference name.
(defalias 'Info-follow-reference #[(footnotename) "\204 \306\307!\210\310\211\211\311\312!P\313\314\315\n#\211\2033 \n\316O\317\nT\310OQ\320\\\202 \212eb\210\321\n\310\313#\204D \306\322\"\210\316\224\323\\b\210\324\325\313\")\314\317#\211\203l \316O\315\316\225\310OQT\202P \326!-\207" [footnotename case-fold-search str i beg target error "No reference was specified" nil "\\*note " regexp-quote t string-match " " 0 "[ 	\n]+" 6 re-search-forward "No cross-reference named %s" 5 Info-extract-menu-node-name "Bad format cross reference" Info-goto-node] 6 (#$ . 21145) (byte-code "\306\211\307\211\211`\307\211\211\211\212\307\210`\310y\210`eb\210\311\312\307\306#\203\275 \313\224`S{\204I \310\224\fX\203I \f`X\203I \306\204\\ 	\310\224X\203\\ `X\203\\ \306\310\314\315\n#\211\203z \310\nO\316\310\225\307OQ\nT\202^ \306=\203\204 \306=\203\214 \227\211\203\254 @@\227\230\204\254 A\211\204\230 \204\271 \307BB*\202& )\204\306 G\313=\203\324 @@\203\317\203\347 \320\321Q\202\350 \322\307\306$\211\323\232\203\372 \202\374 )C\202\324\325!.\n\207" [eol bol i str start-point alt-default t nil 0 re-search-forward "\\*note[ \n	]*\\([^:]*\\):" 1 string-match "[ \n	]+" " " completing-read "Follow reference named: (" ") " "Follow reference named: " "" error "No cross-references in this node" default completions case-fold-search completion-ignore-case tem tail input] 11)])
(defalias 'Info-extract-menu-node-name #[(&optional errmessage multi-line) "\304\305w\210`\305\211\306\305w\210\307u\210\310\311!\203 \312\n`S\"\202. \304\305w\210\313\203, \314\202- \315!\316\317	#\211\203A 	\320I\210\202/ \316\321	\"\203R \322\323\324\211	$\202A 	+\207" [i str beg multi-line " 	\n" nil "^:" 1 looking-at ":" buffer-substring-no-properties Info-following-node-name "^.,	" "^.,	\n" string-match "\n" 32 "  +" replace-match " " t] 5])
(byte-code "\301B\301\207" [current-load-list Info-complete-menu-buffer] 2)
(defalias 'Info-complete-menu-item #[(string predicate action) "\306	\307=\203@ \307\310\311\n!\312Q\212q\210eb\210\313\314!\210\315\307\306#\2035 \316\317\320\224\320\225{\"\320\224B\fB\202 )\321\n\f#*\202\224 	\306=\203~ \307\310\311\n!\312Q\212q\210eb\210\313\314!\210\315\307\306#\203s \316\317\320\224\320\225{\"\320\224B\fB\202Z )\322\n\f#*\202\224 \212q\210eb\210\313\314!\210\315\323\311\n!\324Q\307\306#))\207" [case-fold-search action string pattern completions Info-complete-menu-buffer t nil "\n\\* +\\(" regexp-quote "[^:	\n]*\\):" search-forward "\n* Menu:" re-search-forward format "%s" 1 try-completion all-completions "\n\\* +" ":" predicate] 4])
#@124 Go to node for menu item named (or abbreviated) NAME.
Completion is allowed, and the menu item point is on is the default.
(defalias 'Info-menu #[(menu-item) "\301\302!!\207" [menu-item Info-goto-node Info-extract-menu-item] 3 (#$ . 23974) (let ((completions 'nil) (default nil) (p (point)) beg (last nil)) (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) (re-search-backward "\n\\* +\\([^:	\n]*\\):" beg t) (setq default (format "%s" (buffer-substring (match-beginning 1) (match-end 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)))])
(defalias 'Info-extract-menu-item #[(menu-item) "\302!\303\212eb\210\304\305\306\303#\204 \307\310!\210\311\312\313Q\306\303#\204/ \311\312P\306\303#\204/ \307\314!\210\315y\210\316u\210\317 *\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" 0 2 Info-extract-menu-node-name] 4])
(defalias 'Info-extract-menu-counting #[(count) "\302\212eb\210\303\304\305\302#\204 \306\307!\210	\203& \303\310\305\302	$\204. \306\311!\210\202. \303\310\305\302#\204& \312 *\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] 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 (#$ . 25696) nil])
#@34 Go to the Top node of this file.
(defalias 'Info-top-node #[nil "\300\301!\207" [Info-goto-node "Top"] 2 (#$ . 25949) nil])
#@36 Go to the final node in this file.
(defalias 'Info-final-node #[nil "\302\303!\210\304\302\305\304!!\210\306\307\211\"\204\f \310\311	\"?\205. \212\312\313\304\307#)\205. \302\305\304!!\210\202 )\207" [Info-history Info-current-node Info-goto-node "Top" nil Info-extract-menu-counting Info-forward-node t string-match "\\<index\\>" search-forward "\n* Menu:"] 4 (#$ . 26079) 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\204# \212\307\310\311\312#)\203# \313\314	\"\204# \315\316\306!!\210\312\207\212\317\320\311\312#)\2032 \321 \210\312\207\212\317\322\311\312#)\203X \323\324!\227\325\230\204X 	\326 \210\311\211\327\216\330\312\"\211,\207\203^ \311\207\331\332!\207" [not-down Info-current-node old-node success Info-history no-error 1 search-forward "\n* menu:" nil t string-match "\\<index\\>" 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"] 4 (#$ . 26468) nil])
#@70 Go backward one node, considering all nodes as forming one sequence.
(defalias 'Info-backward-node #[nil "\304\305\306\"\304\307\306\"\203 \310\311\"\203 \312\313!\202[ \2030 	\203+ 	\227\227\230\2030 \314 \202[ 	\203X \315 \210\316\310\317\"?\205T \212\320\321\316\306#)\205T \322\323\316!!\210\2029 )\202[ \312\324!*\207" [upnode prevnode Info-history Info-current-node Info-extract-pointer "prev[ious]*" t "up" string-match "(" error "First node in file" Info-up Info-prev nil "\\<index\\>" search-forward "\n* Menu:" Info-goto-node Info-extract-menu-counting "No pointer backward from this node"] 4 (#$ . 27288) 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 (#$ . 27926) nil])
(defalias 'Info-next-menu-item #[nil "\212\300y\210\301\302\303\304#\210\301\305\303\304#\204 \306\307!\210\310\311 !)\207" [-1 search-forward "\n* menu:" nil t "\n* " error "No more items in menu" Info-goto-node Info-extract-menu-node-name] 4 nil nil])
(defalias 'Info-last-menu-item #[nil "\212\301y\210\212\302\303\304\305#\205 `)\211\203 \302\306\305#\204  \307\310!\210)\311\212\312\225b\210\313 )!)\207" [beg 1 search-backward "\n* menu:" nil t "\n* " error "No previous items in menu" Info-goto-node 0 Info-extract-menu-node-name] 5 nil 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\203 db\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 (#$ . 28805) nil])
#@59 Go to the last node, popping up a level if there is none.
(defalias 'Info-last-preorder #[nil "\300\301\302\217\203 \300\303\304\217\204 \305\306!\207\307\310!\307\311!\232\204/ \300\312\313\217\210db\210\300\314\315\217\204$ \305\306!\207\300\316\317\217\203D eb\210\320\321\300\322#\206G db\207\323\324!\207" [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 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)) search-forward "\n* Menu:" t error "No previous nodes"] 4 (#$ . 29257) nil])
#@548 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.

When you scroll past the end of a node, that goes to the next node; if
this node has no successor, it moves to the parent node's successor,
and so on.  If 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 "\301 eW\204 \301 dV\203 \302\303 `\"\210\212eb\210\304\305\306\307#\203$ `\202% d)\211\301 W\2044 \310!\2039 \311 \202; \312 )\207" [virtual-end window-start set-window-start selected-window search-forward "\n* Menu:" nil t pos-visible-in-window-p Info-next-preorder scroll-up] 5 (#$ . 30008) nil])
#@241 Scroll one screenful back in Info, considering all nodes as one sequence.
Within the menu of a node, 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 "\302 eW\204 \302 dV\203 \303\304 `\"\210`\212\305y\210`eb\210\306\307\310#)\211\2040 \311e!\2035 \312 \2027 \313 *\207" [current-point virtual-end window-start set-window-start selected-window 0 search-forward "\n* Menu:" t pos-visible-in-window-p Info-last-preorder scroll-down] 5 (#$ . 30898) nil])
#@67 Move cursor to the next cross-reference or menu item in the node.
(defalias 'Info-next-reference #[(&optional recur) "\304`\305m\204 \306u\210\307\n\310\305#\204' eb\210\307\n\310\305#\204' 	b\210\311\312!\210\313\224b\210\314\315!\205> \203; \311\312!\202> \316\305!+\207" [case-fold-search old-pt pat recur "\\*note[ \n	]*\\([^:]*\\):\\|^\\* .*:" t 1 re-search-forward nil error "No cross references in this node" 0 looking-at "\\* Menu:" Info-next-reference] 4 (#$ . 31486) 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\224b\210\313\314!\2057 \2034 \310\311!\2027 \315\305!+\207" [case-fold-search old-pt pat recur "\\*note[ \n	]*\\([^:]*\\):\\|^\\* .*:" t re-search-backward nil error "No cross references in this node" 0 looking-at "\\* Menu:" Info-prev-reference] 4 (#$ . 31980) nil])
#@460 Look up a string in the index for this file.
The index is defined as 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".
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 `,' command to see the other matches.
Give a blank topic name to go to the Index node itself.
(defalias 'Info-index #[(topic) "\306\307\310\311	!\"\306\312#\313\314!\210\315\316\306\312#\204  \317\320!\210\321\322\306\312#\204, \317\320!\210\323\224b\210\306$\313\324 !\210)	\325\232\206\302 \306\211\211\211%$&'eb\210\321\f\306\312#\203s \323\224\323\225{\326\224\326\225{\327\330\331\224\331\225{P!F'B'\202N \332\333\312\"\211\203\212 \334\335\"\203\212 \313!\210\202K '\204\231 \313#!\210\317\336	\"\210\337	'\"\211%\203\266 %&B&\340%'\"'\202\231 &'\237\244(\341\342!,-\207" [Info-current-node topic case-fold-search node pattern rnode nil format "\n\\* +\\([^\n:]*%s[^\n:]*\\):[ 	]*\\([^.\n]*\\)\\.[ 	]*\\([0-9]*\\)" regexp-quote t Info-goto-node "Top" search-forward "\n* menu:" error "No index" re-search-forward "\n\\* \\(.*\\<Index\\>\\)" 1 Info-extract-menu-node-name "" 2 string-to-int "0" 3 Info-extract-pointer "next" string-match "\\<Index\\>" "No `%s' in index" assoc delq Info-index-next 0 orignode Info-history found exact matches Info-index-alternatives] 7 (#$ . 32462) "sIndex topic: "])
#@63 Go to the next matching index item from the last `i' command.
(defalias 'Info-index-next #[(num) "\204 \303\304!\210	\305W\203 	G\\\211\202	 	\305V\203+ A@C\244	S\211\202 \306@A@!\210\307@8\305V\203D \307@8y\210\202P \307y\210@@\310\n!\210)\311\312@@\313@8A\203b \314\202c \315$\207" [Info-index-alternatives num name error "No previous `i' command" 0 Info-goto-node 3 Info-find-index-name message "Found `%s' in %s.  %s" 2 "(Press `,' for more)" "(Only match)"] 6 (#$ . 33969) "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#\2048 \310\304\311	\"\307\302#\2048 \312\313	\"\2030 \310\304\311	\314\315\224O\"\307\302#\2048 \310	\307\302#\203? \314y\210\307\202A eb)\207" [case-fold-search name t re-search-forward format "[a-zA-Z]+: %s\\( \\|$\\)" regexp-quote nil search-forward "`%s'" string-match "\\`.*\\( (.*)\\)\\'" 0 1] 6 (#$ . 34477)])
#@36 Make command be undefined in Info.
(defalias 'Info-undefined #[nil "\300 \207" [ding] 1 (#$ . 34947) 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 (#$ . 35060) 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 (#$ . 35284) nil])
#@488 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.
SIG 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 \203j \316\224	X\203j \316\225	V\203j \317\224\317\225{\202\204 \204r \314\202\204 \306=\203 \320 \210\314\202\204 \321\322	#+\207" [case-fold-search pos start found all errorstring t looking-at -1 re-search-backward 200 yes nil re-search-forward 0 1 beep error "No %s around position %d"] 5 (#$ . 35845)])
#@244 \<Info-mode-map>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) "\211A@)\211@\nA@\305!\210\fb\210+\306 ?\205' \212\307y\210m)\205' \310 \207" [click event start window pos select-window Info-try-follow-nearest-node 1 Info-next-preorder] 3 (#$ . 36891) "e"])
#@243 \<Info-mode-map>Follow a node reference near point.
Like \[Info-menu], \[Info-follow-reference], \[Info-next], \[Info-prev] or \[Info-up] command, depending on where point is.
If no reference to follow, moves to the next node, or up if none.
(defalias 'Info-follow-nearest-node #[nil "\300 \206 \301 \207" [Info-try-follow-nearest-node Info-next-preorder] 1 (#$ . 37393) nil])
#@68 Follow a node reference near point.  Return non-nil if successful.
(defalias 'Info-try-follow-nearest-node #[nil "\301\302`\303\304#\211\203 \305!\210\202} \302`\306\307#\211\203$ \310!\210\202} \302`\306\311#\203< \312y\210\313u\210\314 \310!\210\202} \302`\315\316#\211\203M \310!\210\202} \302`\317\320#\211\203^ \310!\210\202} \302`\321\322#\211\203o \310\323!\210\202} \302`\324\325#\211\203} \310!\210)\207" [node nil Info-get-token "\\*note[ \n]" "\\*note[ \n]\\([^:]*\\):" Info-follow-reference "\\* +" "\\* +\\([^:]*\\)::" Info-goto-node "\\* +\\([^:]*\\):" 0 2 Info-extract-menu-node-name "Up: " "Up: \\([^,\n	]*\\)" "Next: " "Next: \\([^,\n	]*\\)" "File: " "File: \\([^,\n	]*\\)" "Top" "Prev: " "Prev: \\([^,\n	]*\\)"] 4 (#$ . 37777)])
#@34 Keymap containing Info commands.
(defvar Info-mode-map nil (#$ . 38546))
(byte-code "\204\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\317#\210\303\320\317#\210\303\321\317#\210\303\322\317#\210\303\323\317#\210\303\324\317#\210\303\325\317#\210\303\326\317#\210\303\327\317#\210\303\330\331#\210\303\332\333#\210\303\334\335#\210\303\336\337#\210\303\340\341#\210\303\342\343#\210\303\344\305#\210\303\345\346#\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\374#\210\303\376\341#\210\303\377\201@ #\210\303\201A \201B #\210\303\201C \201D #\210\303\201E \201F #\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 "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-last "m" Info-menu "n" Info-next "p" Info-prev "q" Info-exit "s" Info-search "\363" "t" "u" Info-up "," Info-index-next "" Info-scroll-down [mouse-2] Info-mouse-follow-nearest-node] 4)
(defalias 'Info-check-pointer #[(item) "\300\301\302\217\207" [nil (Info-extract-pointer item) ((error))] 3])
#@22 Menu for info files.
(defvar Info-mode-menu nil (#$ . 40146))
(byte-code "\303\304\305\306$\210\307\301!\204 \310\301\nB\310\207" [Info-mode-map Info-menu-last-node current-load-list easy-menu-do-define Info-mode-menu "Menu for info files." ("Info" ["Up" Info-up (Info-check-pointer "up")] ["Next" Info-next (Info-check-pointer "next")] ["Previous" Info-prev (Info-check-pointer "prev[ious]*")] ("Menu item" ["You should never see this" report-emacs-bug t]) ("Reference" ["You should never see this" report-emacs-bug t]) ["Search..." Info-search t] ["Goto node..." Info-goto-node t] ["Last" Info-last Info-history] ["Exit" Info-exit t]) boundp nil] 5)
(defalias 'Info-menu-update #[nil "\300\301\302\217\207" [nil (byte-code "\306=?\206\f 	\nD\232?\205p\307\310\311\217\237\307$\307%\312&\203N &\313W\203N @%A&T&\314%\315%D\316\317\320&\"$$B$\202! \203X \321$B$$\204a \322C$\323\324\325$\237#\210-\307\211\211\211\211\312\326'&%$()\212eb\210\327\330\307\326#\203\301 \331\224`S{)\312(\332\333)(#\211(\203\271 )\312(O\334)\312\225\307OQ)(T(\202\224 )B\202\202 )\203\355 &\313W\203\355 @%A&T&\335\314%\336%D\337BB\"$B$\202\302 \203\367 \340$B$$\204 \341C$\323\342\343$\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 "" #[(e) "\300\207" [t] 1] t) ((error)) 0 9 vector Info-menu :keys format "%d" ["Other..." Info-menu t] ["No menu" nil nil] easy-menu-change ("Info") "Menu item" t re-search-forward "\\*note[ \n	]*\\([^:]*\\):" 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] 7) ((error (ding)))] 3])
(put 'info-mode 'mode-class 'special)
#@2793 \<Info-mode-map>
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-follow-reference]	Follow a cross reference.  Reads name of reference.
\[Info-last]	Move to the last node you were at.
\[Info-index]	Look up a topic in this file's Index and move to that node.
\[Info-index-next]	(comma) Move to the next match from a previous `i' command.
\[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.

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 their 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-exit]	Quit Info: reselect previously selected buffer.
\[Info-edit]	Edit contents of selected node.
1	Pick first item in node's menu.
2, 3, 4, 5   Pick second ... fifth item in node's menu.
\[Info-goto-node]	Move to node specified by name.
	You may include a filename as well, as (FILENAME)NODENAME.
\[universal-argument] \[info]	Move to new Info file with completion.
\[Info-search]	Search through this Info file for specified regexp,
	and select the node in which the next occurrence is found.
\[Info-next-reference]	Move cursor to next cross-reference or menu item.
\[Info-prev-reference]	Move cursor to previous cross-reference or menu item.
(defalias 'Info-mode #[nil "\306 \210\307\310\311\312!\210\313\314!\210\315\314\316\317\320$\210\321\f!\210\320 \320!\322\323!\210\322\324!\210\322\325!\210\322\326!\210\327 \322\330!\210\317\322\331!\210\322\332!\210\322\333!\210\320\334 \210\335\336!\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 make-local-hook activate-menubar-hook add-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-index-alternatives line-move-ignore-invisible Info-set-mode-line run-hooks Info-mode-hook local-abbrev-table case-fold-search buffer-read-only] 5 (#$ . 42023)])
#@47 Local keymap used within `e' command of Info.
(defvar Info-edit-map nil (#$ . 45643))
(byte-code "\204 \302 	\244\303\304\305#\210\306\307\310\311#\207" [Info-edit-map text-mode-map make-sparse-keymap define-key "" Info-cease-edit put info-edit-mode mode-class special] 4)
#@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-hooks Info-edit-mode-hook] 2 (#$ . 45929)])
#@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-edit-map>\\[Info-cease-edit] to return to info"] 4 (#$ . 46445) 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 (#$ . 46831) 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" "forms" "gnus" "info" ("mh" . "mh-e") "sc") (#$ . 47351))
#@326 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).
(defalias 'Info-find-emacs-command-nodes #[(command) "\306\307\310\311!!\312Q\313\301N\203 \301N\202c \f\203b @\211:\203/ @\2021 :\203? A\202A \314\310!\315Q\316\311!\"\203[ \306A,\202 )\212\306\317\320\217\210Adb\210\321\n\306\322#\203\210 \323\224\323\225{\324EB\202q ,\207" [command info-file cmd-desc where Info-file-list-for-emacs file-list nil "^\\* +" regexp-quote symbol-name ":\\s *\\(.*\\)\\.$" "emacs" "\\`" "\\(\\'\\|-\\)" string-match (Info-find-node info-file "Command Index") ((error (Info-find-node info-file "Index"))) re-search-backward t 1 0 elt name file regexp Info-history Info-current-file] 6 (#$ . 47717)])
#@235 Go to the Info node in the Emacs manual for command COMMAND.
The command is found by looking up in Emacs manual's Command Index
or in another manual found via COMMAND's `info-file' property or
the variable `Info-file-list-for-emacs'.
(defalias 'Info-goto-emacs-command-node #[(command) "\304!\204 \305\306\304D\"\210\307!\211\203V 	G\310\213\210\311\312!\210\313	@@	@A@\"\210\n\314V\205R 	A\244\315\316\nS\n\317V\203B \320\202C \321\322\323!\n\317V\203P \324\202Q \325%)\202Z \326\327\")\207" [command where num-matches Info-history commandp signal wrong-type-argument Info-find-emacs-command-nodes ((info)) pop-to-buffer "*info*" Info-find-node 1 message "Found %d other entr%s.  Use %s to see %s." 2 "ies" "y" substitute-command-keys "\\[Info-last]" "them" "it" error "Couldn't find documentation for %s"] 8 (#$ . 48730) "CFind documentation for command: "])
#@328 Go to the Info node in the Emacs manual the command bound to KEY, 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 Command Index
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 (#$ . 49607) "kFind documentation for key:"])
#@146 *Alist of face or list of faces to use for pseudo-underlined titles.
The alist key is the character the title is underlined with (?*, ?= or ?-).
(custom-declare-variable 'Info-title-face-alist ''((42 bold underline) (61 bold-italic underline) (45 italic underline)) '(#$ . -50303) :type '(repeat (list character face face)) :group 'info)
(defalias 'Info-fontify-node #[nil "\212\306\307eb\210\310\311!\203N \312\225b\210\310\313!\203N \312\225b\210\212\314\224b\210\315 \316\216\310\317!+\2039 \320\321\224\321\225\322\323$\210\202 \320\321\224\321\225\322\324$\210\320\321\224\321\225\325\326$\210\202 eb\210\327\330\306\307#\203z \320\314\224\314\225\322h\236A$\210\331\332 !\333>\203Q \320\314\225\321\225\334\307$\210\202Q eb\210\327\335\306\307#\203\243 \312\224Sf\336U\204} \320\314\224\314\225\322\324$\210\320\314\224\314\225\325\326$\210\202} eb\210\337\340\306\307#\203\363 \341\342\f\"\204\363 d`ZW\203\363 \312'\327\343\306\307#\203\362 'T\211'\344>\203\335 \320\312\224\312\224T\322\345$\210\320\314\224\314\225\322\324$\210\320\314\224\314\225\325\326$\210\202\300 )\346\306!+\207" [case-fold-search buffer-read-only save-match-data-internal Info-title-face-alist Info-current-node Info-fontify-maximum-menu-size nil t looking-at "^File: [^,: 	]+,?[ 	]+" 0 "[ 	]*\\([^:, 	\n]+\\):[ 	]+\\([^:,	\n]+\\),?" 1 match-data ((set-match-data save-match-data-internal)) "Node:" put-text-property 2 face info-node info-xref mouse-face highlight re-search-forward "\n\\([^ 	\n].+\\)\n\\(\\*+\\|=+\\|-+\\)$" framep selected-frame (x pc w32) invisible "\\*Note[ \n	]+\\([^:]*\\):" 34 search-forward "\n* Menu:" string-match "\\<Index\\>" "^\\* +\\([^:	\n]*\\):" (5 9) info-menu-5 set-buffer-modified-p n] 7])
(defalias 'Info-kill-buffer #[nil "\302=\205 	\205 \303	!\207" [major-mode Info-tag-table-buffer Info-mode kill-buffer] 2])
(add-hook 'kill-buffer-hook 'Info-kill-buffer)
#@44 Keymap used when in the info display mode.
(defvar Info-speedbar-key-map nil (#$ . 52203))
#@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 (#$ . 52300)])
#@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]+: *.-. "))]) (#$ . 52794))
(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 (#$ . 53301) 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\311\312!\210\313c\210)\314\315 \316!\210\317\213\210\316!\210\f\205\\ \306\311\312!\210\f\203Z \320\321\322\323\f@A\f@@\324\f@A\325&	\210\fA\211\204? )\306*\207" [node case-fold-search inhibit-read-only cf completions speedbar-attached-frame t looking-at "Info Nodes:" toggle-read-only -1 "Info Nodes:\n" nil selected-frame select-frame ((byte-code "\302\206 \303!\302\207" [node completions Info-speedbar-fetch-file-nodes "(dir)top"] 2)) speedbar-make-tag-line bracket 43 Info-speedbar-expand-node Info-speedbar-goto-node info-xref depth] 11 (#$ . 53595)])
#@75 When user clicks on TEXT, goto an info NODE.
The INDENT level is ignored.
(defalias 'Info-speedbar-goto-node #[(text node indent) "\306!\210\307\310!\206 \311 \210\307\310!\312	\313\"\211\203' \314\n!\210\315\316\n!!\210\202? \2037 \317\314\320	!!\210)\202? \306!\210\321	!\210\322\323\"\324\325\"\324\326\"\327\"\210\330\230\205a \331!-\207" [speedbar-attached-frame buff bwin speedbar-power-click pop-up-frames node select-frame get-buffer "*info*" info get-buffer-window 0 select-window raise-frame window-frame t display-buffer switch-to-buffer string-match "^(\\([^)]+\\))\\([^.]+\\)$" match-string 1 2 Info-find-node "Info" speedbar-change-initial-expansion-list file junk speedbar-initial-expansion-list-name speedbar-previously-used-expansion-list-name] 6 (#$ . 54533)])
#@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\"\2030 \306\307!\210\310\311\312!\210\212\313\210\314u\210\315\313\nT#*\203) \306\307!\210\202F \306\316!\210\202F \304\317\"\203B \306\320!\210\321\n!\210\202F \322\323!\210\324 \207" [text inhibit-read-only indent token string-match "+" speedbar-change-expand-button-char 45 t toggle-read-only -1 nil 1 Info-speedbar-hierarchy-buttons 63 "-" 43 speedbar-delete-subblock error "Ooops... not sure what to do" speedbar-center-buffer-smartly] 4 (#$ . 55341)])
#@135 Fetch the subnodes from the info NODESPEC.
NODESPEC is a string of the form: (file)node.
Optional THISFILE represends the filename of
(defalias 'Info-speedbar-fetch-file-nodes #[(nodespec) "\212\306\307!q\210\310\232\204 \310 \210\311\312	\"\313\314	\"\313\315	\"\316\n\"\210+eb\210\317\320\311\321	\"\210\313\314	\"\322\323\317\320#\210\322\323\317\320#\203\231 \313\314!\324\325!\203[ \313\314!B\202\216 \324\326!\203n \313\314!\327PB\202\216 \324\330!\203\203 \331\332\313\314!RB\202\216 \331\332RBB)\202= \237,\207" [major-mode nodespec node file junk thisfile get-buffer-create "*info-browse-tmp*" Info-mode string-match "^(\\([^)]+\\))\\([^.]+\\)$" match-string 1 2 Info-find-node nil t "^(\\([^)]+\\))" re-search-forward "\n\\* \\([^:	\n]*\\):" looking-at " *\\(([^)]+)[^.\n]+\\)\\." " *\\(([^)]+)\\)\\." "Top" " \\([^.]+\\)." "(" ")" case-fold-search completions name] 6 (#$ . 56069)])
#@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 (#$ . 57011)])
(provide 'info)
