summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcjl <empty>1990-05-01 21:37:53 +0000
committercjl <empty>1990-05-01 21:37:53 +0000
commitfc2267d7741f89aa00ec80b89b8f37141da0a12f (patch)
tree6a1f0a8e1f5d2dd01bf3cd27178bc346d45cbc0d
parentfbbe6026b1b4da2b0a9933ca07d2df2ba5dcb426 (diff)
handle pcl lossage wrt type-of in print-unreadable-objectR4_2
-rw-r--r--xc/unsupported/lib/CLX/depdefs.l14
1 files changed, 13 insertions, 1 deletions
diff --git a/xc/unsupported/lib/CLX/depdefs.l b/xc/unsupported/lib/CLX/depdefs.l
index d62799a4e..1f86c22d6 100644
--- a/xc/unsupported/lib/CLX/depdefs.l
+++ b/xc/unsupported/lib/CLX/depdefs.l
@@ -609,7 +609,19 @@
#-(or ansi-common-lisp Genera)
(defun print-unreadable-object-function (object stream type identity function)
(princ "#<" stream)
- (when type (prin1 (type-of object) stream))
+ (when type
+ (let ((type (type-of object))
+ (pcl-package (find-package 'pcl)))
+ ;; Handle pcl type-of lossage
+ (when (and pcl-package
+ (symbolp type)
+ (eq (symbol-package type) pcl-package)
+ (string-equal (symbol-name type) "STD-INSTANCE"))
+ (setq type
+ (funcall (intern (symbol-name 'class-name) pcl-package)
+ (funcall (intern (symbol-name 'class-of) pcl-package)
+ object))))
+ (prin1 type stream)))
(when (and type function) (princ " " stream))
(when function (funcall function))
(when (and (or type function) identity) (princ " " stream))