;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Sat Sep 3 18:13:12 1994 ;;; from file /home/fsf/rms/e19/lisp/info.el ;;; emacs version 19.25.94.1. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/home/fsf/rms/e19/lisp/info.el' was compiled for Emacs 19")) (defvar Info-history nil "\ List of info nodes user has visited. Each element of list is a list (FILENAME NODENAME BUFFERPOS).") (defvar Info-enable-edit nil "\ *Non-nil means the \\\\[Info-edit] command in Info can edit the current node. 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.") (defvar Info-enable-active-nodes t "\ Non-nil allows Info to execute Lisp code associated with nodes. The Lisp code is executed when the node is selected.") (defvar Info-default-directory-list nil "\ List of default directories to search for Info documentation files. This value is used as the default for `Info-directory-list'. It is set in paths.el.") (defvar Info-fontify t "\ *Non-nil enables highlighting and fonts in Info nodes.") (defvar Info-fontify-maximum-menu-size 30000 "\ *Maximum size of menu to fontify if `Info-fontify' is non-nil.") (defvar Info-directory-list (byte-code "!\n= Ă \" \n \\̉  GVU\n \"7 G   OB  T G^O %* | !|\n= \" !AB!+" [getenv "INFOPATH" system-type ms-dos ";" ":" expand-file-name "../info/" invocation-directory sibling sep path nil idx list 0 string-match Info-default-directory-list file-exists-p exec-directory "../lib-src/" reverse] 6) "\ 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-additional-directory-list nil "\ List of additional directories to search for Info documentation files. These directories are not searched for merging the `dir' file.") (defvar Info-current-file nil "\ Info file that Info is now looking at, or nil.") (defvar Info-current-subfile nil "\ Info subfile that is actually in the *info* buffer now, or nil if current info file is not split into subfiles.") (defvar Info-current-node nil "\ Name of node that Info is now looking at, or nil.") (defvar Info-tag-table-marker (make-marker) "\ Marker pointing at beginning of current Info file's tag table. Marker points nowhere if file has no tag table.") (defvar Info-current-file-completions nil "\ Cached completion list for current Info file.") (defvar Info-index-alternatives nil "\ List of possible matches for last Info-index command.") (defvar Info-standalone nil "\ Non-nil if Emacs was started solely as an Info browser.") (defvar Info-suffix-list (quote ((".info.Z" . "uncompress") (".info.Y" . "unyabba") (".info.gz" . "gunzip") (".info.z" . "gunzip") (".info") (".Z" . "uncompress") (".Y" . "unyabba") (".gz" . "gunzip") (".z" . "gunzip") (""))) "\ 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.") (defalias 'info-insert-file-contents #[(filename &optional visit) "!0\f&\f@@!P\"&\fA\f@As\fF\f@@P!F\fA4\f@@P\f@A!i i\f@@P!i\fs\" \"\ned\n$)+" [Info-suffix-list nil decoder fullname tail file-exists-p filename string-match regexp-quote "$" featurep jka-compr jka-compr-installed-p jka-compr-get-compression-info error "Can't find %s or any compressed version of it!" insert-file-contents visit buffer-read-only shell-command-on-region t] 6 "\ 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 #[(&optional file) " Q!!! " [file Info-goto-node "(" ")" get-buffer "*info*" switch-to-buffer Info-directory] 4 "\ 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." (byte-code " É$C" [current-prefix-arg read-file-name "Info file name: " nil t] 5)]) (defalias 'info-standalone #[nil "\n\n@\"Ǐ " [t Info-standalone command-line-args-left string-match "^-" err (byte-code " @! A" [info command-line-args-left] 2) ((error (byte-code " = A@ \"! " [send-string-to-terminal format "%s\n" err error save-buffers-kill-emacs] 5))) info] 3 "\ Run Emacs as a standalone Info reader. Usage: emacs -f info-standalone [filename] In standalone mode, \\\\[Info-exit] exits Emacs itself."]) (byte-code "\"! !!\"\"\"\"" [defalias Info-find-node #[(filename nodename &optional no-going-back) "!!ǘ\"'˂7\f5\f\"7\n@\"@\"\n\f@@P!l\fy @@P!y AX)A=)\n\n\"+`EB!p!= ~ߎpp !\"#$ = \"!)!+dby-_#_1!`1y!)Wp7!qp!: 7!+*^+1)=iǂm$!)-- e@-!AQBCD+!E+!q+bFB#Gp!CpH!=IC!CԁJ-\")eCKZ]bLM*N )eb" [filename nil found temp-downcase temp substitute-in-file-name file-name-nondirectory "dir" t string-match "^\\./" ("./") Info-additional-directory-list append Info-directory-list dirs expand-file-name Info-suffix-list suffix-list file-exists-p error "Info file %s does not exist" Info-current-file no-going-back Info-current-node Info-history switch-to-buffer "*info*" buffer-disable-undo major-mode Info-mode ((byte-code "! !\n!\n@\nA @ A@# 8b)ć" [Info-current-node no-going-back Info-history hist Info-find-node t 2] 4)) buffer-read-only Info-current-subfile Info-current-file-completions Info-index-alternatives buffer-file-name erase-buffer Info-insert-dir info-insert-file-contents file-name-directory default-directory set-buffer-modified-p Info-tag-table-marker -8 nodename "*" search-forward "\nEnd tag table\n" pos search-backward "\nTag table:\n" 2 looking-at "(Indirect)\n" buf get-buffer-create " *info tag table*" case-fold-search insert-buffer-substring 0 file-name-sans-versions Info-set-mode-line "Node: *" regexp-quote " *[, \n]" regexp guesspos marker-position marker-buffer re-search-forward read get-buffer Info-read-subfile "No such node: \"%s\"" 1000 foo (byte-code "#\"y`y #\")\f\"" [search-forward "\n" nil t 1 beg re-search-backward regexp throw foo error "No such node: %s" nodename] 4) Info-select-node] 5] boundp Info-dir-contents nil Info-dir-contents-directory Info-dir-file-attributes Info-insert-dir #[nil "  \"B!c\nlj \n \f   @!!!\"!\"!\"!\"!!BB\f!!q!p\fB\fB B)* A ).\f!\f@ \fA\n ! q!)\"\nD\n@##qeb#:lj'()y`)!! (#y`'(#)'F B +*\nA\n!y #`)'4 5  @@((5(!Q'#((5B5* A e,  @@(eb(!Q##ydb(@ @A\"c) A \fA\f@!\fA\fفB!.C \"!" [Info-dir-contents Info-dir-file-attributes eval and mapcar #[(elt) " @!\nĠ AĠ A\n)" [file-attributes elt curr 4 0] 3] Info-directory-list nil dirs-done nodes others buffer buffers dirs file-truename expand-file-name truename directory-file-name file "dir" file-attributes "DIR" "dir.info" "DIR.INFO" attrs message "Composing main Info directory..." generate-new-buffer "info dir" insert-file-contents error "Can't find the info directory node" insert-buffer default-directory Info-dir-contents-directory other re-search-forward "^\\* Menu:" t end nodename beg 1 search-backward "\n" search-forward "Node: " Info-following-node-name move 0 ("top") "" case-fold-search menu-items "^\\* " 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] 8] Info-read-subfile #[(nodepos) " !qeb!ĉyɍ!q\f ; ~ !! \f)eb!Z`\\*" [marker-buffer Info-tag-table-marker search-forward "\n" nil lastfilename lastfilepos 2 foo (byte-code "!=l7`‰! `Z{p!y\f V-\" \f+y‡" [looking-at "" nil thisfilename thisfilepos beg search-forward ": " 2 read 1 nodepos throw foo t lastfilename lastfilepos] 3) get-buffer "*info*" Info-current-subfile buffer-read-only buffer-file-name erase-buffer info-insert-file-contents set-buffer-modified-p nodepos] 2] Info-select-node #[nil "!y!`w`{ y\n`#;`S!<ɕbp!\n<d}H\n!P !*" [search-backward "\n" 2 re-search-forward "Node:[ ]*" "^, \n" nil Info-current-node Info-set-mode-line 0 active-expression "\n[\f]" t looking-at "[\n\f]*execute: " read Info-enable-active-nodes eval Info-fontify Info-fontify-node run-hooks Info-selection-hook] 5] Info-set-mode-line #[nil " !\f R" ["Info: (" Info-current-file file-name-nondirectory "" ")" Info-current-node mode-line-buffer-identification] 4]] 3) (defalias 'Info-goto-node #[(nodename) "\f\"ŔŕUƂ\fǔǕO\fȔȕO \"\n1 \nO)\f\"\nB\f\nO) ƚ?L \fƚV͂W\f\")" [nil filename string-match "\\s *\\((\\s *\\([^ )]*\\)\\s *)\\s *\\|\\)\\(.*\\)" nodename 1 "" 2 3 "\\s *\\'" trim 0 Info-find-node "Top"] 5 "\ Go to info node named NAME. Give just NODENAME or (FILENAME)NODENAME." (list (Info-read-node-name "Goto node: "))]) (byte-code "\"\"" [defalias Info-read-node-name #[(prompt &optional default) " \"ƚ ! *" [t completion-ignore-case completing-read prompt Info-build-node-completions nodename "" default Info-read-node-name] 4] Info-build-node-completions #[nil "]\f!,\f!q~\fb#XȔȕ{C\nB~eb#Xy` y #TȔȕ{C\nB)1*\n)" [Info-current-file-completions nil compl marker-buffer Info-tag-table-marker re-search-forward "\nNode: \\(.*\\)" t 1 search-forward "\n" beg re-search-backward "Node: *\\([^,\n]*\\) *[,\n ]"] 4]] 3) (defalias 'Info-restore-point #[(hl) ")@@ !@A@\n!@8bĉAć" [hl Info-current-file Info-current-node 2 nil] 3 "\ If this node has been visited, restore the point value when we left."]) (defvar Info-last-search nil "\ Default regexp for \\\\[Info-search] command to search for.") (defalias 'Info-search #[(regexp) " \n É\f ` \n \f~3!`\f8Џ*\fю!qeb!`!`S}ebQ!ym!ܕ\\bp!ܔܕ{BBڕTbh@@ A)@A\"@@!A#`\fÉ\f!C\"*~\fb \n\f  \nE&B&." [regexp "" Info-last-search nil Info-current-node Info-current-file Info-current-subfile osubfile opoint ofile onode current found re-search-forward err (byte-code " !`" [re-search-forward regexp found] 2) ((search-failed)) ((byte-code "\n!\nb " [found Info-read-subfile opoint Info-select-node] 2)) list marker-buffer Info-tag-table-marker 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-history] 7 "\ Search for REGEXP, starting from point, and select node it's found in." "sSearch (regexp): "]) (byte-code "\"\"" [defalias Info-extract-pointer #[(name &optional errorname) "eby\nP#ƕb .=?.+\n!P!)" [1 re-search-backward name ":" nil t 0 Info-following-node-name errorname error "Node has no " capitalize] 4] Info-following-node-name #[(&optional allowedchars) "w`\f\fQ!)\fPw!wx`{" [" " nil looking-at "[" allowedchars "^, \n" "]" "(" "^)" " "] 5]] 3) (defalias 'Info-next #[nil "!!" [Info-goto-node Info-extract-pointer "next"] 3 "\ Go to the next node of this node." nil]) (defalias 'Info-prev #[nil "\"!" [Info-goto-node Info-extract-pointer "prev[ious]*" "previous"] 4 "\ Go to the previous node of this node." nil]) (defalias 'Info-up #[nil "!!\f!" [Info-goto-node Info-extract-pointer "up" Info-restore-point Info-history] 3 "\ Go to the superior node of this node." nil]) (defalias 'Info-last #[nil "!É@@@A@@AA@A \"A\fb+" [Info-history error "This is the first Info node you looked at" nil opoint nodename filename Info-find-node] 3 "\ Go back to the last node visited." nil]) (defalias 'Info-directory #[nil "\"" [Info-find-node "dir" "top"] 3 "\ Go to the Info directory node." nil]) (defalias 'Info-follow-reference #[(footnotename) "\nP \f#( \fO \fTOQ\f\\ eb #9\n\"ɔ\\b\")\f#g\fOɕOQ\f\\F!," [nil "\\*note " footnotename str i beg target string-match " " 0 "[ \n]+" 6 re-search-forward t error "No cross-reference named %s" 5 Info-extract-menu-node-name "Bad format cross reference" 1 Info-goto-node] 5 "\ Follow cross reference named NAME to the node it refers to. NAME may be an abbreviation of the reference name." (byte-code "` \n`y`eb#Δ`S{J˔XJ`XJ_ ˔X_`\nX_ \f#} \fO ˕OQ\fTa= =  B B %) G= @@ Q $ך)C!. " [t nil eol bol i str start-point alt-default default completions completion-ignore-case 0 re-search-forward "\\*note[ \n ]*\\([^:]*\\):" 1 string-match "[ \n ]+" " " completing-read "Follow reference named: (" ") " "Follow reference named: " input "" error "No cross-references in this node"] 10)]) (byte-code "\"\"" [defalias Info-extract-menu-node-name #[(&optional errmessage multi-line) "w`wu!\f`S{.w\n,˂-! \n#A \nI/ +" [" \n" nil i str beg "^:" 1 looking-at ":" Info-following-node-name multi-line "^., " "^., \n" string-match "\n" 32] 4] Info-complete-menu-item #[(string predicate action) "\n=E!Q \nqeb#8ΔΕ{\"ΔB B ) #*\n=!Q \nqeb#{ΔΕ{\"ΔB B _) #*\nqeb!Q#))" [t case-fold-search action nil "\n\\* \\(" regexp-quote string "[^: \n]*\\):" pattern completions Info-complete-menu-buffer re-search-forward format "%s" 1 try-completion predicate all-completions "\n\\* " ":"] 4]] 3) (defalias 'Info-menu #[(menu-item) "\n!!" [Info-goto-node Info-extract-menu-item menu-item] 3 "\ Go to node for menu item named (or abbreviated) NAME. Completion is allowed, and the menu item point is on is the default." (byte-code "`eb#!`\n`\nW9\nb\n#ϔϕ{\"))tp T \"U$*ט= m ?B-C" [nil last p default completions search-forward "\n* menu:" t error "No menu in this node" beg re-search-backward "\n\\* \\([^: \n]*\\):" format "%s" 1 item Info-complete-menu-buffer completion-ignore-case completing-read "Menu item (default %s): " "Menu item: " Info-complete-menu-item ""] 6)]) (byte-code "\"\"" [defalias Info-extract-menu-item #[(menu-item) " !eb#! Q#- P#-!yu )" [regexp-quote menu-item search-forward "\n* menu:" nil t error "No menu in this node" re-search-forward "\n\\* " ":" "No such item in menu" 0 2 Info-extract-menu-node-name] 4] Info-extract-menu-counting #[(count) "eb#!&$.!.#& )" [search-forward "\n* menu:" nil t error "No menu in this node" count "\n* " "Too few items in menu" Info-extract-menu-node-name] 5]] 3) (defalias 'Info-nth-menu-item #[nil " GSHZ!!" [Info-goto-node Info-extract-menu-counting this-command-keys 48] 4 "\ Go to the node of the Nth menu item. N is the digit argument used to invoke this command." nil]) (defalias 'Info-top-node #[nil "!" [Info-goto-node "Top"] 2 "\ Go to the Top node of this file." nil]) (defalias 'Info-final-node #[nil "!!!Ɖ\"\f \"?/#)/!!)" [Info-goto-node "Top" nil Info-history Info-extract-menu-counting Info-forward-node t string-match "\\" Info-current-node search-forward "\n* Menu:"] 4 "\ Go to the final node in this file." nil]) (defalias 'Info-forward-node #[(&optional not-down no-error) "eby $#)$\"$!!Ň#)3 Ň#)_!њ_ ĉ֎\",fć!" [1 not-down search-forward "\n* menu:" nil t string-match "\\" Info-current-node Info-goto-node Info-extract-menu-counting search-backward "next:" Info-next "up:" Info-extract-pointer "up" "top" old-node Info-up success Info-history ((byte-code "\n!" [success Info-goto-node old-node] 2)) Info-forward-node no-error error "No pointer forward from this node"] 4 "\ Go forward one node, considering all nodes as forming one sequence." nil]) (defalias 'Info-backward-node #[nil "\"\"\f\f\"!]\f0 + \f0 ] Z  \"?V#)V!!:)]!*" [Info-extract-pointer "prev[ious]*" t "up" upnode prevnode string-match "(" error "First node in file" Info-up Info-prev nil Info-history "\\" Info-current-node search-forward "\n* Menu:" Info-goto-node Info-extract-menu-counting "No pointer backward from this node"] 4 "\ Go backward one node, considering all nodes as forming one sequence." nil]) (defalias 'Info-exit #[nil " p!p!!" [Info-standalone save-buffers-kill-emacs switch-to-buffer other-buffer bury-buffer] 4 "\ Exit Info by selecting some other buffer." nil]) (byte-code "\"\"\"" [defalias Info-next-menu-item #[nil "y##! !)" [-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] Info-last-menu-item #[nil "y#`) # !)Ɋʕb )!)" [1 search-backward "\n* menu:" nil t beg "\n* " error "No previous items in menu" Info-goto-node 0 Info-extract-menu-node-name] 5 nil nil] Info-no-error (macro . #[(&rest body) "\f\"BF" [condition-case nil progn append body (t) (error nil)] 6])] 3) (defalias 'Info-next-preorder #[nil "ďy!" [nil (byte-code " " [Info-next-menu-item t] 1) ((error)) (byte-code " " [Info-up t] 1) ((error)) 1 error "No more nodes"] 3 "\ Go to the next subnode, popping up a level if there is none." nil]) (defalias 'Info-next-preorder-1 #[nil "ďƏy!" [nil (byte-code " " [Info-next-menu-item t] 1) ((error)) (byte-code " " [Info-next t] 1) ((error)) (byte-code " " [Info-up t] 1) ((error)) 1 error "No more nodes"] 3 "\ Go to the next subnode or the next node, or go up a level." nil]) (defalias 'Info-last-preorder #[nil "ďy!" [nil (byte-code " db" [Info-last-menu-item t] 1) ((error)) (byte-code " " [Info-up t] 1) ((error)) -1 error "No previous nodes"] 3 "\ Go to the last node, popping up a level if there is none." nil]) (defalias 'Info-scroll-up #[nil " eW dV `\"eb#$`%d) W6!; = )" [window-start set-window-start selected-window search-forward "\n* Menu:" nil t virtual-end pos-visible-in-window-p Info-next-preorder scroll-up] 5 "\ Read the next screen. If end of buffer is visible, go to next entry." nil]) (defalias 'Info-scroll-down #[nil " eW dV `\"eb#)*e!/ 1 )" [window-start set-window-start selected-window search-forward "\n* Menu:" nil t virtual-end pos-visible-in-window-p Info-last-preorder scroll-down] 5 "\ Read the previous screen. If start of buffer is visible, go to last entry." nil]) (defalias 'Info-next-reference #[nil "`m u\n#%eb\n#% b!ɔb!1 *" ["\\*note[ \n ]*\\([^:]*\\):\\|^\\* .*:" old-pt pat 1 re-search-forward nil t error "No cross references in this node" 0 looking-at "\\* Menu:" Info-next-reference] 4 "\ Move cursor to the next cross-reference or menu item in the node." nil]) (defalias 'Info-prev-reference #[nil "`\n#db\n# b!Ȕb!* *" ["\\*note[ \n ]*\\([^:]*\\):\\|^\\* .*:" old-pt pat re-search-backward nil t error "No cross references in this node" 0 looking-at "\\* Menu:" Info-prev-reference] 4 "\ Move cursor to the previous cross-reference or menu item in the node." nil]) (defalias 'Info-index #[(topic) " !\" !#!!#-!Ӕb !) ֚eb#uӔӕ{ڔڕ{ݔݕ{P!FBO\"\"!L \" \"B\"&!,," [Info-current-node nil format "\n\\* \\([^\n:]*%s[^\n:]*\\):[ ]*\\([^.\n]*\\)\\.[ ]*\\([0-9]*\\)" regexp-quote topic node pattern rnode orignode Info-goto-node "Top" search-forward "\n* menu:" t error "No index" re-search-forward "\n\\* \\(.*\\\\)" 1 Info-keeping-history Info-extract-menu-node-name "" found exact matches 2 string-to-int "0" 3 Info-extract-pointer "next" string-match "\\" Info-last "No \"%s\" in index" assoc delq Info-index-alternatives Info-index-next 0] 7 "\ 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." "sIndex topic: "]) (defalias 'Info-index-next #[(num) "! W G\\ V+A@C S@A@!@8VD@8yy@@!\"#\"#\"~ҔO\"##yeb)@@@8Aւ$" [Info-index-alternatives error "No previous `i' command in this file" num 0 Info-goto-node 3 name re-search-forward format "\\(Function\\|Command\\): %s\\( \\|$\\)" regexp-quote nil t search-forward "`%s'" string-match "\\`.*\\( (.*)\\)\\'" 1 message "Found \"%s\" in %s. %s" 2 "(Press `,' for more)" "(Only match)"] 7 "\ Go to the next matching index item from the last `i' command." "p"]) (defalias 'Info-undefined #[nil " " [ding] 1 "\ Make command be undefined in Info." nil]) (defalias 'Info-help #[nil " Wł\"" [delete-other-windows Info-find-node "info" window-height 23 "Help-Small-Screen" "Help"] 4 "\ Enter the Info tutorial." nil]) (defalias 'Info-summary #[nil "" [((byte-code "! !cebʼnd!?%ʂ&! =:CEE *!" [switch-to-buffer "*Help*" erase-buffer documentation Info-mode nil flag ch pos-visible-in-window-p message "Type Space to see more" "Type Space to return to Info" read-event 32 unread-command-events scroll-up bury-buffer] 2))] 1 "\ Display a brief summary of all Info commands." nil]) (defalias 'Info-get-token #[(pos start all &optional errorstring) "b\neZ]#d\\^#/ɔX)ɕVJɔXJɕVJʔʕ{g Słg =a łg #*" [pos re-search-backward start 200 yes nil found re-search-forward all 0 1 errorstring t beep error "No %s around position %d"] 5 "\ 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 parenthized 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-mouse-follow-nearest-node #[(click) "A@)@\nA@ !\fb+ ?'ym)' " [click event start window pos select-window Info-try-follow-nearest-node 1 Info-next-preorder-1] 3 "\ \\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." "e"]) (defalias 'Info-follow-nearest-node #[nil "  " [Info-try-follow-nearest-node Info-next-preorder-1] 1 "\ \\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." nil]) (defalias 'Info-try-follow-nearest-node #[nil "`# !v`#$ !v`#5 !v`#F !v`#W !v`#h!v`#v ! )" [nil node Info-get-token "\\*note[ \n]" "\\*note[ \n]\\([^:]*\\):" Info-follow-reference "\\* " "\\* \\([^:]*\\)::" Info-goto-node "\\* \\([^:]*\\):" Info-menu "Up: " "Up: \\([^,\n ]*\\)" "Next: " "Next: \\([^,\n ]*\\)" "File: " "File: \\([^,\n ]*\\)" "Top" "Prev: " "Prev: \\([^,\n ]*\\)"] 4 "\ Follow a node reference near point. Return non-nil if successful."]) (defvar Info-mode-map nil "\ Keymap containing Info commands.") (byte-code " !###################################@A#BC#DE#FGHI#" [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 "t" "u" Info-up "," Info-index-next "" Info-scroll-down [mouse-2] Info-mouse-follow-nearest-node put info-mode mode-class special] 4) (defalias 'Info-mode #[nil " !! \n\f !!!!!! !=!!!!a!\\\"a\"!|!\"##\"!%+!\"' !" [kill-all-local-variables Info-mode major-mode "Info" mode-name use-local-map Info-mode-map set-syntax-table text-mode-syntax-table text-mode-abbrev-table local-abbrev-table t case-fold-search buffer-read-only make-local-variable Info-current-file Info-current-subfile Info-current-node Info-tag-table-marker Info-history Info-index-alternatives framep selected-frame x make-face info-node info-menu-5 info-xref face-differs-from-default-p bold-italic copy-face bold nil frame underline-p face internal-set-face-1 underline 7 Info-fontify Info-set-mode-line run-hooks Info-mode-hook] 6 "\ \\ 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. 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-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. Moving within a node: \\[Info-scroll-up] Normally, scroll forward a full screen. If the end of the buffer is already visible, try to go to the next menu entry, or up if there is none. \\[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-preorder] Next-preorder; that is, try to go to the next menu item, and if that fails try to move up, and if that fails, tell user he/she is done reading. \\[Info-next-reference] Move cursor to next cross-reference or menu item. \\[Info-prev-reference] Move cursor to previous cross-reference or menu item."]) (defvar Info-edit-map nil "\ Local keymap used within `e' command of Info.") (byte-code " \n##" [Info-edit-map make-sparse-keymap text-mode-map define-key "" Info-cease-edit put info-edit-mode mode-class special] 4) (defun Info-edit-mode nil "\ 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 #[nil "!\f!!\f !!!" [Info-enable-edit error "Editing info nodes is not enabled" use-local-map Info-edit-map Info-edit-mode major-mode "Info Edit" mode-name kill-local-variable mode-line-buffer-identification nil buffer-read-only set-buffer-modified-p buffer-modified-p message substitute-command-keys "Editing: Type \\\\[Info-cease-edit] to return to info"] 3 "\ Edit the contents of this Info node. Allowed only if variable `Info-enable-edit' is non-nil." nil]) (defalias 'Info-cease-edit #[nil " ! ! \f !!2 2!" [buffer-modified-p y-or-n-p "Save the file? " save-buffer use-local-map Info-mode-map Info-mode major-mode "Info" mode-name Info-set-mode-line t buffer-read-only set-buffer-modified-p marker-position Info-tag-table-marker message "Tags may have changed. Use Info-tagify if necessary"] 2 "\ Finish editing Info node; switch back to Info proper." nil]) (defalias 'Info-find-emacs-command-nodes #[(command) "!!!Q \" A db#:єѕ{E B  +" [require info nil "^\\* " regexp-quote symbol-name command ":\\s *\\(.*\\)\\.$" cmd-desc where Info-find-node "emacs" "Command Index" Info-history re-search-backward t Info-current-file 1 0] 5 "\ Return a list of locations documenting COMMAND in the Emacs Info manual. The locations are of the format used in Info-history, i.e. (FILENAME NODENAME BUFFERPOS)."]) (defalias 'Info-goto-emacs-command-node #[(command) " ! D\" !\\ GNj! @@ @A@\"VX A\f\f!SVJтKVVӂW$)` \")" [commandp command signal wrong-type-argument Info-find-emacs-command-nodes where num-matches ((info)) pop-to-buffer "*info*" Info-find-node 1 Info-history message substitute-command-keys "Found %d other entr%s. Use \\[Info-last] to see %s." 2 "ies" "y" "them" "it" error "Couldn't find documentation for %s."] 7 "\ 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." "CFind documentation for command: "]) (defalias 'Info-goto-emacs-key-command-node #[(key) " ! !\"&t#\n=#!!&\n!)" [key-binding key command message "%s is undefined" key-description execute-extended-command Info-goto-emacs-command-node read-command "Find documentation for command: "] 5 "\ 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." "kFind documentation for key:"]) (byte-code "\"!" [defalias Info-fontify-node #[nil "eb!/ĕb!/ĕbǔǕ$ǔǕ$eb#XĔSfU2ǔǕ$ǔǕ$2eb#\"d`ZW#T>ĔĔT$ǔǕ$ǔǕ$w)!*" [nil buffer-read-only looking-at "^File: [^,: ]+,?[ ]+" 0 "[ ]*[^:, \n]+:[ ]+\\([^:, \n]+\\),?" put-text-property 1 face info-xref mouse-face highlight re-search-forward "\\*Note[ \n ]+\\([^:]*\\):" t 34 search-forward "\n* Menu:" string-match "\\" Info-current-node Info-fontify-maximum-menu-size n "^\\* \\([^: \n]*\\):" (5 9) info-menu-5 info-node set-buffer-modified-p] 6] provide info] 3)