Update of /project/cxml/cvsroot/cxml/dom In directory common-lisp.net:/tmp/cvs-serv577/dom
Modified Files: dom-impl.lisp Removed Files: unparse.lisp Log Message: sink reorganization
Date: Thu Dec 29 00:11:24 2005 Author: dlichteblau
Index: cxml/dom/dom-impl.lisp diff -u cxml/dom/dom-impl.lisp:1.34 cxml/dom/dom-impl.lisp:1.35 --- cxml/dom/dom-impl.lisp:1.34 Tue Dec 27 02:35:14 2005 +++ cxml/dom/dom-impl.lisp Thu Dec 29 00:11:22 2005 @@ -973,7 +973,7 @@ (rod-stream-buf stream)))
(defmethod write-attribute-child ((node node) stream) - (write-rod (dom:node-value node) stream)) + (put-rod (dom:node-value node) stream))
(defmethod write-attribute-child ((node entity-reference) stream) (dovector (child (dom:child-nodes node)) @@ -988,7 +988,7 @@ (buf nil) (position 0))
-(defun write-rod (rod rod-stream) +(defun put-rod (rod rod-stream) (let ((buf (rod-stream-buf rod-stream))) (when buf (move rod buf 0 (rod-stream-position rod-stream) (length rod))) @@ -1210,10 +1210,12 @@ ;; dass ein leeres internal subset nicht vorhanden ist und ;; wir daher nil liefern sollen. bittesehr! (dom::%internal-subset node)) - (with-output-to-string (stream) - (let ((sink (cxml:make-character-stream-sink stream))) - (dolist (def (dom::%internal-subset node)) - (apply (car def) sink (cdr def))))) + (let ((sink + #+rune-is-character (cxml:make-string-sink) + #-rune-is-character (cxml:make-string-sink/utf8))) + (dolist (def (dom::%internal-subset node)) + (apply (car def) sink (cdr def))) + (sax:end-document sink)) nil))
;;; NOTATION -- nix