;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Tue Jun 23 11:53:37 1998
;;; from file /gd/gnu/emacs/lisp/apropos.el
;;; in Emacs version 20.2.95.4
;;; with bytecomp version 2.46
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`apropos.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(custom-declare-group 'apropos nil "Apropos commands for users and programmers" :group 'Help :prefix "apropos")
#@124 *Whether the apropos commands should do more.

Slows them down more or less.  Set this non-nil if you have a fast machine.
(custom-declare-variable 'apropos-do-all 'nil '(#$ . -715) :group 'apropos :type 'boolean)
#@111 *Face for symbol name in apropos output or `nil'.
This looks good, but slows down the commands several times.
(custom-declare-variable 'apropos-symbol-face '(if window-system 'bold) '(#$ . -936) :group 'apropos :type 'face)
#@120 *Face for keybinding display in apropos output or `nil'.  
This looks good, but slows down the commands several times.
(custom-declare-variable 'apropos-keybinding-face '(if window-system 'underline) '(#$ . -1167) :group 'apropos :type 'face)
#@282 *Face for label (Command, Variable ...) in apropos output or `nil'.
If this is `nil' no mouse highlighting occurs.
This looks good, but slows down the commands several times.
When this is a face name, as it is initially, it gets transformed to a
text-property list for efficiency.
(custom-declare-variable 'apropos-label-face '(if window-system 'italic) '(#$ . -1417) :group 'apropos :type 'face)
#@115 *Face for property name in apropos output or `nil'.  
This looks good, but slows down the commands several times.
(custom-declare-variable 'apropos-property-face '(if window-system 'bold-italic) '(#$ . -1821) :group 'apropos :type 'face)
#@135 *Face for matching part in apropos-documentation/value output or `nil'.  
This looks good, but slows down the commands several times.
(custom-declare-variable 'apropos-match-face '(if window-system 'secondary-selection) '(#$ . -2066) :group 'apropos :type 'face)
#@30 Keymap used in Apropos mode.
(defvar apropos-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210)\207" [map make-sparse-keymap define-key "" apropos-follow " " scroll-up "" scroll-down "q" quit-window [mouse-2] apropos-mouse-follow [down-mouse-2] nil] 4) (#$ . 2335))
#@37 Regexp used in current apropos run.
(defvar apropos-regexp nil (#$ . 2696))
#@78 List of elc files already scanned in current run of `apropos-documentation'.
(defvar apropos-files-scanned nil (#$ . 2778))
#@56 Alist of symbols already found in current apropos run.
(defvar apropos-accumulator nil (#$ . 2908))
#@45 Current item in or for apropos-accumulator.
(defvar apropos-item nil (#$ . 3014))
#@89 Major mode for following hyperlinks in output of apropos commands.

\{apropos-mode-map}
(defalias 'apropos-mode #[nil "\303 \210\304!\210\305\306\211\207" [apropos-mode-map major-mode mode-name kill-all-local-variables use-local-map apropos-mode "Apropos"] 2 (#$ . 3102) nil])
#@128 Show user variables that match REGEXP.
With optional prefix ARG or if `apropos-do-all' is non-nil, also show
normal variables.
(defalias 'apropos-variable #[(regexp &optional do-all) "\303\304	\204 \n\203 \305\202 \306#\207" [regexp do-all apropos-do-all apropos-command nil #[(symbol) "\301!\205	 \302N\207" [symbol boundp variable-documentation] 2] user-variable-p] 4 (#$ . 3389) (list (read-string (concat "Apropos " (if (or current-prefix-arg apropos-do-all) "variable" "user option") " (regexp): ")) current-prefix-arg)])
(fset 'command-apropos 'apropos-command)
#@274 Show commands (interactively callable functions) that match REGEXP.
With optional prefix ARG, or if `apropos-do-all' is non-nil, also show
noninteractive functions.

If VAR-PREDICATE is non-nil, show only variables, and only those that
satisfy the predicate VAR-PREDICATE.
(defalias 'apropos-command #[(apropos-regexp &optional do-all var-predicate) "\306\307!\310\311!)\n\204 \312\f\206 \n\203 \313\202 \314\"\211\211\203B @\315N\2039 \316@\"A\211\204( )\317\211\211\203\250 \211@\211?\205| \313!\205| \320\321\"\211\203{ \322\323\324\"O\202| \325\205\234 !\205\234 \326\327\321#\211\205\234 \322\323\324\"OE\240\210A\211\204Q +\330\321\317\"\205\267 	\205\267 \301	!)\207" [standard-output message do-all apropos-do-all apropos-regexp var-predicate get-buffer-create "*Apropos*" print-help-return-message identity apropos-internal functionp commandp apropos-inhibit delq nil documentation t 0 string-match "\n" "(not documented)" documentation-property variable-documentation apropos-print apropos-accumulator tem symbol doc p] 9 (#$ . 3970) (list (read-string (concat "Apropos command " (if (or current-prefix-arg apropos-do-all) "or function ") "(regexp): ")) current-prefix-arg)])
#@242 Show all bound symbols whose names match REGEXP.
With optional prefix ARG or if `apropos-do-all' is non-nil, also show unbound
symbols and key bindings, which is a little more time-consuming.
Returns list of symbols and documentation found.
(defalias 'apropos #[(apropos-regexp &optional do-all) "\306	?\205 \n?\205 \307\"\211\211\203) \f@\310N\203\" \311\f@\"\fA\211\204 )\312\211\211!\"\211#\203#\211@\211\"\313\"!\205^ \312\314\315\217\211!\203] !\316\317\320!\"O\202^ \321\322\"!\205~ \323\"\324\325#\211!\203} !\316\317\320!\"O\202~ \321\326\"!\211\205\245 @C!AA\211\203\236 @!B!\202\214 \327\330!\237\331#\"\332N\205\305 \323\"\333\325#\211!\203\304 !\316\317\320!\"O\202\305 \321\334\"!\205\345 \323\"\335\325#\211!\203\344 !\316\317\320!\"O\202\345 \321\"\336N\205\323\"\337\325#\211!\203!\316\317\320!\"O\202\321\257\240\210#A\211#\2049 ,\340	\206\n\312\"\207" [apropos-regexp do-all apropos-do-all apropos-accumulator tem properties apropos-internal #[(symbol) "\301!\206 \302!\206 \303!\206 \304!\207" [symbol fboundp boundp facep symbol-plist] 2] apropos-inhibit delq nil fboundp (documentation symbol t) ((void-function "(alias for undefined function)")) 0 string-match "\n" "(not documented)" boundp documentation-property variable-documentation t symbol-plist mapconcat symbol-name " " widget-type widget-documentation facep face-documentation custom-group group-documentation apropos-print doc symbol p] 13 (#$ . 5227) "sApropos symbol (regexp): \nP"])
#@234 Show all symbols whose value's printed image matches REGEXP.
With optional prefix ARG or if `apropos-do-all' is non-nil, also looks
at the function and at the names and values of properties.
Returns list of symbols and values found.
(defalias 'apropos-value #[(apropos-regexp &optional do-all) "\204 	\306\306\211\211\307\310!\210+\311\306\312\"\207" [do-all apropos-do-all apropos-accumulator p v f nil mapatoms #[(symbol) "\306\306\306\307>\204 \310\311\312#\f\203\" \310\313\314#\315\316\317#\204. 	\204. \n\2057 	\nFB\211\207" [f v p symbol do-all apropos-accumulator nil (apropos-regexp do-all apropos-accumulator symbol f v p) apropos-value-internal boundp symbol-value fboundp symbol-function apropos-format-plist "\n    " t] 4] apropos-print t] 3 (#$ . 6773) "sApropos value (regexp): \nP"])
#@262 Show symbols whose documentation contain matches for REGEXP.
With optional prefix ARG or if `apropos-do-all' is non-nil, also use
documentation that is not stored in the documentation file and show key
bindings.
Returns list of symbols and documentation found.
(defalias 'apropos-documentation #[(apropos-regexp &optional do-all) "\204 	\306\306\307\310!\306\211\311\216\212q\210\312 \210\203% \313\314!\210\315\306\316\"-\207" [do-all apropos-do-all apropos-accumulator apropos-files-scanned v f nil get-buffer-create " apropos-temp" ((kill-buffer standard-input)) apropos-documentation-check-doc-file mapatoms #[(symbol) "\305!\306N\211\250\203 \307\310	!\310\n!	\204 \n\205A \236A\211\2039 	\2030 \f	\240\210\n\205A \fA\n\240\207	\nEB\211\207" [symbol f v apropos-accumulator apropos-item apropos-safe-documentation variable-documentation nil apropos-documentation-internal] 4] apropos-print t standard-input] 3 (#$ . 7603) "sApropos documentation (regexp): \nP"])
(defalias 'apropos-value-internal #[(predicate symbol function) "	!\205\" \305\n	!!\306	\"\205\" \f\203! \307\310\224\310\225\311\f	%\210	\207" [predicate symbol function apropos-regexp apropos-match-face prin1-to-string string-match put-text-property 0 face] 6])
(defalias 'apropos-documentation-internal #[(doc) ":\203\n \303@!\207\205( \304	\"\205( \n\203' \305\306\224\306\225\307\n\310!\211%\210\207" [doc apropos-regexp apropos-match-face apropos-documentation-check-elc-file string-match put-text-property 0 face copy-sequence] 7])
(defalias 'apropos-format-plist #[(pl sep &optional compare) "\306!\307\211\203_ \310\311@A@#\203  \312\f\n\"\2033 \2035 \313\314\315@!G\316\n%\210\2025 \307\n\203W \203M \203M \313\314\224\314\225\316\n%\210	\211\205T \nQAA\211\204\f 	*\207" [pl p-out p compare apropos-regexp apropos-property-face symbol-plist nil format "%s %S" string-match put-text-property 0 symbol-name face apropos-match-face sep] 7])
(defalias 'apropos-documentation-check-doc-file #[nil "\306\211\307\306\211\211\310c\210\311 \210\312P!\210\306u\210\212\313\314!m)?\205\231 \315y\210\214`\nS}\210\316\306\317#)\203\223 \320\224`Tb\210\321h=\203N \315\202O \307\322 	`Z\315Z`Z\315Z`T\nS{\f\236\211\204| \f\306\211E\211B\203\213 \323	\324%\210\233\240\210\nb\202 .\207" [end beg sepb sepa symbol type nil 2 31 backward-char insert-file-contents search-forward "" 1 re-search-forward t 0 70 read put-text-property face doc-directory internal-doc-file-name apropos-regexp doc apropos-accumulator apropos-item apropos-match-face] 7])
(defalias 'apropos-documentation-check-elc-file #[(file) "	\235?\205\307 \306\211\211\211\211	B\307 \210\310!\210\311\312\306\313#\205\306 \314 `T`\\\315\\\306u\210\214\f}\210\316\306\313#)\203 \317\\b\210\f{\320\225\fZ\320\224\fZ\321\322!\323\306w\210\306u\210\314 \211:\203q A@\202s \n\203\200 \324N\202\213 \325!\203 \326!\203 \236\211\204\246 \306\211E\211B\203\264 \327\f\330%\210\n\203\274 \317\202\275 \331\233\240\210\202 -\207" [file apropos-files-scanned this-is-a-variable end beg doc nil erase-buffer insert-file-contents search-forward "\n#@" t read -1 re-search-forward 2 0 looking-at "(def\\(var\\|const\\) " "(a-z" variable-documentation fboundp apropos-safe-documentation put-text-property face 1 symbol apropos-regexp apropos-accumulator apropos-item apropos-match-face] 7])
#@89 Like documentation, except it avoids calling `get_doc_string'.
Will return nil instead.
(defalias 'apropos-safe-documentation #[(function) "\203 9\203 \301!\205 K\211\204 \242\302=\203  A\303!\2033 G\304V\205^ \304H\202^ \242\305=\203@ \3068\202^ \242\307=\205^ \3068;\203T \3068\202^ \3108;\205^ \3108\211\250?\205f \207" [function fboundp macro byte-code-function-p 4 autoload 2 lambda 3] 3 (#$ . 11088)])
#@378 Output result of apropos searching into buffer `*Apropos*'.
The value of `apropos-accumulator' is the list of items to output.
Each element should have the format (SYMBOL FN-DOC VAR-DOC [PLIST-DOC]).
The return value is the list that was in `apropos-accumulator', sorted
alphabetically by symbol name; but this function also sets
`apropos-accumulator' to nil before returning.
(defalias 'apropos-print #[(do-keys spacing) "\204\f \306\307	\"\210\202\212\310\311\"\n\203  \n9\203  \312\n\313BB\314\220p\315\211\211\211=>?@q\210\316 \210A\203D \317\320\321!\261\210\320\322!c\210?:\203\202B\203[ o\204[ \323 \210?@\211C@=?A?`\324=!\210`D\203\325=!\203\326\327\330\"\203\212>q\210\331=!)\315E\211F\203\342 F@\332\315GHIHIGW\203\314 \333IHH!\204\300 \334IHH!\203\303 \335GHT\211H\202\245 G\204\330 IEBE+FA\211F\204\230 E\211*\203\364 \336\337\340#c\210\202\341c\210\342`\343Z`\312J$\210\344\345=!\344\261\210\346c\210\342`\343Z`\312J$\210\323 \210\342\f\305\347\350CAB!\203.C@\2020C$\210K\203?\342\f\312K$\210\351\352\330\325=!\203M\353\202Y\354=!\203X\355\202Y\356\335$\210\351\357\360\361\335$\210\351\362\363\364\335$\210\351\365\366\367\335$\210\351\370\371\372\335$\210\351\373\343\374\315$\210\202I \335\211L.\221\210\315\207" [apropos-accumulator apropos-regexp apropos-label-face point2 point1 item message "No apropos matches for `%s'" sort #[(a b) "@	@\231\207" [a b] 2] face (mouse-face highlight) "*Apropos*" nil apropos-mode "If you move the mouse over text that changes color,\n" substitute-command-keys "you can click \\[apropos-mouse-follow] to get more information.\n" "In this buffer, type \\[apropos-follow] to get full documentation.\n\n" terpri princ commandp indent-to 30 1 where-is-internal 0 framep bufferp t mapconcat #[(key) "\302!	\203 \303\304G\305	%\210\207" [key apropos-keybinding-face key-description put-text-property 0 face] 6] ", " "M-x" put-text-property 3 " " symbol-name "RET" eval or apropos-print-doc describe-function "Command" apropos-macrop "Macro" "Function" describe-variable 2 "Variable" customize-group-other-window 6 "Group" customize-face-other-window 5 "Face" widget-browse-other-window 4 "Widget" apropos-describe-plist "Plist" symbol old-buffer p standard-output window-system spacing apropos-item do-keys filtered keys loser i key apropos-keybinding-face apropos-symbol-face buffer-read-only] 9 (#$ . 11527)])
#@30 T if SYMBOL is a Lisp macro.
(defalias 'apropos-macrop #[(symbol) "\301!\205! K\211:\205! @\302=\206! @\303=\205! \3048\305>\207" [symbol fboundp macro autoload 4 (macro t)] 2 (#$ . 13985)])
(defalias 'apropos-print-doc #[(action i str do-keys) "	8\211;\205> \306c\210\307`\310Z`S\302\n$\210\311\261\210\f\203+ \312`GZ\310Z`S\f#\210\2035 \313!\2026 c\210n\206> \314 \207" [i apropos-item action str apropos-label-face do-keys "  " put-text-property 2 ": " add-text-properties substitute-command-keys terpri] 5])
(defalias 'apropos-mouse-follow #[(event) "p\303\304!=?\205\n p\212\305	\211A@)\211@)!q\210	\211A@)\211A@:\203/ \nA@@\2022 \nA@)b\210m\204@ \306`\307\"\204P o\204L \306`S\307\"\204P \310\311!\210\312!*\207" [other event position get-buffer "*Apropos*" window-buffer get-text-property mouse-face error "There is nothing to follow here" apropos-follow] 4 nil "e"])
(defalias 'apropos-follow #[(&optional other) "\212\306y\210`)\307\301\"\211?\205 \310\301\"\307\303\"\211?\205$ \311\303\"	\2043 \n\2033 \307\nS\301\"\204@ \f\203@ \307\f\303\"	\203H \204L \312\313!\210	:\203W \312\314	@\"\210\203^ q\210	!-\207" [bol item item-at action action-at other 0 get-text-property previous-single-property-change next-single-property-change error "There is nothing to follow here" "There is nothing to follow in `%s'"] 4 nil nil])
#@45 Display a pretty listing of SYMBOL's plist.
(defalias 'apropos-describe-plist #[(symbol) "\303\220q\210\304\305!\210\306	!\210\304\307!\210\n\203 \310\311`\312Z\313\n$\210\314	\315\"c\210\304\316!\210\317 \221\207" [standard-output symbol apropos-symbol-face "*Help*" princ "Symbol " prin1 "'s plist is\n (" put-text-property 8 14 face apropos-format-plist "\n  " ")" print-help-return-message] 6 (#$ . 15361)])
(provide 'apropos)
