[mcclim-cvs] CVS update: mcclim/Apps/Inspector/inspector.lisp
Peter Scott
pscott at common-lisp.net
Sat Apr 2 18:04:00 UTC 2005
Update of /project/mcclim/cvsroot/mcclim/Apps/Inspector
In directory common-lisp.net:/tmp/cvs-serv27378
Modified Files:
inspector.lisp
Log Message:
Fixed problems with PRINT-DOCUMENTATION, which turned out to be more
complicated than I thought. It should work on ACL now.
Date: Sat Apr 2 20:03:59 2005
Author: pscott
Index: mcclim/Apps/Inspector/inspector.lisp
diff -u mcclim/Apps/Inspector/inspector.lisp:1.30 mcclim/Apps/Inspector/inspector.lisp:1.31
--- mcclim/Apps/Inspector/inspector.lisp:1.30 Fri Mar 18 21:51:29 2005
+++ mcclim/Apps/Inspector/inspector.lisp Sat Apr 2 20:03:59 2005
@@ -157,7 +157,11 @@
(formatting-cell (,evaluated-pane)
(formatting-table (,evaluated-pane)
, at body))))
- (print-documentation ,evaluated-object ,evaluated-pane)))))
+ (print-documentation (if (eql (class-of ,evaluated-object)
+ (find-class 'standard-class))
+ ,evaluated-object
+ (class-of ,evaluated-object))
+ ,evaluated-pane)))))
(defmacro inspector-table-row ((pane) left right)
"Output a table row with two items, produced by evaluating LEFT and
@@ -182,10 +186,15 @@
(princ ,label ,evaluated-pane)
(inspect-object ,value ,evaluated-pane)))))))
+;; The error handler shouldn't be necessary, but it works around an
+;; ACL bug and shouldn't mess anything up on other lisps. The warning
+;; handler is there in case DOCUMENTATION raises a warning, to tell
+;; lisp that we don't care and it shouldn't go alarming the user.
(defun print-documentation (object pane)
"Print OBJECT's documentation, if any, to PANE"
- (when (handler-bind ((warning #'muffle-warning))
- (documentation object t))
+ (when (handler-case (documentation object t)
+ (error ())
+ (warning ()))
(with-heading-style (pane)
(format pane "~&Documentation: "))
(princ (documentation object t) pane)))
More information about the Mcclim-cvs
mailing list