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