X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/4644082451f92f7a060e47be6b9967acf8412c7f..7aeb0a9093d5bc2e0695fa003205b39dad67d967:/src/standard-descriptions/t.lisp diff --git a/src/standard-descriptions/t.lisp b/src/standard-descriptions/t.lisp index 5baf369..3256903 100644 --- a/src/standard-descriptions/t.lisp +++ b/src/standard-descriptions/t.lisp @@ -1,5 +1,8 @@ (in-package :lisp-on-lines) +(defmethod described-object ((attribute standard-attribute)) + (described-object (attribute-description attribute))) + (define-description T () ((label :label nil :function (lambda (object) @@ -46,6 +49,7 @@ (funcall (attribute-label-formatter attribute) (attribute-label attribute)))) (define-layered-function display-attribute-value (attribute) + (:method-combination arnesi:wrapping-standard) (:method (attribute) (flet ((disp (val &rest args) (apply #'display *display* val @@ -103,7 +107,7 @@ (define-display ((description t)) (let ((attributes (attributes description))) - (display-attribute (first attributes)) + (when (first attributes)(display-attribute (first attributes))) (dolist (attribute (rest attributes) (values)) (generic-format *display* (attribute-value @@ -113,8 +117,8 @@ (define-display :around ((description t) (display null) object) (with-output-to-string (*standard-output*) - (call-next-layered-method description t object)) -) + (apply #'call-next-layered-method description t object args))) +