changeset 49190:bcb627207749

(apropos-documentation-property): New function. (apropos): Use apropos-documentation-property.
author Richard M. Stallman <rms@gnu.org>
date Mon, 13 Jan 2003 08:07:18 +0000
parents 7739522ac6f2
children 9b836b1dabe5
files lisp/apropos.el
diffstat 1 files changed, 19 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/apropos.el	Mon Jan 13 08:05:13 2003 +0000
+++ b/lisp/apropos.el	Mon Jan 13 08:07:18 2003 +0000
@@ -432,6 +432,14 @@
 
 
 ;;;###autoload
+(defun apropos-documentation-property (symbol property raw)
+  "Like (documentation-property SYMBOL PROPERTY RAW) but handle errors."
+  (condition-case ()
+      (let ((doc (documentation-property symbol property raw)))
+	(if doc (substring doc 0 (string-match "\n" doc))
+	  "(not documented)"))
+    (error "(error retrieving documentation)")))
+
 (defun apropos (apropos-regexp &optional do-all)
   "Show all bound symbols whose names match APROPOS-REGEXP.
 With optional prefix DO-ALL or if `apropos-do-all' is non-nil, also
@@ -463,37 +471,28 @@
 		   (if (setq doc (condition-case nil
 				     (documentation symbol t)
 				   (void-function
-				    "(alias for undefined function)")))
+				    "(alias for undefined function)")
+				   (error
+				    "(error retrieving function documentation")))
 		       (substring doc 0 (string-match "\n" doc))
 		     "(not documented)"))
 		 (when (boundp symbol)
-		   (if (setq doc (documentation-property
-				  symbol 'variable-documentation t))
-		       (substring doc 0 (string-match "\n" doc))
-		     "(not documented)"))
+		   (apropos-documentation-property
+		    symbol 'variable-documentation t))
 		 (when (setq properties (symbol-plist symbol))
 		   (setq doc (list (car properties)))
 		   (while (setq properties (cdr (cdr properties)))
 		     (setq doc (cons (car properties) doc)))
 		   (mapconcat #'symbol-name (nreverse doc) " "))
 		 (when (get symbol 'widget-type)
-		   (if (setq doc (documentation-property
-				  symbol 'widget-documentation t))
-		       (substring doc 0
-				  (string-match "\n" doc))
-		     "(not documented)"))
+		   (apropos-documentation-property
+		    symbol 'widget-documentation t))
 		 (when (facep symbol)
-		   (if (setq doc (documentation-property
-				  symbol 'face-documentation t))
-		       (substring doc 0
-				  (string-match "\n" doc))
-		     "(not documented)"))
+		   (apropos-documentation-property
+		    symbol 'face-documentation t))
 		 (when (get symbol 'custom-group)
-		   (if (setq doc (documentation-property
-				  symbol 'group-documentation t))
-		       (substring doc 0
-				  (string-match "\n" doc))
-		     "(not documented)"))))
+		   (apropos-documentation-property
+		    symbol 'group-documentation t))))
       (setq p (cdr p))))
   (apropos-print
    (or do-all apropos-do-all)