;ELC ;;; compiled by jwz@thalidomide on Mon Apr 25 17:50:18 1994 ;;; from file /th/jwz/emacs19/lisp/packages/info.el ;;; emacs version 19.10 Lucid (beta16). ;;; bytecomp version 2.23; 22-dec-93. ;;; 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 "This file was compiled for Emacs 19.")) (defvar Info-novice nil "\ *Non-nil means to ask for confirmation before switching Info files.") (defvar Info-history nil "\ List of info nodes user has visited. Each element of list is a list (\"(FILENAME)NODENAME\" BUFPOS WINSTART).") (defvar Info-keeping-history t "\ Non-nil if Info-find-node should modify Info-history. This is for use only by certain internal Info routines.") (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-restoring-point t "\ *Non-nil means to restore the cursor position when re-entering a node.") (defvar Info-auto-advance 'twice "\ *Control what SPC and DEL do when they can't scroll any further. If nil, they beep and remain in the current node. If t, they move to the next node (like Info-global-next/prev). If anything else, they must be pressed twice to move to the next node.") (defvar Info-fontify t "\ *Non-nil enables font features in Lucid GNU Emacs. This variable is ignored unless running under Lucid GNU Emacs.") (defvar Info-default-directory-list (byte-code "! !\nC" [boundp Info-directory-list Info-directory "."] 2) "\ 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-directory-list (byte-code "!É\nGV\n\"\nG\n O B\n T\nG^O_ * )" [getenv "INFOPATH" path nil idx list 0 string-match ":" Info-default-directory-list] 4) "\ List of directories to search for Info documentation files. Default is to use the environment variable INFOPATH if it exists, else to use Info-directory if it exists.") (defvar Info-suffix-list '((".info") (".info.gz" . "gzip -dc %s") (".info-z" . "gzip -dc %s") (".info.Z" . "uncompress -c %s") (".gz" . "gzip -dc %s") (".Z" . "uncompress -c %s")) "\ List of file name suffixes and associated decoding commands. Each entry should be (SUFFIX . STRING); if STRING contains %s, that is changed to name of the file to decode, otherwise the file is given to the command as standard input. If STRING is nil, no decoding is done.") (defvar Info-footnote-tag "See" "\ *Symbol that identifies a footnote or cross-reference. All \"*Note\" references will be changed to use this word instead.") (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-current-annotation-completions nil "\ Cached completion list for current annotation files.") (defvar Info-index-alternatives nil "\ List of possible matches for last Info-index command.") (byte-code "!‡" [boundp Info-index-first-alternative nil] 2) (defvar Info-annotations-path '("~/.infonotes" "/usr/lib/info.notes") "\ *Names of files that contain annotations for different Info nodes. By convention, the first one should reside in your personal directory. The last should be a world-writable \"public\" annotations file.") (defvar Info-standalone nil "\ Non-nil if Emacs was started solely as an Info browser.") (byte-code "!!‡" [boundp Info-in-cross-reference nil Info-window-configuration] 2) (fset 'info #[(&optional file) " @\" A@Ě Ɖ GU 8\" 8\n AK)\n͎\nQ!)!! " [command-line-args p string-match "^-[fe]" "info" Info-standalone t 3 "^-" 2 file nil command-line-args-left ((byte-code " " [Info-standalone info] 1)) Info-goto-node "(" ")" get-buffer "*info*" switch-to-buffer Info-directory] 5 "\ 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)]) (fset 'Info-query #[(file) " š! Q!" [info file "" Info-goto-node "(dir)" "(" ")"] 4 "\ Enter Info, the documentation browser. Prompt for name of Info file." "sInfo topic (default = menu): "]) (byte-code "MMMMMMM" [Info-setup-initial #[nil " @! @! @!! Ag)" [Info-annotations-path f file-exists-p get-file-buffer bury-buffer find-file-noselect nil] 4] Info-find-node #[(filename nodename &optional no-going-back tryfile line) "\n ĉ!\" C   @\" @\"\" A T) !\"+!!p!!= !\"!\"!! $&`#~&'TT)*+,- \"!\" 234db#|#44@\"33!3P3!`=3!A@?=?\\b=b@A=?\\#By=`|+4A4.ebCD#΁BB{E`2V@F#`d2)@߁GE\"2#`EGZHZ=By=`|)*'+I!J! KĉdbLyMN܁@O#PQ!`PRyST!)pUVW!q!p!X YU!Kē*KPē)Z-!)MNM&[ eb\\M!]^]_Q`eabK!cK!qKbC`#dp!ape!=fa!a)eagZ]bhi j ebkky,)" [filename "emacs" Info-emacs-info-file-name Info-setup-initial nil found temp-downcase temp substitute-in-file-name string-match "^\\./" default-directory Info-directory-list dirs expand-file-name Info-suffixed-file error "Info file %s does not exist" switch-to-buffer "*info*" fboundp buffer-disable-undo run-hooks Info-startup-hook major-mode Info-mode Info-current-file Info-novice "^dir$" file-name-nondirectory y-or-n-p format "Leave Info file `%s'? " message "" keyboard-quit no-going-back Info-history-add Info-current-node Info-in-cross-reference ((byte-code " \n@ @\"e A@\\b)ć" [Info-current-node no-going-back Info-history hist Info-goto-node t] 3)) buffer-read-only Info-current-subfile Info-index-alternatives Info-current-file-completions buffer-file-name erase-buffer Info-insert-file-contents t -1 lim name d re-search-backward "^ *\\* *Locals *: *\n" 0 search-backward " " "localdir" file-exists-p ".info" pt insert-file-contents len search-forward "* menu:" 1 re-search-forward "\n\\* \\([^:\n]*\\):" str "" "\n* %s:" 3 set-buffer-modified-p file-name-directory Info-tag-table-marker -8 nodename "*" "\nEnd tag table\n" pos "\nTag table:\n" 2 looking-at "(Indirect)\n" buf get-buffer-create " *info tag table*" case-fold-search insert-buffer-substring file-name-sans-versions Info-set-mode-line regexp-quote qnode "Node: *" " *[, \n]" regexp guesspos marker-position marker-buffer read get-buffer Info-read-subfile 1000 foo (byte-code "#y`y #\")a\n\"\"\"#P‰@qeb##Ĕĕ{ݔݕ{ߔߕ{!)AC%!䏈.%(\"‡" [search-forward "\n" nil t 1 beg re-search-backward regexp throw foo found delq mapcar get-file-buffer Info-annotations-path string-match "\\`<<.*>>\\'" qnode format "\"%s\"\\|<<%s>>" "------ *File: *\\([^ ].*[^ ]\\) *Node: " "*\\([^ ].*[^ ]\\) *Line: *\\([0-9]+\\)" aline anode afile pat2 pattern bufs re-search-forward 2 string-to-int 3 Info-find-node tryfile err (Info-find-node nodename "Top" t) ((error)) Info-current-node error "No such node: %s" nodename] 7) Info-select-node line] 6] Info-history-add #[(file node point) " ! #\"  \" eZ p= eZEB*" [Info-keeping-history format "(%s)%s" Info-file-name-only file node name assoc Info-history found delq point window-buffer window-start] 5] Info-file-name-only #[(file) " !\n @ At ! *" [file-name-directory file Info-directory-list p dir file-name-nondirectory] 3] Info-read-subfile #[(nodepos) " !qeb!ĉyɍ!q  ~ !\"!!!  )eb!Z`\\*" [marker-buffer Info-tag-table-marker search-forward "\n" nil lastfilename lastfilepos 2 foo (byte-code "!l`‰! `Z{p!ly  V\"  +J\"C‡" [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 Info-suffixed-file expand-file-name file-name-directory Info-current-file set-buffer-modified-p nodepos] 6] Info-suffixed-file #[(name &optional name2) " \n @@P! @@Pi @@P! @@PR AO\n ! !*" [Info-suffix-list nil found suff file-exists-p name name2] 4] Info-insert-file-contents #[(file &optional visit) " \n\"  G @@GX @@G[O @@ Ac @A; @A\" @A \" @A Q\n\n\" =\n$\n&! ! ) \")" [expand-file-name file default-directory Info-suffix-list suff nil string-match "%s" format " < " command message "%s..." system-type vax-vms call-process t shell-file-name "-c" "" visit buffer-file-name set-buffer-modified-p clear-visited-file-modtime insert-file-contents] 8]] 2) (fset 'Info-select-node #[nil "~!y!`w`{ y\n`#`S!ɕbp!\nd}њeb #Q!o!+ \" !#\n!*" [search-backward "\n" 2 re-search-forward "Node:[ ]*" "^, \n" nil Info-current-node Info-set-mode-line 0 active-expression "\n[ ]" t looking-at "[\n ]*execute: " read Info-footnote-tag "Note" buffer-modified-p case-fold-search bufmod buffer-read-only "\\*Note\\([ \n]\\)" replace-match "*" " " set-buffer-modified-p Info-reannotate-node string-match "^19" emacs-version Info-fontify Info-fontify-node run-hooks Info-select-hook Info-enable-active-nodes eval] 5 "\ Select the node that point is in, after using `g *' to select whole file." nil]) (fset 'Info-set-mode-line #[nil " ! \" O )\nR " ["Info: (" Info-current-file file-name-nondirectory name string-match "\\.info$" 0 -5 "" ")" Info-current-node mode-line-buffer-identification] 4]) (fset 'Info-goto-node #[(nodename &optional no-going-back tryfile) " \"ŔŕUƪ ǔǕO ȔȕO \"\n \nO) \"\n \nO) ƚ? ƚͪ  ƚ$)" [nil filename string-match "\\s *\\((\\s *\\([^ )]*\\)\\s *)\\s *\\|\\)\\(.*\\)" nodename 1 "" 2 3 "\\s *\\'" trim 0 Info-find-node "Top" no-going-back tryfile] 7 "\ Go to info node named NAME. Give just NODENAME or (FILENAME)NODENAME. Actually, the following interpretations of NAME are tried in order: (FILENAME)NODENAME (FILENAME) (using Top node) NODENAME (in current file) TAGNAME (see below) FILENAME (using Top node) where TAGNAME is a string that appears in quotes: \"TAGNAME\", in an annotation for any node of any file. (See `a' and `x' commands.)" (byte-code "!E" [Info-read-node-name "Goto node, file or tag: " nil t] 3)]) (byte-code "MM" [Info-goto-bookmark #[nil " $ ǚ \"\"*" [nil completing-read "Goto tag: " Info-build-annotation-completions t tag completion-ignore-case "" Info-find-node format "<<%s>>"] 6 nil nil] Info-visit-file #[nil "ĉ#Ě !\"*" [nil insert-default-directory read-file-name "Goto Info file: " "" file Info-find-node expand-file-name "Top"] 5 nil nil]] 2) (fset 'Info-restore-point #[(&optional always) " !# \"\n\n!*" [Info-restoring-point always format "(%s)%s" Info-file-name-only Info-current-file Info-current-node name assoc Info-history p Info-restore-history-entry] 5 "\ Restore point to same location it had last time we were in this node." "p"]) (byte-code "MMMM" [Info-restore-history-entry #[(entry) "A@e\\b8p!p!8e\\\"" [entry 2 get-buffer-window set-window-start] 4] Info-read-node-name #[(prompt &optional default) "  \"ǚ !*" [Info-setup-initial t completion-ignore-case completing-read prompt Info-build-node-completions nodename "" default Info-read-node-name] 4] Info-build-annotation-completions #[nil " \"\"@qeb#˔˕{CBlA\\+" [Info-current-annotation-completions delq nil mapcar get-file-buffer Info-annotations-path compl bufs re-search-forward "<<\\(.*\\)>>" t 1] 6] Info-build-node-completions #[nil "  ! !q b#ɔɕ{C\nBn~eb#y` y #ɔɕ{C\nB)\\*\n)" [Info-current-file-completions Info-build-annotation-completions compl marker-buffer Info-tag-table-marker re-search-forward "\nNode: \\(.*\\)" nil t 1 search-forward "\n" beg re-search-backward "Node: *\\([^,\n]*\\) *[,\n ]"] 4]] 2) (defvar Info-last-search nil "\ Default regexp for \\\\[Info-search] command to search for.") (fset 'Info-search #[(regexp) "\nÉ ` \n  ~!` Џ* ю!qeb!`!`S}ebQ!ym!ܕ\\bp!ܔܕ{BBڕTb^@@ A)@A\"@@!Aeb#^` ÉY !C\"*~ b \n   \n#." [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-add] 7 "\ Search for REGEXP, starting from point, and select node it's found in." "sSearch (regexp): "]) (byte-code "MM" [Info-extract-pointer #[(name &optional errorname) "eby P#Ǖb  =? !P!*" [1 t case-fold-search re-search-backward name ":" nil 0 Info-following-node-name errorname error "Node has no " capitalize] 4] Info-following-node-name #[(&optional allowedchars) "w` Q! Pw!gwax`{" [" " nil looking-at "[" allowedchars "^, \n" "]" "(" "^)" " "] 5]] 2) (fset 'Info-next #[(&optional n) "W[!SY!!p" [n 1 0 Info-prev Info-goto-node Info-extract-pointer "next"] 3 "\ Go to the next node of this node. A positive or negative prefix argument moves by multiple nodes." "p"]) (fset 'Info-prev #[(&optional n) "W[!SY\"!o" [n 1 0 Info-next Info-goto-node Info-extract-pointer "prev[ious]*" "previous"] 4 "\ Go to the previous node of this node. A positive or negative prefix argument moves by multiple nodes." "p"]) (fset 'Info-up #[(&optional n) "SY!!pt " [n 1 0 Info-goto-node Info-extract-pointer "up" Info-restore-point] 3 "\ Go to the superior node of this node. A positive prefix argument moves up several times." "p"]) (fset 'Info-last #[(&optional n) "\n!\nGT _\\ )VS\n8\n `#SY\nA\n@Co\nA @!)!)" [n 1 Info-history error "This is the first Info node you looked at" len 100 0 entry Info-history-add Info-current-file Info-current-node nil Info-keeping-history Info-goto-node Info-restore-history-entry] 4 "\ Go back to the last node visited. With a prefix argument, go to Nth most recently visited node. History is circular; after oldest node, history comes back around to most recent one. Argument can be negative to go through the circle in the other direction. (In other words, `l' is like \"undo\" and `C-u - l' is like \"redo\".)" "p"]) (fset 'Info-directory #[nil "\"" [Info-find-node "dir" "top"] 3 "\ Go to the Info directory node." nil]) (fset 'Info-follow-reference #[(footnotename) "\n !R #OTOQ\\[eb# \"ҕb\" ) # O ˕OQ \\\\ !ω," [nil "\\*" Info-footnote-tag " " regexp-quote footnotename str i beg target string-match 0 "\\([ \n]+\\)" 10 re-search-forward t error "No cross-reference named %s" 1 Info-extract-menu-node-name "Bad format cross reference" "[ \n]+" Info-goto-node Info-in-cross-reference] 8 "\ Follow cross reference named NAME to the node it refers to. NAME may be an abbreviation of the reference name." (byte-code "`eb \"#̔`S{ ͔ W `X \n# \nO ͕OQ\nTf =  BB2) Q$֘ CC)!." [t nil i str start-point default completions completion-ignore-case re-search-forward format "\\*%s[ \n ]*\\([^:]*\\):" Info-footnote-tag 1 0 string-match "[ \n ]+" " " completing-read "Follow reference named: (" ") " "Follow reference named: " item "" error "No cross-references in this node"] 7)]) (byte-code "MMM" [Info-next-reference #[(n) "\n\"`Web#Tqeb#S)USYmu#eb# b!Ȕb!MTG+" [format "\\*%s[ \n ]*\\([^:]*\\):\\|^\\* .*:\\|<<.*>>" Info-footnote-tag nil old-pt case-fold-search pat n 0 re-search-forward t "^\\* Menu:" 1 error "No cross references in this node" looking-at "\\* Menu:"] 5 nil "p"] Info-prev-reference #[(n) " [!" [Info-next-reference n] 2 nil "p"] Info-extract-menu-node-name #[(&optional errmessage multi-line) "w`wu! `S{w\n˪! \n# \nIp +" [" \n" nil i str beg "^:" 1 looking-at ":" Info-following-node-name multi-line "^., " "^., \n" string-match "\n" 32] 4]] 2) (fset 'Info-menu #[(menu-item) "\n!#" [Info-goto-node Info-extract-menu-item menu-item nil t] 4 "\ 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#!)# \nW͔\n X @@ΔΕ{ΔB BU \nW\n`X @@) \" $)՘b [W-C" [nil last p default completions t case-fold-search search-forward "\n* menu:" error "No menu in this node" re-search-forward "\n\\* \\([^: \n]*\\):" 0 1 item completion-ignore-case completing-read format "Menu item (default %s): " "Menu item: " ""] 6)]) (byte-code "MM" [Info-extract-menu-item #[(menu-item &optional noerror) "eb#)Q#P#yu  ?! ?!)" [t case-fold-search search-forward "\n* menu:" nil "\n* " menu-item ":" 0 2 Info-extract-menu-node-name noerror error "No such item in menu" "No menu in this node"] 4] Info-extract-menu-counting #[(count &optional noerror noindex) "eb# ?\"?)\n$\n#y  ?! ?!)" [t case-fold-search search-forward "\n* menu:" nil noindex string-match "\\" Info-current-node "\n* " count Info-extract-menu-node-name noerror error "Too few items in menu" "No menu in this node"] 5]] 2) (fset 'Info-nth-menu-item #[(n) " ZW!!#" [n last-command-char 48 1 error "Index must be at least 1" Info-goto-node Info-extract-menu-counting nil t] 4 "\ Go to the node of the Nth menu item." "P"]) (fset 'Info-last-menu-item #[nil "!#" [Info-goto-node Info-extract-menu-counting nil t] 4 "\ Go to the node of the tenth menu item." nil]) (fset 'Info-top #[nil "!" [Info-goto-node "Top"] 2 "\ Go to the Top node of this file." nil]) (fset 'Info-end #[nil "  \"lj#\n!k\"˚ Џ)*" [Info-top nil node Info-keeping-history Info-last-menu-item Info-extract-pointer "next" t Info-extract-menu-counting Info-goto-node "up" "Top" "" executing-kbd-macro err (Info-global-next 10000) ((error))] 4 "\ Go to the final node in this file." nil]) (fset 'Info-global-next #[(&optional n) "W[!SY\"\" \" !ˉ#! !\"\" ֚P\" !Y!)!F +)" [n 1 0 Info-global-prev nil node string-match "^Top$" Info-current-node Info-extract-pointer "next" t Info-extract-menu-item Info-goto-node Info-extract-menu-counting message "Going down..." Info-keeping-history "" ups orignode "up" "Top" "Going%s..." " up" error "Last node in file" Info-next] 4 "\ Go to the next node in this file, traversing node structure as necessary. This works only if the Info file is structured as a hierarchy of nodes. A positive or negative prefix argument moves by multiple nodes." "p"]) (fset 'Info-page-next #[(&optional n) "W[!SYd! \"h c" [n 1 0 Info-page-prev pos-visible-in-window-p Info-global-next message "Node: %s" Info-current-node scroll-up] 3 "\ Scroll forward one screenful, or go to next global node. A positive or negative prefix argument moves by multiple screenfuls." "p"]) (fset 'Info-scroll-next #[(arg) "d!= =Uɪ!!\" ͉!" [Info-auto-advance pos-visible-in-window-p t last-command this-command message "Hit %s again to go to next node" last-command-char 0 "mouse button" key-description char-to-string Info-page-next Info scroll-up arg] 5 nil "P"]) (fset 'Info-global-prev #[(&optional n) "W[!SY\"\"   \"!! !ԉƉ#P\"!d+*" [n 1 0 Info-global-next Info-extract-pointer "up" t "prev[ious]*" prevnode upnode string-match "^Top$" Info-current-node error "First node in file" message "Going up..." Info-up Info-goto-node "" nil node Info-keeping-history downs Info-extract-menu-counting "Going%s..." " down"] 4 "\ Go to the previous node in this file, traversing structure as necessary. This works only if the Info file is structured as a hierarchy of nodes. A positive or negative prefix argument moves by multiple nodes." "p"]) (fset 'Info-page-prev #[(&optional n) "W[!SYe! \"!d!a v W" [n 1 0 Info-page-next pos-visible-in-window-p Info-global-prev message "Node: %s" Info-current-node sit-for scroll-up scroll-down] 3 "\ Scroll backward one screenful, or go to previous global node. A positive or negative prefix argument moves by multiple screenfuls." "p"]) (fset 'Info-scroll-prev #[(arg) "e!= =Uɪ!!\" ͉!" [Info-auto-advance pos-visible-in-window-p t last-command this-command message "Hit %s again to go to previous node" last-command-char 0 "mouse button" key-description char-to-string Info-page-prev Info scroll-down arg] 5 nil "P"]) (fset 'Info-index #[(topic) " !# \n \"!#!#!)הb ٚ !* ٚeb#הו{ߔߕ{{P!FB\\\"\"!)> \" \"B\"e+@,!,," [Info-current-node nil format "\n\\* \\([^\n:]*%s[^\n:]*\\):[ ]*%s" regexp-quote topic "\\([^.\n]*\\)\\.[ t]*\\([0-9]*\\)" node pattern rnode orignode message "Searching index for `%s'..." Info-goto-node "Top" t case-fold-search search-forward "\n* menu:" error "No index" re-search-forward "\n\\* \\(.*\\\\)" 1 Info-fontify "" 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-first-alternative Info-index-next 0] 8 "\ 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: "]) (fset 'Info-index-next #[(num) "! W G\\t VA@C So@A@!@8V@8yy@@!\"#!\"#\"#\"ӔO\"##yeb)@@@8AA@=تGSA>GZ\"$" [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 "^`%s[ ']" search-forward "`%s'" string-match "\\`.*\\( (.*)\\)\\'" 1 message "Found \"%s\" in %s. %s" 2 Info-index-first-alternative "(Press `,' to repeat)" "(Press `,' for %d more)" "(Only match)"] 10 "\ Go to the next matching index item from the last `i' command." "p"]) (byte-code "‡" ["lemacs" Info-emacs-info-file-name nil] 1) (fset 'Info-emacs-command #[(command) "!" [((byte-code " \n\"!!" [info Info-find-node Info-emacs-info-file-name "Top" Info-index symbol-name command] 3)) pop-to-buffer "*info*"] 2 "\ Look up an Emacs command in the Emacs manual in the Info system. This command is designed to be used whether you are already in Info or not." "CLook up command in Emacs manual: "]) (fset 'Info-goto-emacs-command-node #[(key) " !" [Info-emacs-command key] 2 "\ Look up an Emacs command in the Emacs manual in the Info system. This command is designed to be used whether you are already in Info or not." "CLook up command in Emacs manual: "]) (fset 'Info-goto-emacs-key-command-node #[(key) " != \n !\"t\n=!\n!)" [key-binding key command keyboard-quit error "%s is undefined" key-description execute-extended-command call-interactively Info-goto-emacs-command-node] 5 "\ Look up an Emacs key sequence in the Emacs manual in the Info system. This command is designed to be used whether you are already in Info or not." "kLook up key in Emacs manual: "]) (fset 'Info-emacs-key #[(key) " != t !=!Ƌ!" [key-binding key keyboard-quit execute-extended-command call-interactively Info-goto-emacs-command-node ((byte-code " \n\" ! \" O OQ \" OP \" OP) !" [info Info-find-node Info-emacs-info-file-name "Top" key-description key nil p string-match "[@{}]" 0 "@" "^ESC " "M-" 4 "^M-C-" "C-M-" Info-index] 5)) pop-to-buffer "*info*"] 2 "\ Look up an Emacs key sequence in the Emacs manual in the Info system. This command is designed to be used whether you are already in Info or not." "kLook up key in Emacs manual: "]) (fset 'Info-elisp-ref #[(func) "!" [((byte-code " Ï!!" [info err (Info-find-node "elisp" "Top") ((error (Info-find-node "lispref" "Top"))) Info-index symbol-name func] 3)) pop-to-buffer "*info*"] 2 "\ Look up an Emacs Lisp function in the Elisp manual in the Info system. This command is designed to be used whether you are already in Info or not." (byte-code "  \"\" $ʚ !+C" [function-called-at-point t nil val enable-recursive-minibuffers fn completing-read format "Look up Emacs Lisp function%s: " " (default %s)" "" obarray fboundp intern] 7)]) (fset 'Info-reannotate-node #[nil " \"\"p !! !˰ !` eb#  ! eb#ڔT#`|!b!+ @qeb##{!`$%#`$q  ! %Udbeb%y c @$#!. A) b,)" [delq nil mapcar get-file-buffer Info-annotations-path bufs "\\(" regexp-quote file-name-nondirectory Info-current-file "\\|" "\\)" Info-current-node savept node file ibuf search-forward "\n------ NOTE:\n" t buffer-modified-p top bufmod buffer-read-only copy-marker "\n------ NOTE:" 0 "\n------\n" backward-char 1 set-buffer-modified-p re-search-forward format "------ *File: *%s *Node: *%s *Line: *\\([0-9]+\\) *\n" string-to-int 2 bot line "------ NOTE:\n" insert-buffer-substring] 7]) (defvar Info-annotate-map nil "\ Local keymap used within `a' command of Info.") (byte-code "\n!#" [Info-annotate-map copy-keymap text-mode-map define-key "" Info-cease-annotate] 4) (defun Info-annotate-mode nil "\ Major mode for adding an annotation to an Info node. Like text mode with the addition of Info-cease-annotate which returns to Info mode for browsing. \\{Info-annotate-map}") (fset 'Info-annotate #[(arg) "SW\n8U#C\nG\" ! ɉ @\" Al d`\\^b# #)`W!! {!$` Z]!e`\" ! #$%yodbc!$!+ +\n8!!/!13eb#)byu $db! $c`  b$!)." [arg 0 Info-annotations-path read-file-name "Annotations file: " "~/" "~/.infonotes" error "File number must be in the range from 1 to %d" nil file-name-nondirectory Info-current-file Info-directory-list pt where d file which expand-file-name 13 search-backward "------ NOTE:\n" t search-forward "\n------\n" format "File: *%s *Node: *%s *Line:.*\n%s" regexp-quote Info-current-node looking-at "[ \n]*\\'" count-lines line node buffer-modified-p top bufmod buffer-read-only "------ NOTE:\n------\n" backward-char 20 set-buffer-modified-p current-window-configuration Info-window-configuration pop-to-buffer find-file-noselect use-local-map Info-annotate-map Info-annotate-mode major-mode "Info Annotate" mode-name re-search-forward 1 "\n------ File: %s Node: %s Line: %d\n" "\nPress C-c C-c to save and return to Info.\n"] 8 "\ Add a personal annotation to the current Info node. Only you will be able to see this annotation. Annotations are stored in the file ~/.infonotes by default. If point is inside an existing annotation, edit that annotation. A prefix argument specifies which annotations file (from Info-annotations-path) is to be edited; default is 1." "p"]) (byte-code "MM" [Info-cease-annotate #[nil " eb#)ƔTƕ|keb#)Ɣƕ|l !) ! " [buffer-modified-p bufmod re-search-forward "\n\n?Press .* to save and return to Info.\n" nil t 0 "\n------ File:.*Node:.*Line:.*\n+------\n" set-buffer-modified-p save-buffer fundamental-mode bury-buffer one-window-p delete-window info Info-current-annotation-completions set-window-configuration Info-window-configuration Info-reannotate-node] 4 nil nil] Info-bookmark #[(arg tag) " ! \" \" ƔƕO`!`Z b#ДЕ| b њ ӱ* " [Info-annotate arg string-match "^\"\\(.*\\)\"$" tag "^<<\\(.*\\)>>$" 1 pt search-forward "\n------\n" 8 end re-search-forward "<<[^>\n]*>>" nil t 0 "" "<<" ">>" Info-cease-annotate] 4 nil "p\nsBookmark name: "]] 2) (fset '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]) (fset 'Info-undefined #[nil " " [ding] 1 "\ Make command be undefined in Info." nil]) (fset 'Info-help #[nil " WŪ\"" [delete-other-windows Info-find-node "info" window-height 23 "Help-Small-Screen" "Help"] 4 "\ Enter the Info tutorial." nil]) (fset 'Info-summary #[nil "" [((byte-code "! !cebʼnd!?ʪ!   !U Ū) R*!!" [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" next-command-event e event-to-character 32 unread-command-event scroll-up "" bury-buffer] 2))] 1 "\ Display a brief summary of all Info commands." nil]) (fset 'Info-get-token #[(pos start all &optional errorstring) "eb!\nb e\nZ]# d\n\\^#ʔ\nXʕ\nVeʔ\nXʕ\nV˔˕{ ƪ = ƪ \n#*" [re-search-backward "\\`" pos 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."]) (fset 'Info-follow-clicked-node #[(event) " ! !! !eT]!!" [event-point event Info-follow-nearest-node select-window event-window error "click on a cross-reference to follow"] 4 "\ Follow a node reference near clicked point. Like M, F, N, P or U command. At end of the node's text, moves to the next node." "@e"]) (fset 'Info-follow-clicked-node-or-track #[(event) " ! !! !eT]! !" [event-point event Info-follow-nearest-node select-window event-window mouse-track] 4 "\ Follow a node reference near clicked point, or just set point. Works like either `Info-follow-clicked-node' or `mouse-track', depending on context." "@e"]) (fset 'Info-find-nearest-node #[(point) "\neU\n\"\"# DD\n# FD\n# DD\n# DD\n# DD\n#DD\n# DD\n# DD\nb!)#DD)" [nil node point Info-get-token format "\\*%s[ \n]" Info-footnote-tag "\\*%s[ \n]\\([^:]*\\):" "Following cross-reference %s..." Info-follow-reference "\\* " "\\* \\([^:]*\\)::" "Selecting menu item %s..." Info-goto-node t "\\* \\([^:]*\\):" Info-menu "Up: " "Up: \\([^,\n ]*\\)" "Going up..." "Next: " "Next: \\([^,\n ]*\\)" "Next node..." "File: " "File: \\([^,\n ]*\\)" "Top node..." "Top" "Prev[ious]*: " "Prev[ious]*: \\([^,\n ]*\\)" "Previous node..." "Node: " "Node: \\([^,\n ]*\\)" "Reselecting %s..." looking-at "[ \n]*\\'" Info-in-cross-reference "Back to last node..." (Info-last) (Info-global-next)] 6]) (fset 'Info-follow-nearest-node #[(point) " !??\n@\nA@A@\"\nA@!)" [Info-find-nearest-node point data message eval t] 4 "\ Follow a node reference near point. Like M, F, N, P or U command. At end of the node's text, moves to the next node." "d"]) (fset 'Info-indicated-node #[(event) "" [nil (byte-code " ! !!q ! !A@A@A@+" [eventp event window-buffer event-window event-point Info-find-nearest-node data name] 4) ((error))] 3]) (defvar Info-mode-map nil "\ Keymap containing Info commands.") (byte-code "{ !###################################@#AB#CD#EF#GH#IJ#KL#MN#OP#QR#ST#UV#WN#XY#Z[#\\]#^_`a#" [Info-mode-map make-keymap suppress-keymap define-key "." beginning-of-buffer " " Info-scroll-next "1" Info-nth-menu-item "2" "3" "4" "5" "6" "7" "8" "9" "0" Info-last-menu-item "?" Info-summary "a" Info-annotate "b" "d" Info-directory "e" Info-edit "f" Info-follow-reference "g" Info-goto-node "h" Info-help "i" Info-index "j" Info-goto-bookmark "k" Info-emacs-key "l" Info-last "m" Info-menu "n" Info-next "p" Info-prev "q" Info-exit "r" "s" Info-search "t" Info-top "u" Info-up "v" Info-visit-file "x" Info-bookmark "<" ">" Info-end "[" Info-global-prev "]" Info-global-next "{" Info-page-prev "}" Info-page-next "=" Info-restore-point "!" Info-select-node "@" Info-follow-nearest-node "," Info-index-next "*" Info-elisp-ref " " Info-next-reference " " Info-prev-reference " " "" Info-scroll-prev button2 Info-follow-clicked-node button3 Info-select-node-menu put info-mode mode-class special] 4) (fset 'Info-mode #[nil " !! \n  !!!!!!!!\"!!!!!!!!\"\"!\"! " [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-current-file-completions Info-current-annotation-completions Info-index-alternatives Info-history string-match "^19" emacs-version fboundp find-face info-node make-face info-xref face-differs-from-default-p bold-italic copy-face bold run-hooks Info-mode-hook Info-set-mode-line] 3 "\ Info mode is for browsing through the Info documentation tree. Documentation in Info is divided into \"nodes\", each of which discusses one topic and contains references to other nodes which discuss related topics. Info has commands to follow the references and show you other nodes. h Invoke the Info tutorial. q Quit Info: return to the previously selected file or buffer. Selecting other nodes: n Move to the \"next\" node of this node. p Move to the \"previous\" node of this node. m Pick menu item specified by name (or abbreviation). 1-9, 0 Pick first..ninth, last item in node's menu. Menu items select nodes that are \"subsections\" of this node. u Move \"up\" from this node (i.e., from a subsection to a section). f or r Follow a cross reference by name (or abbrev). Type `l' to get back. RET Follow cross reference or menu item indicated by cursor. i Look up a topic in this file's Index and move to that node. , (comma) Move to the next match from a previous `i' command. l (letter L) Move back to the last node you were in. Moving within a node: Space Scroll forward a full screen. DEL Scroll backward. b Go to beginning of node. Meta-> Go to end of node. TAB Go to next cross-reference. Meta-TAB Go to previous ref. Mouse commands: Left Button Set point. Middle Button Click on a highlighted node reference to go to it. Right Button Pop up a menu of applicable Info commands. Advanced commands: g Move to node, file, or annotation tag specified by name. Examples: `g Rectangles' `g (Emacs)Rectangles' `g Emacs'. v Move to file, with filename completion. k Look up a key sequence in Emacs manual (also C-h C-k at any time). * Look up a function name in Emacs Lisp manual (also C-h C-f). d Go to the main directory of Info files. < or t Go to Top (first) node of this file. > Go to last node in this file. [ Go to previous node, treating file as one linear document. ] Go to next node, treating file as one linear document. { Scroll backward, or go to previous node if at top. } Scroll forward, or go to next node if at bottom. = Restore cursor position from last time in this node. a Add a private note (annotation) to the current node. x, j Add, jump to a bookmark (annotation tag). s Search this Info file for a node containing the specified regexp. e Edit the contents of the current node."]) (defvar Info-edit-map nil "\ Local keymap used within `e' command of Info.") (byte-code " \" \"##" [Info-edit-map make-sparse-keymap set-keymap-name set-keymap-parent 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}") (fset 'Info-edit #[nil "! !! !!!" [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]) (fset 'Info-cease-edit #[nil " ! !  !! !" [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]) (byte-code "MM" [Info-highlight-region #[(start end face) " \n\" \" # #)" [make-extent start end extent set-extent-face face set-extent-property info t highlight] 4] Info-fontify-node #[nil " !Qped%eb!͕b!͕bДЕ#meb#͔SfUpДЕ#feb##ДЕ#o!," [t "\\*" regexp-quote Info-footnote-tag "[ \n ]*\\([^:]*\\):" nil extent xref-regexp case-fold-search map-extents #[(x y) " !" [delete-extent x] 2] looking-at "^File: [^,: ]+,?[ ]+" 0 "[ ]*[^:, \n]+:[ ]+\\([^:, \n]+\\),?" Info-highlight-region 1 info-xref re-search-forward 34 search-forward "\n* menu:" "^\\* \\([^: \n]*\\):" info-node set-buffer-modified-p] 6]] 2) (fset 'Info-select-node-menu #[(event) "\n!!!Qȉ \n   eb!!!E\n!  A@ #C####{   #   O OQ  T ]  B E  GV eb##{ \nB\nj\n\nGV\n) E \"\nE\n\"8!. " [select-window event-window event t "\\*" regexp-quote Info-footnote-tag "[ \n ]*\\([^:]*\\):" nil in subnodes xrefs text i menu next-p prev-p up-p xref-regexp case-fold-search looking-at ".*\\bNext:" ".*\\bPrev:" ".*Up:" "Info" "Info Commands:" "----" Info-indicated-node vector ["Goto Info Top-level" Info-directory t] "Next Node" Info-next "Previous Node" Info-prev "Parent Node (Up)" Info-up ["Goto Node..." Info-goto-node t] ["Goto Last Visited Node" Info-last t] re-search-forward 1 string-match "[ \n ]+" 0 " " 21 20 (more) search-forward "\n* menu:" "^\\* \\([^: \n]*\\):" (more) "Cross-References:" mapcar #[(xref) "=‡D#" [xref more "...more..." vector Info-follow-reference t] 4] "Sub-Nodes:" #[(node) "=‡D#" [node more "...more..." vector Info-menu t] 4] popup-menu-titles popup-menu] 12 "\ Pops up a menu of applicable Info commands." "e"]) (byte-code "!!" [provide info run-hooks Info-load-hook] 2)