;ELC   
;;; compiled by kwzh@hal.gnu.ai.mit.edu on Tue May  2 20:22:04 1995
;;; from file /gd/gnu/emacs/19.0/lisp/docref.el
;;; emacs version 19.28.90.69.
;;; 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 "`/gd/gnu/emacs/19.0/lisp/docref.el' was compiled for Emacs 19"))


#@235 *If non-nil, \(f@docref-subst) highlights cross-references.
Under window system it highlights them with face defined by
\(v@docref-highlight-face), on character terminal highlighted references
look like cross-references in info mode.
(defvar docref-highlight-p t (#$ . -482))
#@70 *Face used to highlight cross-references (used by \(f@docref-subst))
(defvar docref-highlight-face (quote highlight) (#$ . -764))
#@250 Alist which maps cross-reference ``types'' to retrieval functions.

The car of each element is a string that serves as `type' in cross-references.
(See \(f@docref-subst)).  The cdr is a function of one argument,
to be called to find this reference.
(defvar docref-methods-alist (quote (("f" . docref-describe-function) ("v" . docref-describe-variable) ("F" . docref-read-file) ("s" . docref-use-string) ("V" . docref-use-variable-value) ("0" . beep))) (#$ . 901))
#@62 Label to use by \(f@docref-subst) for the go-back reference.
(defvar docref-back-label "\nback" (#$ . 1371))
#@251 If non-nil, this is a go-back reference to add to the current buffer.
The value specifies how to go back.  It should be suitable for use
as the second argument to \(f@docref-insert-label).
\(f@docref-subst) uses this to set up the go-back reference.
(defvar docref-back-reference nil (#$ . 1487))
(byte-code "	B" [docref-last-active-buffer current-load-list] 2)
#@84 Process docref cross-references in the current buffer.
See also \(f@docref-subst).
(defalias 'docref-setup #[nil "p! " [docref-subst docref-mode] 2 (#$ . 1859) nil])
(byte-code "! B	(  ###)" [boundp docref-mode-map nil current-load-list make-sparse-keymap map define-key [mouse-2] docref-follow-mouse "" docref-go-back "" docref-follow] 4)
#@227 Major mode for help buffers that contain cross references.
To follow a reference, move to it and type \[docref-follow], or use
\[docref-follow-mouse].  The command \[docref-go-back] can used to go
back to where you came from.
(defalias 'docref-mode #[nil " !!" [kill-all-local-variables docref-mode major-mode "Docref" mode-name use-local-map docref-mode-map run-hooks] 2 (#$ . 2245) nil])
#@673 Parse documentation cross-references in buffer BUF.

Find cross-reference information in a buffer and
highlight them with face defined by \(v@docref-highlight-face).

Cross-reference has the following format: \ (TYPE[@LABEL]@DATA), where
TYPE defines method used to retrive xref data (like reading from file or
calling \(f@describe-function)), DATA is an argument to this method
(like file name or function name), and LABEL is displayed in text using
\(v@docref-highlight-face).

The special reference `back' can be used to return back.
The variable \(v@docref-back-label) specifies the label to use for that.

See \(v@docref-methods-alist) for currently defined methods.
(defalias 'docref-subst #[(buf) "qebe\"?u  #R ɔ\n˔˕{\f͔͕{ϔ; ϔ\\ϕ{= \"\fB\", i dbeeT`$\"eeT$\f!))" [buf get-text-property docref-seen buffer-modified-p old-modified re-search-forward "[\\](\\([^)@]+\\)\\(@[^)@]+\\)?@\\([^)]*\\))" nil t 0 start 1 type 3 data 2 label replace-match "" docref-insert-label docref-back-reference put-text-property docref-back-position docref-back-label set-buffer-modified-p] 5 (#$ . 2655) "b"])
(defalias 'docref-insert-label #[(string ref) "` Ŏ\n\" ȕ * \nˎ\n\"+ Ȕ- \nG*_ T \nO\nO\nO_ \n%\nG\n%\nc," [string pos label match-data match-data ((store-match-data match-data)) string-match "^\\([ 	\n]+\\)" 1 0 match-data ((store-match-data match-data)) "\\([ 	\n]+\\)$" trailing-space-start leading-space-end docref-highlight-p window-system "(*note " ")" nil put-text-property face docref-highlight-face docref ref] 7])
#@47 Follow the cross-reference that you click on.
(defalias 'docref-follow-mouse #[(click) "A@)@\nA@p!q\f!-" [click event start window pos docref-last-active-buffer window-buffer docref-follow] 3 (#$ . 4310) "e"])
#@50 Go back to the previous contents of help buffer.
(defalias 'docref-go-back #[nil "e\" \n! !)" [get-text-property docref-back-position pos docref-follow error "No go-back reference"] 4 (#$ . 4540) nil])
#@151 Follow cross-reference at point.
For the cross-reference format, see \(f@docref-subst).
The special reference named `back' can be used to return back
(defalias 'docref-follow #[(&optional pos) " `\"E @A\f\" \n`\nB6 \f\"ҎA!Ӊ.	)" [pos get-text-property docref docref-data type name assoc docref-methods-alist method buffer-string cur-contents opoint "s" docref-back-reference nil success error "Unknown cross-reference type: %s" ((byte-code "  \ncb!" [success erase-buffer cur-contents opoint set-buffer-modified-p nil] 2)) t] 4 (#$ . 4761) nil])
(defalias 'docref-describe-function #[(data) "!\n 	q\f!!)" [boundp docref-last-active-buffer describe-function intern data] 3])
(defalias 'docref-describe-variable #[(data) "!\n 	q\f!!)" [boundp docref-last-active-buffer describe-variable intern data] 3])
(defalias 'docref-read-file #[(data) "  \f!!" [buffer-name erase-buffer insert-file-contents expand-file-name data] 4])
(defalias 'docref-use-string #[(data) "  \nc" [buffer-name erase-buffer data] 2])
(defalias 'docref-use-variable-value #[(data) "	!  \nJ!)" [intern data sym buffer-name erase-buffer princ] 3])
(provide (quote docref))
