*** empty log message ***
[bpt/emacs.git] / lisp / apropos.el
index b691c0f..553b540 100644 (file)
@@ -1,4 +1,4 @@
-;;; apropos.el --- apropos commands for users and programmers.
+;;; apropos.el --- apropos commands for users and programmers
 
 ;; Copyright (C) 1989, 1994, 1995 Free Software Foundation, Inc.
 
@@ -112,6 +112,8 @@ for the regexp; the part that matches gets displayed in this font."
     map)
   "Keymap used in Apropos mode.")
 
+(defvar apropos-mode-hook nil
+  "*Hook run when mode is turned on.")
 
 (defvar apropos-regexp nil
   "Regexp used in current apropos run.")
@@ -123,23 +125,18 @@ for the regexp; the part that matches gets displayed in this font."
   "Alist of symbols already found in current apropos run.")
 
 (defvar apropos-item ()
-  "Current item in or for apropos-accumulator.")
+  "Current item in or for `apropos-accumulator'.")
 \f
 ;;;###autoload
-(defun apropos-mode ()
+(define-derived-mode apropos-mode fundamental-mode "Apropos"
   "Major mode for following hyperlinks in output of apropos commands.
 
-\\{apropos-mode-map}"
-  (interactive)
-  (kill-all-local-variables)
-  (use-local-map apropos-mode-map)
-  (setq major-mode 'apropos-mode
-       mode-name "Apropos"))
+\\{apropos-mode-map}")
 
 ;;;###autoload
 (defun apropos-variable (regexp &optional do-all)
   "Show user variables that match REGEXP.
-With optional prefix ARG or if `apropos-do-all' is non-nil, also show
+With optional prefix DO-ALL or if `apropos-do-all' is non-nil, also show
 normal variables."
   (interactive (list (read-string
                       (concat "Apropos "
@@ -160,8 +157,8 @@ normal variables."
 (fset 'command-apropos 'apropos-command)
 ;;;###autoload
 (defun apropos-command (apropos-regexp &optional do-all var-predicate)
-  "Show commands (interactively callable functions) that match REGEXP.
-With optional prefix ARG, or if `apropos-do-all' is non-nil, also show
+  "Show commands (interactively callable functions) that match APROPOS-REGEXP.
+With optional prefix DO-ALL, 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
@@ -210,10 +207,10 @@ satisfy the predicate VAR-PREDICATE."
 
 ;;;###autoload
 (defun apropos (apropos-regexp &optional do-all)
-  "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."
+  "Show all bound symbols whose names match APROPOS-REGEXP.
+With optional prefix DO-ALL 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."
   (interactive "sApropos symbol (regexp): \nP")
   (setq apropos-accumulator
        (apropos-internal apropos-regexp
@@ -277,8 +274,8 @@ Returns list of symbols and documentation found."
 
 ;;;###autoload
 (defun apropos-value (apropos-regexp &optional do-all)
-  "Show all symbols whose value's printed image matches REGEXP.
-With optional prefix ARG or if `apropos-do-all' is non-nil, also looks
+  "Show all symbols whose value's printed image matches APROPOS-REGEXP.
+With optional prefix DO-ALL 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."
   (interactive "sApropos value (regexp): \nP")
@@ -302,8 +299,8 @@ Returns list of symbols and values found."
 
 ;;;###autoload
 (defun apropos-documentation (apropos-regexp &optional do-all)
-  "Show symbols whose documentation contain matches for REGEXP.
-With optional prefix ARG or if `apropos-do-all' is non-nil, also use
+  "Show symbols whose documentation contain matches for APROPOS-REGEXP.
+With optional prefix DO-ALL 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."
@@ -468,7 +465,7 @@ Returns list of symbols and documentation found."
 
 
 (defun apropos-safe-documentation (function)
-  "Like documentation, except it avoids calling `get_doc_string'.
+  "Like `documentation', except it avoids calling `get_doc_string'.
 Will return nil instead."
   (while (and function (symbolp function))
     (setq function (if (fboundp function)
@@ -511,14 +508,15 @@ alphabetically by symbol name; but this function also sets
          (if (and apropos-label-face
                   (symbolp apropos-label-face))
              `(face ,apropos-label-face
-                    mouse-face highlight)))
+                    mouse-face highlight
+                    help-echo "mouse-2: display help on this item")))
     (with-output-to-temp-buffer "*Apropos*"
       (let ((p apropos-accumulator)
            (old-buffer (current-buffer))
            symbol item point1 point2)
        (set-buffer standard-output)
        (apropos-mode)
-       (if window-system
+       (if (display-mouse-p)
            (insert "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")))
@@ -560,7 +558,7 @@ alphabetically by symbol name; but this function also sets
                   (insert
                    (mapconcat
                     (lambda (key)
-                      (setq key (condition-case () 
+                      (setq key (condition-case ()
                                     (key-description key)
                                   (error)))
                       (if apropos-keybinding-face