Fix multiple evaluation of `object' form in `with-described-object'
[clinton/lisp-on-lines.git] / src / mao / description.lisp
index 8f7348d..37c3e4e 100644 (file)
                   (without-special-symbol-access 
                     (funcall  function))))))))))))
 
-(defmacro with-described-object ((object &optional (description `(description-of ,object)))
+(defmacro with-described-object ((object &optional description)
                                 &body body)
-  `(funcall-with-described-object (lambda (),@body) ,object ,description))
+  (once-only (object)
+    `(funcall-with-described-object (lambda (),@body) ,object ,(or description
+                                                             `(description-of ,object)))))