;;; Source file: /usr/local/lib/jade/3.2/lisp/info.jl
;;; Compiled by jsh@orcrist on Sun Oct 16 20:21:03 1994
;;; Jade 3.2

(provide (quote info))

(defvar info-directory-list (if (amiga-p) (quote ("INFO:")) (quote ("/usr/info" "/usr/local/info/" "~/info"))) 85417)

(defvar info-keymap (make-keytab) 85492)

(defvar info-buffer (make-buffer "*Info*") 85509)

(set-buffer-special info-buffer t)

(defvar info-tags-buffer (make-buffer "*Info tags*") 85551)

(set-buffer-special info-tags-buffer t)

(defvar info-history (quote nil) 85605)

(defvar info-file-name nil 85671)

(defvar info-node-name nil 85731)

(defvar info-file-modtime nil 85766)

(defvar info-indirect-list nil 85840)

(defvar info-has-tags-p nil 85922)

(defvar info-initialised nil 85982)

(jade-byte-code " JF H{H	
 !\"#$%&'()*+,+-./.012343;H56K&67&8IF&9H:5J
GHH;IF&9GH" [info-initialised info-error error-message "Info" bind-keys info-keymap "SPC" next-screen "BS" prev-screen "1" info-menu-nth "2" "3" "4" "5" "6" "7" "8" "9" "b" goto-buffer-start "d" (info "(dir)Top") "f" info-follow-ref "h" (info "(info)Help") "g" info-goto-node "l" info-last "m" info-menu "n" info-next "p" info-prev "q" bury-buffer "u" info-up "?" describe-mode "HELP" "RET" info-goto-link "LMB-CLICK2" "TAB" info-next-link "Meta-TAB" info-prev-link "Shift-TAB" info-buffer keymap-path info-mode major-mode buffer-record-undo set-buffer-read-only info-tags-buffer] 60)

(defun info-read-tags (filename) (jade-byte-code "D
	I456 *}H	u
HI&I&IF&HJF$H EJ 	F$ YSc ~	
KKF&H HHF&HJF$H J 	HJF&H&	F& HJGHvE" [open filename "r" file-name-directory str dir file info-error "Can't open info file" (jade-byte-code "	" [close file] 2) info-tags-buffer clear-buffer info-indirect-list info-file-name info-has-tags-p read-file-until "^(Tag Table:|Indirect:) *
$" regexp-match "Indirect" read-line 0 31 read-from-string regexp-expand "^.*: ([0-9]+)
$" "\\1" concat "^(.*): [0-9]+
$" "^Tag Table: *
$" "Tag Table" read-buffer file-modtime info-file-modtime] 8))

(defun info-read-dir nil (jade-byte-code "DI12H DL	
6	  OD	6
		H
IJ K


E s	HIJ k
HHJF\"H	` EHMF!H H }H&&& F&!H\"HJE" [info-directory-list path read-dir clear-buffer file-name-concat expand-file-name "dir" name file-exists-p cursor-pos spos insert read-file find-next-regexp "^\\* Menu:" delete-area next-line 1 match-start read-buffer "^File:" buffer-start goto-buffer-end line-start split-line info-error ("Can't find `dir' file") info-file-name 0 info-file-modtime "Top" info-node-name "(dir)" mode-name goto-buffer-start] 5))

(defun info-remember nil (jade-byte-code "  +KF#" [info-file-name info-node-name cursor-pos info-history] 3))

(defun info-locate-file (filename) (jade-byte-code " ] `  gD
5
6
6	
	 4 f
	 ? f
	 L f
		 Y	 fJ es fIE" [info-file-name filename "" concat ".info" filename-and-info translate-string downcase-table lcase-name lcase-and-info file-exists-p (jade-byte-code "DI12 nL	F!H
	 %
t e
	 :
t e	
	 O	
t e

	 d

t eIHMF\"H H*}E" [info-directory-list real dir expand-file-name file-exists-p file-name-concat filename foo filename-and-info lcase-name lcase-and-info info-error "Can't find file"] 4) (quote foo)] 3))

