home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / texinfo-3.7-bin.lha / lib / emacs / site-lisp / info.elc < prev    next >
Text File  |  1996-10-12  |  41KB  |  532 lines

  1.  
  2. (defvar Info-history nil "\
  3. List of info nodes user has visited.
  4. Each element of list is a list (FILENAME NODENAME BUFFERPOS).")
  5.  
  6. (defvar Info-enable-edit nil "\
  7. *Non-nil means the \\<Info-mode-map>\\[Info-edit] command in Info can edit the current node.
  8. This is convenient if you want to write info files by hand.
  9. However, we recommend that you not do this.
  10. It is better to write a Texinfo file and generate the Info file from that,
  11. because that gives you a printed manual as well.")
  12.  
  13. (defvar Info-enable-active-nodes t "\
  14. Non-nil allows Info to execute Lisp code associated with nodes.
  15. The Lisp code is executed when the node is selected.")
  16.  
  17. (defvar Info-fontify t "\
  18. *Non-nil enables highlighting and fonts in Info nodes.")
  19.  
  20. (defvar Info-fontify-maximum-menu-size 30000 "\
  21. *Maximum size of menu to fontify if `Info-fontify' is non-nil.")
  22.  
  23. (defvar Info-directory-list (let ((path (getenv "INFOPATH")) (path-separator (if (boundp (quote path-separator)) path-separator (if (eq system-type (quote ms-dos)) ";" ":"))) (source (expand-file-name "info/" source-directory)) (sibling (if installation-directory (expand-file-name "info/" installation-directory))) alternative) (if path (let ((list nil) idx) (while (> (length path) 0) (setq idx (or (string-match path-separator path) (length path)) list (cons (substring path 0 idx) list) path (substring path (min (1+ idx) (length path))))) (nreverse list)) (if (and sibling (file-exists-p sibling)) (setq alternative sibling) (setq alternative source)) (if (or (member alternative Info-default-directory-list) (not (file-exists-p alternative)) (if (or (eq system-type (quote ms-dos)) (eq system-type (quote windows-nt))) nil (not (string= exec-directory (expand-file-name "lib-src/" installation-directory))))) Info-default-directory-list (reverse (cons alternative (cdr (reverse Info-default-directory-list))))))) "\
  24. List of directories to search for Info documentation files.
  25. nil means not yet initialized.  In this case, Info uses the environment
  26. variable INFOPATH to initialize it, or `Info-default-directory-list'
  27. if there is no INFOPATH variable in the environment.
  28. The last element of `Info-default-directory-list' is the directory
  29. where Emacs installs the Info files that come with it.
  30.  
  31. If you run the Emacs executable from the `src' directory in the Emacs
  32. source tree, the `info' directory in the source tree is used as the last
  33. element, in place of the installation Info directory.  This is useful
  34. when you run a version of Emacs without installing it.")
  35.  
  36. (defvar Info-additional-directory-list nil "\
  37. List of additional directories to search for Info documentation files.
  38. These directories are not searched for merging the `dir' file.")
  39.  
  40. (defvar Info-current-file nil "\
  41. Info file that Info is now looking at, or nil.
  42. This is the name that was specified in Info, not the actual file name.
  43. It doesn't contain directory names or file name extensions added by Info.")
  44.  
  45. (defvar Info-current-subfile nil "\
  46. Info subfile that is actually in the *info* buffer now,
  47. or nil if current info file is not split into subfiles.")
  48.  
  49. (defvar Info-current-node nil "\
  50. Name of node that Info is now looking at, or nil.")
  51.  
  52. (defvar Info-tag-table-marker (make-marker) "\
  53. Marker pointing at beginning of current Info file's tag table.
  54. Marker points nowhere if file has no tag table.")
  55.  
  56. (defvar Info-current-file-completions nil "\
  57. Cached completion list for current Info file.")
  58.  
  59. (defvar Info-index-alternatives nil "\
  60. List of possible matches for last Info-index command.")
  61.  
  62. (defvar Info-standalone nil "\
  63. Non-nil if Emacs was started solely as an Info browser.")
  64.  
  65. (defvar Info-suffix-list (if (eq system-type (quote ms-dos)) (quote ((".gz" . "gunzip") (".z" . "gunzip") (".inf") (""))) (quote ((".info.Z" . "uncompress") (".info.Y" . "unyabba") (".info.gz" . "gunzip") (".info.z" . "gunzip") (".info") (".Z" . "uncompress") (".Y" . "unyabba") (".gz" . "gunzip") (".z" . "gunzip") ("")))) "\
  66. List of file name suffixes and associated decoding commands.
  67. Each entry should be (SUFFIX . STRING); the file is given to
  68. the command as standard input.  If STRING is nil, no decoding is done.
  69. Because the SUFFIXes are tried in order, the empty string should
  70. be last in the list.")
  71.  
  72. (defun info-insert-file-contents-1 (filename suffix) (byte-code "Æ=?ƒ    
  73. P‚LÇ    !ÈÉ    G GÊ#]Ë ÈX…+        GSHÌ=?†4
  74. ÊËO‰ˆ ÈÍ
  75. GZ]^‰ˆ    È    G ZZO
  76. P+‡" [system-type filename suffix sans-exts ext-len ext-left ms-dos file-name-sans-extension 0 - 1 nil 46 3] 7))
  77.  
  78. (defun info-insert-file-contents (filename &optional visit) "\
  79. Insert the contents of an info file in the current buffer.
  80. Do the right thing if the file has been compressed or zipped." (byte-code "    ÅÅÊ !ƒ1…ËÌ@@!ÍP \"?…&A‰ˆ‚ ˆ @A‰‚_…>ÊÎ @@\"!?…IA‰ˆ‚1ˆÎ @@\"@A‰ˆ†_ÏÐ \"ˆÑÒ!…nÓ …nÔ
  81. !…tʼnˆÕ
  82. \"ˆ …”ÅÖ
  83. !†ˆ×ed ÉÉ%*+‡" [tail Info-suffix-list fullname decoder filename nil visit buffer-read-only default-directory t file-exists-p string-match regexp-quote "$" 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 file-name-directory call-process-region] 18))
  84.  
  85. (defun info (&optional file) "\
  86. Enter Info, the documentation browser.
  87. Optional argument FILE specifies the file to examine;
  88. the default is the top-level directory of Info.
  89.  
  90. In interactive use, a prefix argument directs this command
  91. to read a file name from the minibuffer." (interactive (byte-code "… ÃÄÁÁÂ$C‡" [current-prefix-arg nil t read-file-name "Info file name: "] 5)) (byte-code "Áˆ ƒÄÅ ÆQ!‚ÇÈ!ƒÉÈ!‚Ê ‡" [current-prefix-arg nil t file Info-goto-node "(" ")" get-buffer "*info*" pop-to-buffer Info-directory] 5))
  92.  
  93. (defun info-standalone nil "\
  94. Run Emacs as a standalone Info reader.
  95. Usage:  emacs -f info-standalone [filename]
  96. In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself." (byte-code "Á‰ˆ
  97. …ÃÄ
  98. @\"?ƒÅÆǏ‚È ‡" [Info-standalone t command-line-args-left string-match "^-" err (byte-code "Á@!ˆA‰‡" [command-line-args-left info] 3) ((error (byte-code "ÁÂÃÄ!Å=ƒÆ8‚\"!ˆÇ ‡" [err send-string-to-terminal format "%s
  99. " car-safe error 1 save-buffers-kill-emacs] 6))) info] 4))
  100.  
  101. (defun Info-find-node (filename nodename &optional no-going-back) (byte-code "…·ÏÏÏÞ!‰ˆßàá!!â\"ƒ!ĉ‚§ãä\"ƒ,å‚Fæ!ƒ6ç‚FƒDè\"‚F…M ?…¦é@\"‰ˆéà!@\"‰ˆ    …m ?…œêë    @@\"!ƒ‚    ‰‚‘êë
  102. @@\"!…‘
  103. ‰ˆA‰ˆ‚f)ˆA‰ˆ‚G)ˆ ƒ² ‰‚¶ìí\"+ˆ
  104. …À ?…Ï
  105. `E B‰ ˆîï!ˆðp!ˆñ=†áñ ˆò ˆÏ‰ˆóŽ?†´ô
  106. \"†´ÏÏ
  107. ÏÏÏωˆõ ˆÄ=ƒö ‚&÷Ä\"ˆø!‰ˆùÏ!ˆúÏ\"ˆdbˆûü!ˆýþ\"†¤ÿ@ÏÄ#?†¤ÏAB!ˆ`‰ˆŠûC!ˆDE!)ƒŠpFG!qˆðp!ˆÄ‰ˆõ ˆH!ˆúIJ!\"))‚£ú\")ˆÄ=ƒ¯₰‰
  108. )ˆýþ\"ƒÊ‰ˆK ‚=eLM!NQO!…%ŠP!qˆbˆQÏÄ#ƒRp!‰ˆpSï!=?…T!‰‚$ìU\")ˆeVZ]bˆWX*ˆY )ˆeb‡" [filename temp temp-downcase found t dirs Info-additional-directory-list Info-directory-list suffix-list Info-suffix-list Info-current-file no-going-back Info-history Info-current-node major-mode nil buffer-read-only Info-current-subfile Info-current-file-completions Info-index-alternatives buffer-file-name default-directory Info-tag-table-marker nodename pos buf case-fold-search guesspos regexp hist substitute-in-file-name string= downcase file-name-nondirectory "dir" string-match "^\\./" ("./") file-name-absolute-p (nil) append expand-file-name file-exists-p info-insert-file-contents-1 error "Info file %s does not exist" switch-to-buffer "*info*" buffer-disable-undo Info-mode widen ((byte-code "†$    †$
  109. ?†$
  110. @
  111. A‰ˆÅÆ 8Ç 8Ä#ˆÈ 8b)‡" [Info-current-node no-going-back Info-history hist t Info-find-node 0 1 2] 4)) equal erase-buffer Info-insert-dir info-insert-file-contents file-name-directory set-buffer-modified-p set-marker forward-line -8 string-equal "*" search-forward "
  112. End tag table
  113. " search-backward "
  114. Tag table:
  115. " 2 looking-at "(Indirect)
  116. " get-buffer-create " *info tag table*" insert-buffer-substring match-end 0 Info-set-mode-line "Node: *" regexp-quote " *[,    
  117. ]" marker-position marker-buffer re-search-forward read get-buffer Info-read-subfile "No such node: \"%s\"" 1000 foo (byte-code "ÅÆÀÁ#…#ÇÈ!ˆ`ÇÈ!ˆÉ
  118. Á#…ÊËÁ\")ˆ‚ˆÌÍ \"‡" [nil t beg regexp nodename search-forward "
  119. " forward-line 1 re-search-backward throw foo error "No such node: %s"] 8) Info-select-node] 52))
  120.  
  121. (defvar Info-dir-contents nil)
  122.  
  123. (defvar Info-dir-contents-directory nil)
  124.  
  125. (defvar Info-dir-file-attributes nil)
  126.  
  127. (defun Info-insert-dir nil (byte-code "…    …Ö×ØÙ    \"B!ƒc‚- ÉÉÉÉÉɉˆ
  128. …ÌÚÛ
  129. @!!
  130. Ü
  131. \"†ÂÜÝ
  132. !\"†ÂÉ ÛÞ
  133. \"‰ ˆß !†‹Ûà
  134. \"‰ ˆß !†‹Ûá
  135. \"‰ ˆß !†‹Ûâ
  136. \"‰ ˆß ! 
  137. Ý
  138. !BB‰ˆ …ÁŠ †¨ãä!ˆåæ!qˆç !ˆp B  B    B‰)*ˆ
  139. A‰)ˆ‚+ˆ †Ôèé!ˆ @ A‰ˆê!ˆŠqˆ)‰ˆ…V@ŠqˆebˆëìÉÐ#…IÉÉÉíî!ˆ`‰ˆïð!ˆñò!ˆó ‰ˆñðÉô#ˆõ ˆ`‰ˆFB‰+ˆ‚ÿ))ˆA‰ˆ‚íˆëì!ˆíî!ˆöЊñ÷ÉÐ#ˆ`)…·@@ŠÜø!\"†ªëùú!ûQÐ#†ªüýûþ$ˆB‰))ˆA‰ˆ‚t,ˆ…
  140. @@ebˆëÿú!@QÉÐ#ƒåñðÉô#ˆõ ˆþc‚òdbˆüAB#ˆCD@A\")ˆA‰ˆ‚¹ˆ …E @!ˆ A‰ˆ‚ ˆãF!.ˆG ‰ˆ‰‡" [Info-dir-contents Info-dir-file-attributes dirs Info-directory-list buffers buffer others nodes dirs-done nil truename file attrs Info-dir-contents-directory default-directory other t beg nodename end menu-items case-fold-search eval and mapcar (lambda (elt) (let ((curr (file-attributes (car elt)))) (if curr (setcar (nthcdr 4 curr) 0)) (setcar (nthcdr 4 (cdr elt)) 0) (equal (cdr elt) curr))) file-truename expand-file-name member directory-file-name "dir" file-attributes "DIR" "dir.info" "DIR.INFO" message "Composing main Info directory..." generate-new-buffer "info dir" insert-file-contents error "Can't find the info directory node" insert-buffer re-search-forward "^\\* Menu:" forward-line 1 search-backward "
  141. " search-forward "Node: " Info-following-node-name move beginning-of-line ("top") "" downcase "^\\* " regexp-quote "::" insert "* " "
  142. " "
  143. .*
  144. .*Node: " "[,
  145.     ]" "
  146. File: dir    Node: " "
  147.  
  148. * Menu:
  149.  
  150. " apply insert-buffer-substring kill-buffer "Composing main Info directory...done" buffer-string] 47))
  151.  
  152. (defun Info-read-subfile (nodepos) (byte-code "È!qˆebˆÉÊ!ˆÅÅËÌ!ˆÍ΍ˆÏÐ!qˆÑ
  153. \"†=ÅʼnˆÒ ˆÓ ˆÔ
  154. !ˆÕÅ!ˆ
  155. ‰)ˆebˆÉÊ!ˆ    Z`\\*‡" [Info-tag-table-marker lastfilepos lastfilename Info-current-subfile buffer-read-only nil buffer-file-name nodepos marker-buffer search-forward "
  156. " forward-line 2 foo (byte-code "ÇÈ!?…Gl?ƒ@`ÉÉÊË!ˆÌ`ÍZ\"‰ˆÎp!‰ˆÏÐ!ˆ     V…3ÑÒÄ\"ˆ
  157. ‰ˆ    ‰+‚CÏÐ!ˆ‚‡" [beg thisfilepos thisfilename nodepos t lastfilename lastfilepos looking-at "" nil search-forward ": " buffer-substring 2 read forward-line 1 throw foo] 9) get-buffer "*info*" equal widen erase-buffer info-insert-file-contents set-buffer-modified-p] 12))
  158.  
  159. (defun Info-select-node nil (byte-code "ŠÆÇ!ˆÈÉ!ˆÊË!ˆÌ`ÍÎ!ˆ`\"‰ˆÏ ˆÐ ˆÂÑ`ÊÒÂÃ#ƒ@`SÓÔ!…<ÕÖ!bˆ×p!‰ˆ‚Ad\"ˆ …JØ    !ˆ…QÙ ˆÚÛ!))‡" [Info-current-node active-expression nil t Info-enable-active-nodes Info-fontify search-backward "
  160. " forward-line 2 re-search-forward "Node:[     ]*" buffer-substring-no-properties skip-chars-forward "^,    
  161. " Info-set-mode-line beginning-of-line narrow-to-region "
  162. [ ]" looking-at "[
  163.  ]*execute: " match-end 0 read eval Info-fontify-node run-hooks Info-selection-hook] 16))
  164.  
  165. (defun Info-set-mode-line nil (byte-code "à   ƒ Ä    !‚ ÅÆ
  166. †ÅR‰‡" [mode-line-buffer-identification Info-current-file Info-current-node "Info:  (" file-name-nondirectory "" ")"] 5))
  167.  
  168. (defun Info-goto-node (nodename) "\
  169. Go to info node named NAME.  Give just NODENAME or (FILENAME)NODENAME." (interactive (byte-code "ÀÁ!C‡" [Info-read-node-name "Goto node: "] 2)) (byte-code "ĈÄÅÆ    \"ˆÇÈ!ÉÈ!Uƒʂ    ÇË!ÉË!O    ÇÌ!ÉÌ!O‰ˆÅÍ\"
  170. …:Î
  171. O‰)ˆÅÍ    \"
  172. …K    Î
  173. O‰)ˆ …SÏ ˆÐÑÊ\"ƒ`ĂaÑ    Ê\"ƒl҂m    \")‡" [filename nodename trim transient-mark-mode nil string-match "\\s *\\((\\s *\\([^    )]*\\)\\s *)\\s *\\|\\)\\(.*\\)" match-beginning 1 match-end "" 2 3 "\\s *\\'" 0 deactivate-mark Info-find-node equal "Top"] 16))
  174.  
  175. (defun Info-read-node-name-1 (string predicate code) (byte-code "    GÇV…     ÇHÈ=
  176. Ã=ƒ#ƒ    ‚ É     #‚K
  177. Æ=ƒ9ƒ1Â6Ê     #‚K
  178. Ë=…KƒGƂKÌ     \")‡" [no-completion string code nil completion-table predicate t 0 40 try-completion all-completions lambda assoc] 5))
  179.  
  180. (defun Info-read-node-name (prompt &optional default) (byte-code "ÁÆ Ç È\"É Ê\"ƒ†Ë !‚ +‡" [completion-ignore-case t completion-table nodename prompt default Info-build-node-completions completing-read Info-read-node-name-1 equal "" Info-read-node-name] 5))
  181.  
  182. (defun Info-build-node-completions nil (byte-code "†nŠŒÆ !ƒ5Æ !qˆÇ ˆ bˆÈÉÂÄ#…2ÊËÌ!ÍÌ!\"C    B‰ˆ‚‚gÇ ˆebˆÎÏÂÄ#…gÐÌ!ˆ`ÐÌ!ˆÑÒÄ#…bÊËÌ!ÍÌ!\"C    B‰)ˆ‚;))ˆ    ‰)‡" [Info-current-file-completions compl nil Info-tag-table-marker t beg marker-buffer widen re-search-forward "
  183. Node: \\(.*\\)" buffer-substring match-beginning 1 match-end search-forward "
  184. " forward-line re-search-backward "Node: *\\([^,
  185. ]*\\) *[,
  186.     ]"] 18))
  187.  
  188. (defun Info-restore-point (hl) "\
  189. If this node has been visited, restore the point value when we left." (byte-code "…,ÄÅ@8    \"…ÆÇ@8
  190. \"ƒ$È@8bˆÃ‰‚(A‰ˆ‚‡" [hl Info-current-file Info-current-node nil equal 0 string-equal 1 2] 5))
  191.  
  192. (defvar Info-last-search nil "\
  193. Default regexp for \\<Info-mode-map>\\[Info-search] command to search for.")
  194.  
  195. (defun Info-search (regexp) "\
  196. Search for REGEXP, starting from point, and select node it's found in." (interactive "sSearch (regexp): ") (byte-code "Ĉ…Ñ ˆÒ    Ó\"ƒ
  197. ‰‚    ‰ˆÄÄ    `  
  198. ŠŒÔ ˆ ?ƒBÕ    !ˆ`‰‚FÖ×؏))ˆ ?…øَÄÚ!qˆebˆÛÜ!ˆŒÝ`ÛÞ!ˆ`S\"ˆebˆÛß àQ!ˆá ˆm?…¥Õâ!ˆãä!å\\bˆæp!çèä!ãä!\"BB‰ˆãé!Tbˆ‚yˆê!@@A‰)ˆ…æëì@A\"ˆí@@!ˆA‰ˆÕ    ÄÏ#…â`ĉˆ‚¹ˆ ƒñëÓ!‚öîï    C\"))ˆÔ ˆ bˆð ˆñ\"…Ò    \"†!
  199. EB‰.‡" [transient-mark-mode regexp Info-last-search found nil current onode Info-current-node ofile Info-current-file opoint osubfile Info-current-subfile list Info-tag-table-marker t Info-history deactivate-mark equal "" widen re-search-forward err (byte-code "Â!ˆ`‰‡" [regexp found re-search-forward] 3) ((search-failed (byte-code "À‡" [nil] 1))) ((byte-code "?…    !ˆ    bˆÃ ‡" [found opoint Info-read-subfile Info-select-node] 3)) marker-buffer search-forward "
  200. 
  201. Indirect:" narrow-to-region "
  202. " "
  203. " ": " beginning-of-line "\\(^.*\\): [0-9]+$" match-end 1 2 read buffer-substring match-beginning 0 nreverse message "Searching subfile %s..." Info-read-subfile signal search-failed Info-select-node string-equal] 30))
  204.  
  205. (defun Info-extract-pointer (name &optional errorname) (byte-code "ŠebˆÄÅ!ˆÆÇPÁÂ#ƒÈÉ!bˆÊ ‚1 Â=ƒ&Á‚1ËÌÍ †.!P!)‡" [name nil t errorname forward-line 1 re-search-backward ":" match-end 0 Info-following-node-name error "Node has no " capitalize] 8))
  206.  
  207. (defun Info-following-node-name (&optional allowedchars) (byte-code "ÁÂ!ˆÃ`ÄņÆÇQ!…*Á†ÆÈP!ˆÄÈ!…&ÁÉ!ˆ‚ˆÊË!ˆ`\"‡" [allowedchars skip-chars-forward "     " buffer-substring-no-properties looking-at "[" "^,    
  208. " "]" "(" "^)" skip-chars-backward " "] 9))
  209.  
  210. (defun Info-next nil "\
  211. Go to the next node of this node." (interactive) (byte-code "ÀˆÁÂÃ!!‡" [nil Info-goto-node Info-extract-pointer "next"] 3))
  212.  
  213. (defun Info-prev nil "\
  214. Go to the previous node of this node." (interactive) (byte-code "ÀˆÁÂÃÄ\"!‡" [nil Info-goto-node Info-extract-pointer "prev[ious]*" "previous"] 4))
  215.  
  216. (defun Info-up nil "\
  217. Go to the superior node of this node." (interactive) (byte-code "ÁˆÂÃÄ!!ˆÅ!‡" [Info-history nil Info-goto-node Info-extract-pointer "up" Info-restore-point] 4))
  218.  
  219. (defun Info-last nil "\
  220. Go back to the last node visited." (interactive) (byte-code "Ĉ†    ÅÆ!ˆÄÄÄ@@‰ˆ@A@‰ˆ@AA@‰ˆA‰ˆÇ    
  221. \"ˆA‰ˆ b+‡" [Info-history filename nodename opoint nil error "This is the first Info node you looked at" Info-find-node] 4))
  222.  
  223. (defun Info-directory nil "\
  224. Go to the Info directory node." (interactive) (byte-code "ÀˆÁÂÃ\"‡" [nil Info-find-node "dir" "top"] 3))
  225.  
  226. (defun Info-follow-reference (footnotename) "\
  227. Follow cross reference named NAME to the node it refers to.
  228. NAME may be an abbreviation of the reference name." (interactive (byte-code "ÁÊÊÊ`ÊÊÊÊ    ŠÌ ˆ`‰    ˆÍ ˆ`‰ˆebˆÎÏÊÁ#…¿ÐÑÒ!`S\"‰ˆ ?…SÑÓ!X…S`X…SÁ‰ˆ ?…lÑÓ!X…f`    X…lÁ‰ˆÓ‰ˆÔÕ#‰…œÓOÖ×Ó!ÊOQ‰ˆT‰ˆ‚rˆ Á=…§‰ˆ Á=…²‰ˆÊB
  229. B‰ˆ‚*)ˆ †È ‰ˆ
  230. GÒ=…Õ
  231. @@‰ˆ
  232. ƒØ ƒæÙ ÚQ‚çÛ
  233. ÊÁ$ Ü Ý\"ƒù ‚û C)‚Þß!.    ‡" [completion-ignore-case t completions default alt-default start-point str i bol eol nil input end-of-line beginning-of-line re-search-forward "\\*note[ 
  234.     ]*\\([^:]*\\):" buffer-substring match-beginning 1 0 string-match "[ 
  235.     ]+" " " match-end completing-read "Follow reference named: (" ") " "Follow reference named: " equal "" error "No cross-references in this node"] 16)) (byte-code "ʈÊÊÊÏÐ!P ÑÒ#‰…>ÓOÔTÊOQ‰ˆÕ\\‰ˆ‚ˆŠebˆÖÊÁ#†Q×Ø\"ˆÙÓ!Ú\\bˆÛÜÁ\"‰ )ˆÑÔ #‰… ÓOÒ ÝÓ!ÊOQ‰ ˆÞ\\‰ˆ‚bˆß !,‡" [completion-ignore-case t completions default alt-default start-point str i bol eol nil input target beg footnotename "\\*note " regexp-quote string-match " " 0 "[     
  236. ]+" 6 re-search-forward error "No cross-reference named %s" match-beginning 5 Info-extract-menu-node-name "Bad format cross reference" match-end 1 Info-goto-node] 14))
  237.  
  238. (defun Info-extract-menu-node-name (&optional errmessage multi-line) (byte-code "ÅÆ!ˆ`ÇÇÅÈ!ˆÉÊ!ˆËÌ!ƒ Í`S\"‚/ÅÆ!ˆÎ ƒ-ς.Ð!‰ˆÑÒ    
  239. #‰…D    
  240. ÓIˆ‚2ˆÑÔ    \"…XÕÖÄÄ    $‰ˆ‚Eˆ    +‡" [beg str i multi-line t skip-chars-forward "     
  241. " nil "^:" forward-char 1 looking-at ":" buffer-substring-no-properties Info-following-node-name "^.,    " "^.,    
  242. " string-match "
  243. " 32 "  +" replace-match " "] 15))
  244.  
  245. (defun Info-complete-menu-item (string predicate action) (byte-code "Á
  246. Ã=ƒJÃÉÊ!ËQŠqˆebˆÌÍ!ˆÎÃÁ#…=ÏÐÑÒÓ!ÔÓ!\"\"ÒÓ!B B‰ˆ‚)ˆÕ #*‚ª
  247. Á=ƒ’ÃÉÊ!ËQŠqˆebˆÌÍ!ˆÎÃÁ#……ÏÐÑÒÓ!ÔÓ!\"\"ÒÓ!B B‰ˆ‚f)ˆÖ #*‚ªŠqˆebˆÌÍ!ˆÎ×Ê!ØQÃÁ#))‡" [case-fold-search t action nil completions pattern string Info-complete-menu-buffer predicate "
  248. \\* \\(" regexp-quote "[^:    
  249. ]*\\):" search-forward "
  250. * Menu:" re-search-forward format "%s" buffer-substring match-beginning 1 match-end try-completion all-completions "
  251. \\* " ":"] 24))
  252.  
  253. (defun Info-menu (menu-item) "\
  254. Go to node for menu item named (or abbreviated) NAME.
  255. Completion is allowed, and the menu item point is on is the default." (interactive (byte-code "ÂÂ`ŠebˆÊËÂÆ#?…ÌÍ!ˆ`‰ˆ` W…@Š bˆÎ ˆÏÐ Æ#ˆÑÒÓÔÕ!ÖÕ!\"\"‰))ˆÂ?…‚Æp    ×    ƒ]ÑØ    \"‚^ÙÚÂÆ$*‰ˆÛÜ\"…~    ƒz    ‰‚~‰ˆ‚EˆC)-‡" [completions default nil p beg last t item completion-ignore-case Info-complete-menu-buffer search-forward "
  256. * menu:" error "No menu in this node" end-of-line re-search-backward "
  257. \\* \\([^:    
  258. ]*\\):" format "%s" buffer-substring match-beginning 1 match-end completing-read "Menu item (default %s): " "Menu item: " Info-complete-menu-item string= ""] 15)) (byte-code "ˆËÌ
  259. !!‡" [completions default nil p beg last t item completion-ignore-case Info-complete-menu-buffer menu-item Info-goto-node Info-extract-menu-item] 3))
  260.  
  261. (defun Info-extract-menu-item (menu-item) (byte-code "Ã!‰ˆŠebˆÄÅÁÂ#†ÆÇ!ˆÈÉÊQÁÂ#†.ÈÉPÁÂ#†.ÆË!ˆÌ ˆÍÎ!ˆÏ )‡" [menu-item nil t regexp-quote search-forward "
  262. * menu:" error "No menu in this node" re-search-forward "
  263. \\* " ":" "No such item in menu" beginning-of-line forward-char 2 Info-extract-menu-node-name] 10))
  264.  
  265. (defun Info-extract-menu-counting (count) (byte-code "ŠebˆÃÄÀÁ#†ÅÆ!ˆ
  266. ƒ#ÃÇÀÁ
  267. $† ÅÈ!‚0ÃÇÀÁ#…0Àˆ‚#ˆÉ )‡" [nil t count search-forward "
  268. * menu:" error "No menu in this node" "
  269. * " "Too few items in menu" Info-extract-menu-node-name] 8))
  270.  
  271. (defun Info-nth-menu-item nil "\
  272. Go to the node of the Nth menu item.
  273. N is the digit argument used to invoke this command." (interactive) (byte-code "ÀˆÁÂààGSHÄZ!!‡" [nil Info-goto-node Info-extract-menu-counting this-command-keys 48] 6))
  274.  
  275. (defun Info-top-node nil "\
  276. Go to the Top node of this file." (interactive) (byte-code "ÀˆÁÂ!‡" [nil Info-goto-node "Top"] 2))
  277.  
  278. (defun Info-final-node nil "\
  279. Go to the final node in this file." (interactive) (byte-code "ÁˆÄÅ!ˆÁÄÆÁ!!ˆÇÂÂ\"…Áˆ‚ˆÈÉ \"?…*ŠÊËÁÂ#)…6ÄÆÁ!!ˆ‚)‡" [Info-history nil t Info-current-node Info-goto-node "Top" Info-extract-menu-counting Info-forward-node string-match "\\<index\\>" search-forward "
  280. * Menu:"] 10))
  281.  
  282. (defun Info-forward-node (&optional not-down no-error) "\
  283. Go forward one node, considering all nodes as forming one sequence." (interactive) (byte-code "ÁˆebˆÈÉ!ˆ?…ŠÊËÁÂ#)…ÌÍ \"?ƒ*ÎÏÉ!!ˆÂ‚wŠÐÑÁÂ#)ƒ;Ò ˆÂ‚wŠÐÓÁÂ#)…NÔÕÖ×!!Ø\"?ƒk Ù ˆÁÁڎÛÂ\"‰)*)‚wƒtÁ‚wÜÝ!‡" [not-down nil t Info-current-node old-node Info-history success no-error forward-line 1 search-forward "
  284. * menu:" string-match "\\<index\\>" Info-goto-node Info-extract-menu-counting search-backward "next:" Info-next "up:" string-equal downcase Info-extract-pointer "up" "top" Info-up ((byte-code "†    !‡" [success old-node Info-goto-node] 2)) Info-forward-node error "No pointer forward from this node"] 15))
  285.  
  286. (defun Info-backward-node nil "\
  287. Go backward one node, considering all nodes as forming one sequence." (interactive) (byte-code "ňÆÇÁ\"ÆÈÁ\"
  288. …ÉÊ
  289. \"ƒËÌ!‚a
  290. ….?†.ÍÎ!Î
  291. !\"ƒ6Ï ‚aƒ^РˆÅÉÑ \"?…NŠÒÓÅÁ#)…ZÔÕÅ!!ˆ‚?)‚aËÖ!*‡" [prevnode t upnode Info-history Info-current-node nil Info-extract-pointer "prev[ious]*" "up" string-match "(" error "First node in file" string-equal downcase Info-up Info-prev "\\<index\\>" search-forward "
  292. * Menu:" Info-goto-node Info-extract-menu-counting "No pointer backward from this node"] 15))
  293.  
  294. (defun Info-exit nil "\
  295. Exit Info by selecting some other buffer." (interactive) (byte-code "Áˆƒ  ‚ÃÄp!Åp!ˆ!‡" [Info-standalone nil save-buffers-kill-emacs switch-to-buffer other-buffer bury-buffer] 6))
  296.  
  297. (defun Info-next-menu-item nil (interactive) (byte-code "ÀˆŠÂÃ!ˆÄÅÀÁ#ˆÄÆÀÁ#†ÇÈ!ˆÉÊ !)‡" [nil t forward-line -1 search-forward "
  298. * menu:" "
  299. * " error "No more items in menu" Info-goto-node Info-extract-menu-node-name] 7))
  300.  
  301. (defun Info-last-menu-item nil (interactive) (byte-code "ÁˆŠÃÄ!ˆŠÅÆÁÂ#…`)…ÅÇÂ#†\"ÈÉ!)ˆÊŠËÌ!bˆÍ )!)‡" [beg nil t forward-line 1 search-backward "
  302. * menu:" "
  303. * " error "No previous items in menu" Info-goto-node match-end 0 Info-extract-menu-node-name] 8))
  304.  
  305. (defmacro Info-no-error (&rest body) (byte-code "ÂÀÃÄ    Å\"BÆF‡" [nil body condition-case progn append (t) (error nil)] 6))
  306.  
  307. (defun Info-next-preorder nil "\
  308. Go to the next subnode or the next node, or go up a level." (interactive) (byte-code "ÁˆÁÂφÁÄŏ†ÁÆǏƒdb‚ÈÉ!‡" [t nil (byte-code "Á ˆÀ‡" [t Info-next-menu-item] 2) ((error (byte-code "À‡" [nil] 1))) (byte-code "Á ˆÀ‡" [t Info-next] 2) ((error (byte-code "À‡" [nil] 1))) (byte-code "Á ˆÀ‡" [t Info-up] 2) ((error (byte-code "À‡" [nil] 1))) error "No more nodes"] 3))
  309.  
  310. (defun Info-last-preorder nil "\
  311. Go to the last node, popping up a level if there is none." (interactive) (byte-code "ÀˆÀÂσÄÅ!‚9ÀÆǏƒdbˆÄÅ!‚9ÀÈɏƒ6ebˆÊËÀÁ#†3db‚9ÌÍ!‡" [nil t (byte-code "Á ˆdbˆÀ‡" [t Info-last-menu-item] 2) ((error (byte-code "À‡" [nil] 1))) recenter -1 (byte-code "Á ˆÀ‡" [t Info-prev] 2) ((error (byte-code "À‡" [nil] 1))) (byte-code "Á ˆÀ‡" [t Info-up] 2) ((error (byte-code "À‡" [nil] 1))) search-forward "
  312. * Menu:" error "No previous nodes"] 6))
  313.  
  314. (defun Info-scroll-up nil "\
  315. Scroll one screenful forward in Info, considering all nodes as one sequence.
  316. Once you scroll far enough in a node that its menu appears on the screen,
  317. the next scroll moves into its first subnode.  When you scroll past
  318. the end of a node, that goes to the next node or back up to the parent node." (interactive) (byte-code "ÁˆÃ eW†Ã dV…ÄÅ `\"ˆŠebˆÆÇÁÂ#ƒ&`‚'d)àW†3È!ƒ;É ‚=Ê )‡" [virtual-end nil t window-start set-window-start selected-window search-forward "
  319. * Menu:" pos-visible-in-window-p Info-next-preorder scroll-up] 10))
  320.  
  321. (defun Info-scroll-down nil "\
  322. Scroll one screenful back in Info, considering all nodes as one sequence.
  323. Within the menu of a node, this goes to its last subnode.
  324. When you scroll past the beginning of a node, that goes to the
  325. previous node or back up to the parent node." (interactive) (byte-code "ÁˆÃ eW†Ã dV…ÄÅ `\"ˆŠebˆÆÇÁÂ#)†(Èe!ƒ0É ‚2Ê )‡" [virtual-end nil t window-start set-window-start selected-window search-forward "
  326. * Menu:" pos-visible-in-window-p Info-last-preorder scroll-down] 9))
  327.  
  328. (defun Info-next-reference nil "\
  329. Move cursor to the next cross-reference or menu item in the node." (interactive) (byte-code "ˆÄ`m†ÅÆ!ˆÇÂÃ#†'ebˆÇÂÃ#†'    bˆÈÉ!ˆÊË!bˆÌÍ!…5Π*‡" [pat old-pt nil t "\\*note[ 
  330.     ]*\\([^:]*\\):\\|^\\* .*:" forward-char 1 re-search-forward error "No cross references in this node" match-beginning 0 looking-at "\\* Menu:" Info-next-reference] 8))
  331.  
  332. (defun Info-prev-reference nil "\
  333. Move cursor to the previous cross-reference or menu item in the node." (interactive) (byte-code "ˆÄ`ÅÂÃ#†dbˆÅÂÃ#†    bˆÆÇ!ˆÈÉ!bˆÊË!…-Ì *‡" [pat old-pt nil t "\\*note[ 
  334.     ]*\\([^:]*\\):\\|^\\* .*:" re-search-backward error "No cross references in this node" match-beginning 0 looking-at "\\* Menu:" Info-prev-reference] 7))
  335.  
  336. (defun Info-index (topic) "\
  337. Look up a string in the index for this file.
  338. The index is defined as the first node in the top-level menu whose
  339. name contains the word \"Index\", plus any immediately following
  340. nodes whose names also contain the word \"Index\".
  341. If there are no exact matches to the specified topic, this chooses
  342. the first match which is a case-insensitive substring of a topic.
  343. Use the `,' command to see the other matches.
  344. Give a blank topic name to go to the Index node itself." (interactive "sIndex topic: ") (byte-code "È    ÃÍÎÏ!\"ÃÐÑ!ˆÒÓÃÇ#†ÔÕ!ˆÖ×ÃÇ#†+ÔÕ!ˆØÙ!bˆÃÐÚ !)ˆÛÜ\"†ÙÃÃÃà 
  345.     ebˆÖ ÃÇ#…€ÝØÙ!ÞÙ!\"ÝØß!Þß!\"    àáÝØâ!Þâ!\"P!F    B‰    ˆ‚PˆãäÇ\"‰…åæ\"…›Ð!ˆ‚Mˆ    †¨ç ˆÔè\"ˆé    \"‰ …È 
  346. B
  347. ê     \"‰    ˆ‚©ˆë
  348. ì    !\"‰ ˆíî!,,‡" [orignode Info-current-node rnode nil pattern topic node t Info-history matches exact found Info-index-alternatives format "
  349. \\* \\([^
  350. :]*%s[^
  351. :]*\\):[     ]*\\([^.
  352. ]*\\)\\.[     ]*\\([0-9]*\\)" regexp-quote Info-goto-node "Top" search-forward "
  353. * menu:" error "No index" re-search-forward "
  354. \\* \\(.*\\<Index\\>\\)" match-beginning 1 Info-extract-menu-node-name equal "" buffer-substring match-end 2 string-to-int "0" 3 Info-extract-pointer "next" string-match "\\<Index\\>" Info-last "No \"%s\" in index" assoc delq nconc nreverse Info-index-next 0] 33))
  355.  
  356. (defun Info-index-next (num) "\
  357. Go to the next matching index item from the last `i' command." (interactive "p") (byte-code "Ȇ    ÅÆ!ˆ    ÇW…    G\\‰ˆ‚
  358. ˆ    ÇV…1ÈA@C\"    S‰ˆ‚ˆÉÊ@8!ˆË@8ÇVƒKÌË@8!‚’ÌË!ˆ@@ÍÎÏÐ
  359. !\"ÃÄ#†‡ÑÎÒ
  360. \"ÃÄ#†‡ÓÔ
  361. \"…ÑÎÒ
  362. ÇÕÊ!O\"ÃÄ#†‡Ñ
  363. ÃÄ#ƒÖ ‚‘eb)ˆ×Ø@@Ù@8Aƒ¥Ú‚¦Û$‡" [Info-index-alternatives num name nil t error "No previous `i' command in this file" 0 nconc Info-goto-node 1 3 forward-line re-search-forward format "\\(Function\\|Command\\): %s\\( \\|$\\)" regexp-quote search-forward "`%s'" string-match "\\`.*\\( (.*)\\)\\'" match-beginning beginning-of-line message "Found \"%s\" in %s.  %s" 2 "(Press `,' for more)" "(Only match)"] 21))
  364.  
  365. (defun Info-undefined nil "\
  366. Make command be undefined in Info." (interactive) (byte-code "ÀˆÁ ‡" [nil ding] 2))
  367.  
  368. (defun Info-help nil "\
  369. Enter the Info tutorial." (interactive) (byte-code "ÀˆÁ ˆÂÃÄ ÅWƒƂÇ\"‡" [nil delete-other-windows Info-find-node "info" window-height 23 "Help-Small-Screen" "Help"] 6))
  370.  
  371. (defun Info-summary nil "\
  372. Display a brief summary of all Info commands." (interactive) (byte-code "Èċ‡" [ch flag unread-command-events nil ((byte-code "ÄÅ!ˆÆ ˆÇÈ!cˆÉ ˆebˆÃÃÊd!?‰ˆË    ƒ&̂'Í!ˆÎÏ ‰=?ƒ<C‰ˆÃ‚=    …FРˆ‚*ˆÑÅ!‡" [ch flag unread-command-events nil switch-to-buffer "*Help*" erase-buffer documentation Info-mode help-mode pos-visible-in-window-p message "Type Space to see more" "Type Space to return to Info" 32 read-event scroll-up bury-buffer] 10))] 1))
  373.  
  374. (defun Info-get-token (pos start all &optional errorstring) "\
  375. Return the token around POS,
  376. POS must be somewhere inside the token
  377. START is a regular expression which will match the
  378.     beginning of the tokens delimited string
  379. ALL is a regular expression with a single
  380.     parenthized subpattern which is the token to be
  381.     returned. E.g. '{(.*)}' would return any string
  382.     enclosed in braces around POS.
  383. SIG optional fourth argument, controls action on no match
  384.     nil: return nil
  385.     t: beep
  386.     a string: signal an error, using that string." (byte-code "ŠbˆÇ    eÈZ]É#ˆÅÊ dÈ\\^É#…,ËÌ!X…)ÍÌ!V‰?…4ň‚ˆ
  387. …FËÌ!X…FÍÌ!VƒTÎËÏ!ÍÏ!\"‚o ?ƒ]ło Æ=ƒjРˆÅ‚oÑÒ #))‡" [pos start found all errorstring nil t re-search-backward 200 yes re-search-forward match-beginning 0 match-end buffer-substring 1 beep error "No %s around position %d"] 14))
  388.  
  389. (defun Info-mouse-follow-nearest-node (click) "\
  390. \\<Info-mode-map>Follow a node reference near point.
  391. Like \\[Info-menu], \\[Info-follow-reference], \\[Info-next], \\[Info-prev] or \\[Info-up] command, depending on where you click.
  392. At end of the node's text, moves to the next node, or up if none." (interactive "e") (byte-code "ĈŠ   !@A@Æ
  393. !ˆ b+ˆÇ ?…'ŠÈÉ!ˆm)…'Ê ‡" [start click window pos nil event-start select-window Info-try-follow-nearest-node forward-line 1 Info-next-preorder] 6))
  394.  
  395. (defun Info-follow-nearest-node nil "\
  396. \\<Info-mode-map>Follow a node reference near point.
  397. Like \\[Info-menu], \\[Info-follow-reference], \\[Info-next], \\[Info-prev] or \\[Info-up] command, depending on where point is.
  398. If no reference to follow, moves to the next node, or up if none." (interactive) (byte-code "ÀˆÁ †    Â ‡" [nil Info-try-follow-nearest-node Info-next-preorder] 3))
  399.  
  400. (defun Info-try-follow-nearest-node nil "\
  401. Follow a node reference near point.  Return non-nil if successful." (byte-code "ÁÂ`ÃÄ#‰ƒÅ!‚oÂ`ÆÇ#‰ƒ\"È!‚oÂ`ÆÉ#‰ƒ2Ê!‚oÂ`ËÌ#‰ƒBÈ!‚oÂ`ÍÎ#‰ƒRÈ!‚oÂ`ÏÐ#‰ƒbÈÑ!‚oÂ`ÒÓ#‰…oÈ!ˆ)‡" [node nil Info-get-token "\\*note[ 
  402. ]" "\\*note[ 
  403. ]\\([^:]*\\):" Info-follow-reference "\\* " "\\* \\([^:]*\\)::" Info-goto-node "\\* \\([^:]*\\):" Info-menu "Up: " "Up: \\([^,
  404.     ]*\\)" "Next: " "Next: \\([^,
  405.     ]*\\)" "File: " "File: \\([^,
  406.     ]*\\)" "Top" "Prev: " "Prev: \\([^,
  407.     ]*\\)"] 16))
  408.  
  409. (defvar Info-mode-map nil "\
  410. Keymap containing Info commands.")
  411.  
  412. (if Info-mode-map nil (setq Info-mode-map (make-keymap)) (suppress-keymap Info-mode-map) (define-key Info-mode-map "." (quote beginning-of-buffer)) (define-key Info-mode-map " " (quote Info-scroll-up)) (define-key Info-mode-map "" (quote Info-follow-nearest-node)) (define-key Info-mode-map "    " (quote Info-next-reference)) (define-key Info-mode-map "    " (quote Info-prev-reference)) (define-key Info-mode-map "1" (quote Info-nth-menu-item)) (define-key Info-mode-map "2" (quote Info-nth-menu-item)) (define-key Info-mode-map "3" (quote Info-nth-menu-item)) (define-key Info-mode-map "4" (quote Info-nth-menu-item)) (define-key Info-mode-map "5" (quote Info-nth-menu-item)) (define-key Info-mode-map "6" (quote Info-nth-menu-item)) (define-key Info-mode-map "7" (quote Info-nth-menu-item)) (define-key Info-mode-map "8" (quote Info-nth-menu-item)) (define-key Info-mode-map "9" (quote Info-nth-menu-item)) (define-key Info-mode-map "0" (quote undefined)) (define-key Info-mode-map "?" (quote Info-summary)) (define-key Info-mode-map "]" (quote Info-forward-node)) (define-key Info-mode-map "[" (quote Info-backward-node)) (define-key Info-mode-map "<" (quote Info-top-node)) (define-key Info-mode-map ">" (quote Info-final-node)) (define-key Info-mode-map "b" (quote beginning-of-buffer)) (define-key Info-mode-map "d" (quote Info-directory)) (define-key Info-mode-map "e" (quote Info-edit)) (define-key Info-mode-map "f" (quote Info-follow-reference)) (define-key Info-mode-map "g" (quote Info-goto-node)) (define-key Info-mode-map "h" (quote Info-help)) (define-key Info-mode-map "i" (quote Info-index)) (define-key Info-mode-map "l" (quote Info-last)) (define-key Info-mode-map "m" (quote Info-menu)) (define-key Info-mode-map "n" (quote Info-next)) (define-key Info-mode-map "p" (quote Info-prev)) (define-key Info-mode-map "q" (quote Info-exit)) (define-key Info-mode-map "s" (quote Info-search)) (define-key Info-mode-map "ó" (quote Info-search)) (define-key Info-mode-map "t" (quote Info-top-node)) (define-key Info-mode-map "u" (quote Info-up)) (define-key Info-mode-map "," (quote Info-index-next)) (define-key Info-mode-map "" (quote Info-scroll-down)) (define-key Info-mode-map [mouse-2] (quote Info-mouse-follow-nearest-node)))
  413.  
  414. (put (quote info-mode) (quote mode-class) (quote special))
  415.  
  416. (defun Info-mode nil "\
  417. \\<Info-mode-map>
  418. Info mode provides commands for browsing through the Info documentation tree.
  419. Documentation in Info is divided into \"nodes\", each of which discusses
  420. one topic and contains references to other nodes which discuss related
  421. topics.  Info has commands to follow the references and show you other nodes.
  422.  
  423. \\[Info-help]    Invoke the Info tutorial.
  424.  
  425. Selecting other nodes:
  426. \\[Info-mouse-follow-nearest-node]
  427.     Follow a node reference you click on.
  428.       This works with menu items, cross references, and
  429.       the \"next\", \"previous\" and \"up\", depending on where you click.
  430. \\[Info-next]    Move to the \"next\" node of this node.
  431. \\[Info-prev]    Move to the \"previous\" node of this node.
  432. \\[Info-up]    Move \"up\" from this node.
  433. \\[Info-menu]    Pick menu item specified by name (or abbreviation).
  434.     Picking a menu item causes another node to be selected.
  435. \\[Info-directory]    Go to the Info directory node.
  436. \\[Info-follow-reference]    Follow a cross reference.  Reads name of reference.
  437. \\[Info-last]    Move to the last node you were at.
  438. \\[Info-index]    Look up a topic in this file's Index and move to that node.
  439. \\[Info-index-next]    (comma) Move to the next match from a previous `i' command.
  440.  
  441. Moving within a node:
  442. \\[Info-scroll-up]    Normally, scroll forward a full screen.  If the end of the buffer is
  443. already visible, try to go to the next menu entry, or up if there is none.
  444. \\[Info-scroll-down]  Normally, scroll backward.  If the beginning of the buffer is
  445. already visible, try to go to the previous menu entry, or up if there is none.
  446. \\[beginning-of-buffer]    Go to beginning of node.  
  447.  
  448. Advanced commands:
  449. \\[Info-exit]    Quit Info: reselect previously selected buffer.
  450. \\[Info-edit]    Edit contents of selected node.
  451. 1    Pick first item in node's menu.
  452. 2, 3, 4, 5   Pick second ... fifth item in node's menu.
  453. \\[Info-goto-node]    Move to node specified by name.
  454.     You may include a filename as well, as (FILENAME)NODENAME.
  455. \\[universal-argument] \\[info]    Move to new Info file with completion.
  456. \\[Info-search]    Search through this Info file for specified regexp,
  457.     and select the node in which the next occurrence is found.
  458. \\[Info-next-reference]    Move cursor to next cross-reference or menu item.
  459. \\[Info-prev-reference]    Move cursor to previous cross-reference or menu item." (byte-code "Ë ˆÌ‰ˆÍ‰ˆÎ
  460. !ˆÏ !ˆ‰ˆÇ‰ˆÇ‰ˆÐÑ!ˆÐÒ!ˆÐÓ!ˆÐÔ!ˆÐÕ!ˆÐÖ!ˆ×Ø !Ù>ƒ~ÚÛ!ˆÚÜ!ˆÚÝ!ˆÞÛ!†eÞß!ƒaàßÛ\"‚eàáÛ\"ˆÞÜ!†pâÜÇ\"ˆÞÝ!†{àáÝ\"‚‚ʉ    ˆã ˆäå!‡" [major-mode mode-name Info-mode-map text-mode-syntax-table local-abbrev-table text-mode-abbrev-table case-fold-search t buffer-read-only Info-fontify nil kill-all-local-variables Info-mode "Info" use-local-map set-syntax-table 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 pc) make-face info-node info-menu-5 info-xref face-differs-from-default-p bold-italic copy-face bold set-face-underline-p Info-set-mode-line run-hooks Info-mode-hook] 25))
  461.  
  462. (defvar Info-edit-map nil "\
  463. Local keymap used within `e' command of Info.")
  464.  
  465. (if Info-edit-map nil (setq Info-edit-map (nconc (make-sparse-keymap) text-mode-map)) (define-key Info-edit-map "" (quote Info-cease-edit)))
  466.  
  467. (put (quote info-edit-mode) (quote mode-class) (quote special))
  468.  
  469. (defun Info-edit-mode nil "\
  470. Major mode for editing the contents of an Info node.
  471. Like text mode with the addition of `Info-cease-edit'
  472. which returns to Info mode for browsing.
  473. \\{Info-edit-map}" (byte-code "Å!ˆÆ‰ˆÇ‰ˆÈÉ!ˆÄ‰ˆÊ ˆËp!ˆÌÍ!‡" [Info-edit-map major-mode mode-name buffer-read-only nil use-local-map Info-edit-mode "Info Edit" kill-local-variable mode-line-buffer-identification force-mode-line-update buffer-enable-undo run-hooks Info-edit-mode-hook] 6))
  474.  
  475. (defun Info-edit nil "\
  476. Edit the contents of this Info node.
  477. Allowed only if variable `Info-enable-edit' is non-nil." (interactive) (byte-code "Áˆ†    ÂÃ!ˆÄ ˆÅÆÇ!!‡" [Info-enable-edit nil error "Editing info nodes is not enabled" Info-edit-mode message substitute-command-keys "Editing: Type \\<Info-edit-map>\\[Info-cease-edit] to return to info"] 5))
  478.  
  479. (defun Info-cease-edit nil "\
  480. Finish editing Info node; switch back to Info proper." (interactive) (byte-code "ƈǠ…ÈÉ!…Ê ˆË!ˆÌ‰ˆÍ‰ˆÎ ˆÄ‰ˆÏ ˆÐ!…4Ç …4ÑÒ!‡" [Info-mode-map major-mode mode-name buffer-read-only t Info-tag-table-marker nil buffer-modified-p y-or-n-p "Save the file? " save-buffer use-local-map Info-mode "Info" Info-set-mode-line force-mode-line-update marker-position message "Tags may have changed.  Use Info-tagify if necessary"] 10))
  481.  
  482. (defvar Info-file-list-for-emacs (quote ("ediff" "forms" "gnus" "info" ("mh" . "mh-e") "sc")) "\
  483. List of Info files that describe Emacs commands.
  484. An element can be a file name, or a list of the form (PREFIX . FILE)
  485. where PREFIX is a name prefix and FILE is the file to look in.
  486. If the element is just a file name, the file name also serves as the prefix.")
  487.  
  488. (defun Info-find-emacs-command-nodes (command) "\
  489. Return a list of locations documenting COMMAND.
  490. The `info-file' property of COMMAND says which Info manual to search.
  491. If COMMAND has no property, the variable `Info-file-list-for-emacs'
  492. defines heuristics for which Info manual to try.
  493. The locations are of the format used in Info-history, i.e.
  494. (FILENAME NODENAME BUFFERPOS)." (byte-code "ÊÎÏÐ
  495. !!ÑQÒ
  496. ÃNƒ
  497. ÃN‰‚i …h @:ƒ1@‚3:ƒAA‚CÓÏ!ÔQ    Õ    Ð
  498. !\"…^ʉˆ A‰,ˆ‚)ˆŠÊÖ׏ˆ A‰ ˆdbˆØ    ÊÌ#…–ÙÚÛ!ÜÛ!\"ÝEB‰ˆ‚zˆ)+‡" [where cmd-desc command info-file file-list Info-file-list-for-emacs elt name file regexp nil Info-history t Info-current-file "^\\* " regexp-quote symbol-name ":\\s *\\(.*\\)\\.$" "emacs" "\\`" "\\(\\'\\|-\\)" string-match (byte-code "ÁÂ\"‡" [info-file Info-find-node "Command Index"] 3) ((error (byte-code "ÁÂ\"‡" [info-file Info-find-node "Index"] 3))) re-search-backward buffer-substring match-beginning 1 match-end 0] 13))
  499.  
  500. (defun Info-goto-emacs-command-node (command) "\
  501. Go to the Info node in the Emacs manual for command COMMAND.
  502. The command is found by looking up in Emacs manual's Command Index
  503. or in another manual found via COMMAND's `info-file' property or
  504. the variable `Info-file-list-for-emacs'." (interactive "CFind documentation for command: ") (byte-code "ĈÅ!†ÆÇÅD\"ˆÈ!    ƒZ    GɋˆÊË!ˆÌ    @@    @A@\"ˆ
  505. ÍV…VΠ   A \"‰ˆÏÐÑ!
  506. S
  507. ÒVƒIӂJÔ
  508. ÒVƒTՂUÖ$)‚^×Ø\")‡" [command where num-matches Info-history nil commandp signal wrong-type-argument Info-find-emacs-command-nodes ((byte-code "À ‡" [info] 2)) pop-to-buffer "*info*" Info-find-node 1 nconc 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."] 13))
  509.  
  510. (defun Info-goto-emacs-key-command-node (key) "\
  511. Go to the Info node in the Emacs manual the command bound to KEY, a string.
  512. Interactively, if the binding is execute-extended-command, a command is read.
  513. The command is found by looking up in Emacs manual's Command Index
  514. or in another manual found via COMMAND's `info-file' property or
  515. the variable `Info-file-list-for-emacs'." (interactive "kFind documentation for key:") (byte-code "ÈĠ   !?ƒÅÆÇ    !\"‚)t…È=ƒ&ÉÊË!!‚)É!)‡" [command key t nil key-binding message "%s is undefined" key-description execute-extended-command Info-goto-emacs-command-node read-command "Find documentation for command: "] 7))
  516.  
  517. (defvar Info-title-face-alist (quote ((42 bold underline) (61 bold-italic underline) (45 italic underline))) "\
  518. *Alist of face or list of faces to use for pseudo-underlined titles.
  519. The alist key is the character the title is underlined with (?*, ?= or ?-).")
  520.  
  521. (defun Info-fontify-node nil (byte-code "ŠÁebˆÇÈ!…5ÉÊ!bˆÇË!…5ÉÊ!bˆÌÍÎ!ÉÎ!ÏÐ$ˆÌÍÎ!ÉÎ!ÑÒ$ˆ‚ˆebˆÓÔÁÂ#…^ÌÍÎ!ÉÎ!ÏÕh \"A$ˆÌÉÎ!ÉÖ!×Â$ˆ‚9ˆebˆÓØÁÂ#…‘ÍÊ!SfÙUƒxÁ‚ÌÍÎ!ÉÎ!ÏÐ$ˆÌÍÎ!ÉÎ!ÑÒ$ˆ‚bˆebˆÚÛÁÂ#…ªÜÝ \"?…ªd`ZW…ìÊÓÞÁÂ#…ëT‰ˆß>…ÑÌÍÊ!ÍÊ!TÏà$ˆÌÍÎ!ÉÎ!Ïá$ˆÌÍÎ!ÉÎ!ÑÒ$ˆ‚°)ˆâÁ!))‡" [buffer-read-only nil t Info-title-face-alist Info-current-node Info-fontify-maximum-menu-size n looking-at "^File: [^,:     ]+,?[     ]+" match-end 0 "[     ]*[^:,     
  522. ]+:[     ]+\\([^:,    
  523. ]+\\),?" put-text-property match-beginning 1 face info-xref mouse-face highlight re-search-forward "
  524. \\([^     
  525. ].+\\)
  526. \\(\\*+\\|=+\\|-+\\)$" assq 2 invisible "\\*Note[ 
  527.     ]+\\([^:]*\\):" 34 search-forward "
  528. * Menu:" string-match "\\<Index\\>" "^\\* \\([^:    
  529. ]*\\):" (5 9) info-menu-5 info-node set-buffer-modified-p] 43))
  530.  
  531. (provide (quote info))
  532.