Hans,
In order to compile bknr/src/web/handlers.lisp with the latest cxml and
sbcl, I either have to apply the change from svn to
with-element macro in cxml/xml/unparse.lisp:
(defmacro with-element (qname &body body)
;; XXX Statt qname soll man in zukunft auch mal (lname prefix) angeben
;; koennen. Hat aber Zeit bis DOM 2.
- (when (listp qname)
- (destructuring-bind (n) qname
- (setf qname n)))
`(invoke-with-element (lambda () ,@body) ,qname))
or change the handlers.lisp this way:
(defmethod handle-object ((handler xml-object-list-handler) object req)
- (cxml:with-element (xml-object-list-handler-toplevel-element-name handler)
- (dolist (object (object-list-handler-get-objects handler object req))
- (object-list-handler-show-object-xml handler object req))))
+ (let ((element-name (xml-object-list-handler-toplevel-element-name handler)))
+ (cxml:with-element element-name
+ (dolist (object (object-list-handler-get-objects handler object req))
+ (object-list-handler-show-object-xml handler object req)))))
In other words move the evaluation of
xml-object-list-handler-toplevel-element-name out of the macro
expansion. I think the two changes are equivalent but the second one
has the advantage not to require to maintain changes to the third
party library. Am I missing something?
Tchavdar