(defun info-find-node (nodename) (jade-byte-code "DJI456  F\"  F\"H	 /
4	F&H`] I	d Q	H] ~H
HH&	F&4D	II66 6!\"!#$J,%$&K	F$H'l (V$F&  )*sH 'La (VF$  LX'LLV(VF$H MF& H+ ,F&!H-	HH&	F&)./*}3.0*}EE" [regexp-expand "^\\((.*)\\).*$" nodename "\\1" offset inhibit-read-only filename "^\\(.*\\)(.+)$" "Top" ("dir" "DIR" "Dir") info-read-dir info-locate-file info-file-name file-modtime info-file-modtime info-read-tags info-has-tags-p clear-buffer read-buffer info-buffer goto-buffer-start "" info-node-name concat 40 file-name-nondirectory 41 mode-name "^Node: " regexp-quote 127 text subfile regexp find-next-regexp buffer-start info-tags-buffer read match-end info-indirect-list 2 (jade-byte-code "D1M \"MLLf LF#HItHMF!H HLF#E" [info-indirect-list list offset subfile info] 2) (quote info) read-file-from-to 31 insert info-error "Can't read from file" "Can't find node"] 5))

(defun info-list-nodes (start) (jade-byte-code "D	I56H	IIJ 7
	HIIJKF%H GHHE" [concat "^Node: (" regexp-quote start ".*)" list regexp info-tags-buffer goto-buffer-start find-next-regexp goto-char match-end regexp-expand-line "\\1"] 7))

(defun info-prompt (list-fun &optional title default start) (jade-byte-code " F H F H F&HD6	
666
6` E GE" [title "Select node" default concat " (default: " ")" start "" (lambda (w) (jade-byte-code " 	F GHH	" [prompt-list info-buffer funcall list-fun prompt-complete-from-list w] 3)) prompt-completion-function prompt-validate-from-list prompt-validate-function ["." "^|$"] prompt-word-regexps nil prompt-list prompt2 res] 5))

(defun info (&optional start-node) 86030 (interactive) (jade-byte-code "	H H	 7  +	d (	 7J 6		 7I" [goto-buffer info-buffer start-node info-remember info-find-node info-file-name info-node-name file-modtime info-file-modtime "(dir)"] 2))

(defun info-mode nil 86210 (jade-byte-code "I" [] 1))

(defun info-goto-node (node) (interactive "sGoto node: ") (jade-byte-code " 
H	" [node info-remember info-find-node] 2))

(defun info-parse-menu-line nil (jade-byte-code "
 
" [regexp-expand-line "^\\* (.+)::" "\\1" "^\\* .+:[	 ]*((\\([^ ]+\\)|)([^,.]+|))\\."] 3))

(defun info-list-menu-items nil (jade-byte-code "DI12	 !	H	
KF\"H HE" [cursor-pos opos list find-next-regexp "^\\* [a-zA-Z0-9]+.*:" goto-char match-end regexp-expand-line "^\\* ([^:.]+)" "\\1"] 3))

(defun info-goto-menu-start nil (jade-byte-code "IIJ IIJ 
	" [find-prev-regexp "^\\* Menu:" find-next-regexp goto-char next-line 1 match-start] 5))

(defun info-menu-nth (item-index) (interactive (list (- (strtoc (current-event-string)) 48))) (jade-byte-code " 	)}Hd 	 &	HiF#H 
Hc 2	)}H
HD6 NH	 S)}E" [info-goto-menu-start info-error "Can't find menu" item-index 0 find-next-regexp "^\\* .*:" goto-char match-end "Can't find menu node" goto-line-start info-parse-menu-line nodename info-remember info-find-node "Menu line malformed"] 2))

(defun info-menu nil (interactive) (jade-byte-code "D
3 !D6	F#H
	EH f		 _
	HD6 UH	 [)}E f*}E" [regexp-expand-line "^\\* ([^:.]+)" "\\1" menu-name info-goto-menu-start cursor-pos opos info-prompt info-list-menu-items "Menu item:" goto-char find-next-regexp concat "^\\* " regexp-quote 58 match-start info-parse-menu-line node-name info-remember info-find-node info-error "Menu line malformed" "Can't find menu"] 5))

(defun info-last nil (interactive) (jade-byte-code " )DL1MF HLP	 %P	HJE 2	
	H" [info-history hist info-find-node concat 40 41 1 goto-char 2 message "No more history" beep] 7))

(defun info-next nil (interactive) (jade-byte-code "	" [info-find-link "Next"] 2))

(defun info-prev nil (interactive) (jade-byte-code "	" [info-find-link "Prev"] 2))

(defun info-up nil (interactive) (jade-byte-code "	" [info-find-link "Up"] 2))

(defun info-find-link (link-type) (jade-byte-code "D
3IJ6 \"H		 0
	HE" [concat link-type ": ([^,]*)(,|[	 ]*$)" regexp regexp-expand-line "\\1" buffer-start new-node info-remember info-find-node message "No " " node" beep] 6))

(defun info-goto-link nil (interactive) (jade-byte-code "DI0MF  HF  }HH	E" [node info-parse-ref goto-line-start info-parse-menu-line info-error ("Nothing on this line to go to") info-remember info-find-node] 2))

(defun info-next-link nil (interactive) (jade-byte-code "DIJ3 IJ &
IJF#H 	H	E" [find-next-regexp "(^\\* |\\*Note)" next-char pos looking-at "\\* Menu:" 1 goto-char] 5))

(defun info-prev-link nil (interactive) (jade-byte-code "DIJ3 IJ &
IJF#H 	H	E" [find-prev-regexp "(^\\* |\\*Note)" prev-char pos looking-at "\\* Menu:" 1 goto-char] 5))

(defun info-parse-ref nil (jade-byte-code "IIJ\"DIII3456	F%				d fD


6` KKKF$EH
F&H b}H H

K
$
F&H	b F#
 F&H
F%				d D


6` KKF#H
F&EH }H H

K
F#}}H!KE" [looking-at "\\*Note *" match-end ref-node ref-title end pos find-next-regexp "[	 ]*:" pos-line copy-area "[	 ]*$" bit "" 32 "[^	 ]" info-error ("Malformed reference") apply concat next-char 1 get-char 58 " +" "[	 ]*[:,.]"] 5))

(defun info-follow-ref nil (interactive) (jade-byte-code "IIJ IIJ	HD5 #HM	E" [looking-at "\\*Note" goto-char find-next-regexp info-parse-ref ref info-remember info-find-node] 6))
