r9605: properly display xml object when it does not have any subobjects
[hyperobject.git] / views.lisp
index b8074830479fe8f40096c7fc3cae324858ced219..8d43e6995ac21af847bb9fa4d7df8d7f9fd38b20 100644 (file)
   (unless (slots view) (setf (slots view) (default-print-slots obj-cl)))
 
   (let ((links '())
-       (print-func (make-array 10 :fill-pointer 0 :adjustable t)))
+       (print-func (make-array 20 :fill-pointer 0 :adjustable t)))
 
     (do* ((slots (slots view) (cdr slots))
          (slot-name (car slots) (car slots))
     (setf (list-end-printer view) #'xmlformat-list-end-func)
     (setf (obj-start-printer view) (format nil "<~(~a~)>" name))
     (setf (obj-start-indent view) t)
+    (setf (obj-end-printer view) (format nil "</~(~a~)>~%" name))
     (setf (subobj-end-printer view) (format nil "</~(~a~)>~%" name))
     (setf (subobj-end-indent view) nil)
     (setf (obj-data-indent view) nil)))
          (fmt-obj-start obj view strm indent)
          (fmt-obj-data obj view strm (1+ indent) refvars link-printer)
          (fmt-obj-end obj view strm indent)
-         (when subobjects 
-           (fmt-subobj-start obj view strm indent)
-           (view-subobjects obj strm vid indent filter subobjects
-                            refvars link-printer)
-           (fmt-subobj-end obj view strm indent))))
+         (if subobjects 
+             (progn
+               (fmt-subobj-start obj view strm indent)
+               (view-subobjects obj strm vid indent filter subobjects
+                                refvars link-printer)
+               (fmt-subobj-end obj view strm indent))
+           (fmt-subobj-start obj view strm indent))))
       (fmt-list-end (car objlist) view strm indent nobjs)))
   objs)